texlive[74853] Build/source/texk/web2c: {,e}upTeX: upTeX version

commits+takuji at tug.org commits+takuji at tug.org
Sat Apr 5 12:30:08 CEST 2025


Revision: 74853
          https://tug.org/svn/texlive?view=revision&revision=74853
Author:   takuji
Date:     2025-04-05 12:30:07 +0200 (Sat, 05 Apr 2025)
Log Message:
-----------
{,e}upTeX: upTeX version u2.01

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/pmpostdir/ChangeLog
    trunk/Build/source/texk/web2c/pmpostdir/pmp.ch
    trunk/Build/source/texk/web2c/ptexdir/ChangeLog
    trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log
    trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log
    trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex
    trunk/Build/source/texk/web2c/uptexdir/ChangeLog
    trunk/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex
    trunk/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log
    trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch
    trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch
    trunk/Build/source/texk/web2c/uptexdir/uptex_version.h

Modified: trunk/Build/source/texk/web2c/pmpostdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/pmpostdir/ChangeLog	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/pmpostdir/ChangeLog	2025-04-05 10:30:07 UTC (rev 74853)
@@ -1,3 +1,7 @@
+2025-04-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* pmp.ch: Bump upmpost version to 2.11-0.04-u2.01.
+
 2024-05-02  Akira Kakuto  <kakuto at jcom.zaq.ne.jp>
 
 	* pmp.ch: sync with the new mp.w.

Modified: trunk/Build/source/texk/web2c/pmpostdir/pmp.ch
===================================================================
--- trunk/Build/source/texk/web2c/pmpostdir/pmp.ch	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/pmpostdir/pmp.ch	2025-04-05 10:30:07 UTC (rev 74853)
@@ -22,7 +22,7 @@
 @y
 #ifdef UPMP
 #define P_UP "up"
-#define metapost_version "2.11-0.04-u1.35"
+#define metapost_version "2.11-0.04-u2.01"
 #else
 #define P_UP "p"
 #define metapost_version "2.11-0.04"

Modified: trunk/Build/source/texk/web2c/ptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/ptexdir/ChangeLog	2025-04-05 10:30:07 UTC (rev 74853)
@@ -1,3 +1,7 @@
+2025-04-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* ptex-prntknj.test, tests/pknj-{e,s}.log: Update tests.
+
 2025-03-07  Karl Berry  <karl at tug.org>
 
 	* TL'25 release.

Modified: trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/pknj-e.log	2025-04-05 10:30:07 UTC (rev 74853)
@@ -208,14 +208,16 @@
 l.164 \expandafter\show\csname 顛\endcsname
                                            
 
-\^^e3^^81^^82\あ [50623]
-Memory usage before: 1270&5512; after: 118&5077; still untouched: 4992459
+\^^e3^^81^^82\あ 
+ifx:FALSE
+[50623]
+Memory usage before: 1270&5525; after: 118&5090; still untouched: 4992443
  ) 
 Here is how much of TeX's memory you used:
- 25 strings out of 4979XX
- 137 string characters out of 62194XX
- 7541 words of memory out of 5000000
- 969 multiletter control sequences out of 15000+600000
+ 27 strings out of 4979XX
+ 146 string characters out of 62194XX
+ 7557 words of memory out of 5000000
+ 971 multiletter control sequences out of 15000+600000
  3271 words of font info for 2 fonts, out of 8000000 for 9000
  0 hyphenation exceptions out of 8191
  6i,4n,2p,97b,22s stack positions out of 10000i,1000n,20000p,200000b,200000s

Modified: trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/pknj-s.log	2025-04-05 10:30:07 UTC (rev 74853)
@@ -208,14 +208,16 @@
 l.164 \expandafter\show\csname 顛\endcsname
                                            
 
-\^^e3^^81^^82\あ [37726]
-Memory usage before: 1274&5515; after: 118&5078; still untouched: 4992456
+\^^e3^^81^^82\あ 
+ifx:FALSE
+[37726]
+Memory usage before: 1274&5528; after: 118&5091; still untouched: 4992440
  ) 
 Here is how much of TeX's memory you used:
- 24 strings out of 4979XX
- 135 string characters out of 62194XX
- 7544 words of memory out of 5000000
- 968 multiletter control sequences out of 15000+600000
+ 26 strings out of 4979XX
+ 144 string characters out of 62194XX
+ 7560 words of memory out of 5000000
+ 970 multiletter control sequences out of 15000+600000
  3271 words of font info for 2 fonts, out of 8000000 for 9000
  0 hyphenation exceptions out of 8191
  6i,4n,2p,97b,22s stack positions out of 10000i,1000n,20000p,200000b,200000s

Modified: trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex
===================================================================
--- trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/ptexdir/tests/printkanji.tex	2025-04-05 10:30:07 UTC (rev 74853)
@@ -173,4 +173,20 @@
 
 \message{\string\^^e3^^81^^82 \string\あ}
 
+% check whether ^^^^0000 works or not
+\catcode`\@=11
+\def\@empty{}
+\begingroup
+  \catcode0=9 %
+  \catcode`\^=7 %
+  \catcode`\^^^=12 %
+  \def\x{^^^^0000}%
+\expandafter\endgroup
+\ifx\x\@empty
+ \def\cmd{ifx:TRUE}
+\else
+ \def\cmd{ifx:FALSE}
+\fi
+\message{^^J\cmd^^J}
+
 \end

Modified: trunk/Build/source/texk/web2c/uptexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/uptexdir/ChangeLog	2025-04-05 10:30:07 UTC (rev 74853)
@@ -1,3 +1,16 @@
+2025-04-05  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+
+	* uptex-m.ch: Enable \prebreakpenalty for combining
+	characters. Thanks to Takayuki YATO.
+	https://github.com/texjporg/tex-jp-build/issues/46
+	* uptex-m.ch: Better memory allocation for fonts.
+	Thanks to Dr. Werner Fink, Y. Morimi, and H. Kitagawa.
+	https://tug.org/pipermail/tex-live/2025-March/051381.html
+	https://github.com/texjporg/tex-jp-build/issues/177
+	* tests/jchwidow.tex, tests/eup-jchwidow.log: Update tests.
+	* uptex-m.ch, upbibtex.ch, uptex_version.h:
+	upTeX version u2.01.
+
 2025-03-07  Karl Berry  <karl at tug.org>
 
 	* TL'25 release.

Modified: trunk/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/uptexdir/tests/jchwidow.tex	2025-04-05 10:30:07 UTC (rev 74853)
@@ -84,5 +84,47 @@
   \TEST{b\CA 。}
 }
 
+%% prebreakpenalty, postbreakpenalty
+\ifx\kchar\undefined\else
+
+\showboxbreadth10000
+\showboxdepth10000
+
+% default
+\setbox0\hbox{さㇷ゚サしか゚シすあ゙スせ𛂦゙セそ𛂱゚ソたっタ}
+\showbox0
+
+% prebreakpenalty
+\prebreakpenalty`ㇷ=41
+\prebreakpenalty`か=42
+\prebreakpenalty`あ=43
+\prebreakpenalty`𛂦=44
+\prebreakpenalty`𛂱=45
+\prebreakpenalty`っ=46
+\setbox1\hbox{たㇷ゚タちか゚チつあ゙ツて𛂦゙テと𛂱゚トなっナ}
+\showbox1
+
+% postbreakpenalty
+\postbreakpenalty`ㇷ=51
+\postbreakpenalty`か=52
+\postbreakpenalty`あ=53
+\postbreakpenalty`𛂦=54
+\postbreakpenalty`𛂱=55
+\postbreakpenalty`っ=56
+\setbox2\hbox{なㇷ゚ナにか゚ニぬあ゙ヌね𛂦゙ネの𛂱゚ノはっハ}
+\showbox2
+
+% reset
+\prebreakpenalty`ㇷ=0
+\postbreakpenalty`か=0
+\prebreakpenalty`あ=0
+\postbreakpenalty`𛂦=0
+\prebreakpenalty`𛂱=0
+\postbreakpenalty`っ=0
+\setbox3\hbox{はㇷ゚ハひか゚ヒふあ゙フへ𛂦゙ヘほ𛂱゚ホまっマ}
+\showbox3
+
+\fi
+
 \bye
 

Modified: trunk/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/uptexdir/tests/up-jchwidow.log	2025-04-05 10:30:07 UTC (rev 74853)
@@ -813,5 +813,145 @@
 l.84   \TEST{b\CA 。}
                       
 
+> \box0=
+\hbox(7.77588+1.38855)x173.19891, yoko direction
+.\displace 0.0
+.\jpy さ
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ㇷ゚
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy サ
+.\jpy し
+.\jpy か゚
+.\jpy シ
+.\jpy す
+.\jpy あ゙
+.\jpy ス
+.\jpy せ
+.\jpy 𛂦゙
+.\jpy セ
+.\jpy そ
+.\jpy 𛂱゚
+.\jpy ソ
+.\jpy た
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy っ
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy タ
+
+! OK.
+l.95 \showbox0
+              
+
+> \box1=
+\hbox(7.77588+1.38855)x173.19891, yoko direction
+.\displace 0.0
+.\jpy た
+.\penalty 41(for kinsoku)
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ㇷ゚
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy タ
+.\jpy ち
+.\penalty 42(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy か゚
+.\jpy チ
+.\jpy つ
+.\penalty 43(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy あ゙
+.\jpy ツ
+.\jpy て
+.\penalty 44(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy 𛂦゙
+.\jpy テ
+.\jpy と
+.\penalty 45(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy 𛂱゚
+.\jpy ト
+.\jpy な
+.\penalty 46(for kinsoku)
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy っ
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ナ
+
+! OK.
+l.105 \showbox1
+               
+
+> \box2=
+\hbox(7.77588+1.38855)x173.19891, yoko direction
+.\displace 0.0
+.\jpy な
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ㇷ゚
+.\penalty 51(for kinsoku)
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ナ
+.\jpy に
+.\jpy か゚
+.\penalty 52(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy ニ
+.\jpy ぬ
+.\jpy あ゙
+.\penalty 53(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy ヌ
+.\jpy ね
+.\jpy 𛂦゙
+.\penalty 54(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy ネ
+.\jpy の
+.\jpy 𛂱゚
+.\penalty 55(for kinsoku)
+.\glue(\kanjiskip) 0.0
+.\jpy ノ
+.\jpy は
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy っ
+.\penalty 56(for kinsoku)
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ハ
+
+! OK.
+l.115 \showbox2
+               
+
+> \box3=
+\hbox(7.77588+1.38855)x173.19891, yoko direction
+.\displace 0.0
+.\jpy は
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ㇷ゚
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy ハ
+.\jpy ひ
+.\jpy か゚
+.\jpy ヒ
+.\jpy ふ
+.\jpy あ゙
+.\jpy フ
+.\jpy へ
+.\jpy 𛂦゙
+.\jpy ヘ
+.\jpy ほ
+.\jpy 𛂱゚
+.\jpy ホ
+.\jpy ま
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy っ
+.\glue(refer from jfm) 1.07391 minus 1.07391
+.\jpy マ
+
+! OK.
+l.125 \showbox3
+               
+
  )
 No pages of output.

Modified: trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/uptexdir/upbibtex.ch	2025-04-05 10:30:07 UTC (rev 74853)
@@ -60,7 +60,7 @@
 @d banner=='This is BibTeX, Version 0.99d' {printed when the program starts}
 @y
 @d my_name=='upbibtex'
- at d banner=='This is upBibTeX, Version 0.99d-j0.36-u2.00'
+ at d banner=='This is upBibTeX, Version 0.99d-j0.36-u2.01'
   {printed when the program starts}
 @z
 

Modified: trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/uptexdir/uptex-m.ch	2025-04-05 10:30:07 UTC (rev 74853)
@@ -51,6 +51,7 @@
 % (2024-09-30) TTK  upTeX u1.35
 % (2024-10-20) TTK  upTeX u2.00
 % (2025-01-02) TTK  Accept extended upTeX internal encoding also in pTeX-compatible EUC/SJIS mode.
+% (2025-04-05) TTK  upTeX u2.01
 
 @x
 \def\pTeX{p\kern-.15em\TeX}
@@ -65,8 +66,8 @@
   {printed when \pTeX\ starts}
 @#
 @d upTeX_version=2
- at d upTeX_revision==".00"
- at d upTeX_version_string=='-u2.00' {current \upTeX\ version}
+ at d upTeX_revision==".01"
+ at d upTeX_version_string=='-u2.01' {current \upTeX\ version}
 @#
 @d upTeX_banner=='This is upTeX, Version 3.141592653',pTeX_version_string,upTeX_version_string
 @d upTeX_banner_k==upTeX_banner
@@ -1194,7 +1195,7 @@
 @x
 @d non_char==qi(256) {a |halfword| code that can't match a real character}
 @y
- at d non_char==qi(65535) {a code that can't match a real character}
+ at d non_char==qi(max_latin_val) {a code that can't match a real character}
 @z
 
 @x
@@ -1714,6 +1715,14 @@
 @z
 
 @x
+ligature_node: begin f:=font(lig_char(cur_p));
+  act_width:=act_width+char_width(f)(char_info(f)(character(lig_char(cur_p))));
+ at y
+ligature_node: begin f:=font(lig_char(cur_p));
+  act_width:=act_width+char_width(f)(char_info(f)(ptencucsto8bitcode(font_enc[f],character(lig_char(cur_p)))));
+ at z
+
+ at x
   repeat f:=post_f; cc:=character(cur_p);
   act_width:=act_width+char_width(f)(orig_char_info(f)(cc));
 @y
@@ -1807,13 +1816,13 @@
 @x
       begin hu[0]:=256; init_lig:=false;
 @y
-      begin hu[0]:=max_hyph_char; init_lig:=false;
+      begin hu[0]:=non_char; init_lig:=false;
 @z
 
 @x
 found2: s:=ha; j:=0; hu[0]:=256; init_lig:=false; init_list:=null;
 @y
-found2: s:=ha; j:=0; hu[0]:=max_hyph_char; init_lig:=false; init_list:=null;
+found2: s:=ha; j:=0; hu[0]:=non_char; init_lig:=false; init_list:=null;
 @z
 
 @x
@@ -1822,14 +1831,20 @@
 case |j| must be strictly less than~|n|. There is a
 parameter |bchar|, which is either 256 or an implicit right boundary character
 @y
-getting the input $x_j\ldots x_n$ from the |hu| array. If $x_j=|max_hyph_char|$,
+getting the input $x_j\ldots x_n$ from the |hu| array. If $x_j=|non_char|$,
 we consider $x_j$ to be an implicit left boundary character; in this
 case |j| must be strictly less than~|n|. There is a
-parameter |bchar|, which is either |max_hyph_char|
+parameter |bchar|, which is either |non_char|
 or an implicit right boundary character
 @z
 
 @x
+else begin q:=char_info(hf)(cur_l);
+ at y
+else begin q:=char_info(hf)(ptencucsto8bitcode(font_enc[hf],cur_l));
+ at z
+
+ at x
 @<Local variables for hyph...@>=
 @!major_tail,@!minor_tail:pointer; {the end of lists in the main and
   discretionary branches being reconstructed}
@@ -1844,7 +1859,7 @@
 @x
   begin decr(l); c:=hu[l]; c_loc:=l; hu[l]:=256;
 @y
-  begin decr(l); c:=hu[l]; c_loc:=l; hu[l]:=max_hyph_char;
+  begin decr(l); c:=hu[l]; c_loc:=l; hu[l]:=non_char;
 @z
 
 @x
@@ -1852,15 +1867,27 @@
 to the impossible value 256, in order to guarantee that |hc[hn+3]| will
 @y
 hyphenation algorithm is quite short. In the following code we set |hc[hn+2]| to
-the impossible value |max_hyph_char|, in order to guarantee that |hc[hn+3]| will
+the impossible value |non_char|, in order to guarantee that |hc[hn+3]| will
 @z
 
 @x
 hc[0]:=0; hc[hn+1]:=0; hc[hn+2]:=256; {insert delimiters}
 @y
-hc[0]:=0; hc[hn+1]:=0; hc[hn+2]:=max_hyph_char; {insert delimiters}
+hc[0]:=0; hc[hn+1]:=0; hc[hn+2]:=non_char; {insert delimiters}
 @z
 
+ at x
+ at t\hskip10pt@>@!trie_min:array[ASCII_code] of trie_pointer;
+ at y
+ at t\hskip10pt@>@!trie_min:array[0..max_latin_val] of trie_pointer;
+ at z
+
+ at x
+for p:=0 to 255 do trie_min[p]:=p+1;
+ at y
+for p:=0 to max_latin_val-1 do trie_min[p]:=p+1;
+ at z
+
 @x first_fit
 @!ll:1..256; {upper limit of |trie_min| updating}
 @y
@@ -1899,6 +1926,14 @@
 @z
 
 @x
+if l<256 then
+  begin if z<256 then ll:=z @+else ll:=256;
+ at y
+if l<max_hyph_char then
+  begin if z<max_hyph_char then ll:=z @+else ll:=max_hyph_char;
+ at z
+
+ at x
   begin for r:=0 to 256 do clear_trie;
   trie_max:=256;
   end
@@ -2358,6 +2393,12 @@
 @z
 
 @x
+|cs_token_flag+active_base| is a multiple of~256.
+ at y
+|cs_token_flag+active_base| is a multiple of~|max_char_val|.
+ at z
+
+ at x
 @<Change the case of the token in |p|, if a change is appropriate@>=
 t:=info(p);
 if (t<cs_token_flag+single_base)and(not check_kanji(t)) then
@@ -2543,6 +2584,21 @@
         ins_kp:=false;
         goto again_2
         end
+      else if ((info(main_p) div max_cjk_val)=0 and (cur_q>0)) then begin
+        KANJI(cx):=info(cur_q) mod max_cjk_val;
+        kp:=get_kinsoku_pos(cx,cur_pos);
+        if (UVScombinecode(cx,cur_chr)>0 and (kp<>no_entry)
+            and (kinsoku_penalty(kp)<>0)
+            and (kinsoku_type(kp)=pre_break_penalty_code)) then begin
+          cx:=UVScombinecode(cx,cur_chr);
+          if (kcat_code(kcatcodekey(KANJI(cx)))=kanji)and(cx>=max_cjk_val) then
+            info(cur_q):=KANJI(cx)+kanji_ivs*max_cjk_val
+          else
+            info(cur_q):=KANJI(cx)+kcat_code(kcatcodekey(KANJI(cx)))*max_cjk_val;
+          ins_kp:=false;
+          goto again_2
+          end
+        end
       end;
     if not disp_called then
       begin prev_node:=tail; tail_append(get_node(small_node_size));

Modified: trunk/Build/source/texk/web2c/uptexdir/uptex_version.h
===================================================================
--- trunk/Build/source/texk/web2c/uptexdir/uptex_version.h	2025-04-05 10:30:02 UTC (rev 74852)
+++ trunk/Build/source/texk/web2c/uptexdir/uptex_version.h	2025-04-05 10:30:07 UTC (rev 74853)
@@ -1 +1 @@
-#define UPTEX_VERSION "u2.00"
+#define UPTEX_VERSION "u2.01"



More information about the tex-live-commits mailing list.