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.