summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-02-25 17:08:15 +0000
committerKarl Berry <karl@freefriends.org>2024-02-25 17:08:15 +0000
commit3b675bbf1beaad64bd8d13bd091d872c64e3c501 (patch)
treeaeaad52445fd8ae24478578bb975717082039efc
parent73b30c64b734258fe06c255e9c3907bcd75afc94 (diff)
tiny inner-loop optimization from DRF
git-svn-id: svn://tug.org/texlive/trunk@70150 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Build/source/texk/web2c/ChangeLog11
-rw-r--r--Build/source/texk/web2c/Makefile.in6
-rw-r--r--Build/source/texk/web2c/eptexdir/am/eptex.am3
-rw-r--r--Build/source/texk/web2c/euptexdir/am/euptex.am3
-rw-r--r--Build/source/texk/web2c/locnull-optimize.ch34
-rw-r--r--Build/source/texk/web2c/man/Makefile.in54
-rw-r--r--Build/source/texk/web2c/pdftexdir/am/pdftex.am3
-rw-r--r--Build/source/texk/web2c/ptexdir/am/ptex.am3
-rw-r--r--Build/source/texk/web2c/uptexdir/am/uptex.am3
-rw-r--r--Build/source/texk/web2c/xetexdir/am/xetex.am3
10 files changed, 90 insertions, 33 deletions
diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog
index c2d202632b9..49fdecc6175 100644
--- a/Build/source/texk/web2c/ChangeLog
+++ b/Build/source/texk/web2c/ChangeLog
@@ -1,3 +1,14 @@
+2024-02-25 Karl Berry <karl@freefriends.org>
+
+ * locnull-optimize.ch: inner loop optimization (removing one
+ unnecessary condition) from DRF.
+ * eptexdir/am/eptex.am (eptex_web_srcs),
+ * euptexdir/am/euptex.am (euptex_web_srcs),
+ * pdftexdir/am/pdftex.am (pdftex_ch_srcs),
+ * ptexdir/am/ptex.am (ptex_web_srcs),
+ * uptexdir/am/uptex.am (uptex_web_srcs),
+ * xetexdir/am/xetex.am (xetex_ch_srcs): include locnull-optimize.ch.
+
2024-02-20 Karl Berry <karl@tug.org>
* doc/web2c.texi: 2024.
diff --git a/Build/source/texk/web2c/Makefile.in b/Build/source/texk/web2c/Makefile.in
index 3715e1cd394..f05311dc2dc 100644
--- a/Build/source/texk/web2c/Makefile.in
+++ b/Build/source/texk/web2c/Makefile.in
@@ -4419,6 +4419,7 @@ ptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
zlib-fmt.ch
ptex_ch_srcs = \
@@ -4458,6 +4459,7 @@ eptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
zlib-fmt.ch \
etexdir/tex.ech
@@ -4509,6 +4511,7 @@ uptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
zlib-fmt.ch
uptex_ch_srcs = \
@@ -4579,6 +4582,7 @@ euptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
zlib-fmt.ch \
etexdir/tex.ech
@@ -4726,6 +4730,7 @@ pdftex_ch_srcs = \
tracingstacklevels.ch \
partoken-102.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
zlib-fmt.ch \
enctexdir/enctex1.ch \
@@ -5426,6 +5431,7 @@ xetex_ch_srcs = \
tracingstacklevels.ch \
partoken-102.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
$(xetex_ch_synctex) \
xetexdir/xetex.ch \
diff --git a/Build/source/texk/web2c/eptexdir/am/eptex.am b/Build/source/texk/web2c/eptexdir/am/eptex.am
index fce0a5e31ad..6bb6e996d2a 100644
--- a/Build/source/texk/web2c/eptexdir/am/eptex.am
+++ b/Build/source/texk/web2c/eptexdir/am/eptex.am
@@ -1,7 +1,7 @@
## $Id$
## texk/web2c/eptexdir/am/eptex.am: Makefile fragment for e-pTeX.
##
-## Copyright 2015-2022 Karl Berry <tex-live@tug.org>
+## Copyright 2015-2024 Karl Berry <tex-live@tug.org>
## Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
@@ -59,6 +59,7 @@ eptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
zlib-fmt.ch \
etexdir/tex.ech
diff --git a/Build/source/texk/web2c/euptexdir/am/euptex.am b/Build/source/texk/web2c/euptexdir/am/euptex.am
index 3ad8ab71525..31e31e04bb7 100644
--- a/Build/source/texk/web2c/euptexdir/am/euptex.am
+++ b/Build/source/texk/web2c/euptexdir/am/euptex.am
@@ -1,7 +1,7 @@
## $Id$
## texk/web2c/euptexdir/am/euptex.am: Makefile fragment for e-upTeX.
##
-## Copyright 2015-2022 Karl Berry <tex-live@tug.org>
+## Copyright 2015-2024 Karl Berry <tex-live@tug.org>
## Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
@@ -61,6 +61,7 @@ euptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
zlib-fmt.ch \
etexdir/tex.ech
diff --git a/Build/source/texk/web2c/locnull-optimize.ch b/Build/source/texk/web2c/locnull-optimize.ch
new file mode 100644
index 00000000000..7c01a5085cf
--- /dev/null
+++ b/Build/source/texk/web2c/locnull-optimize.ch
@@ -0,0 +1,34 @@
+% $Id$
+% (public domain)
+%
+% Date: Wed, 21 Feb 2024 21:32:57 +0000 (UTC)
+% From: David Fuchs <drfuchs@yahoo.com>
+% To: Karl Berry <karl@freefriends.org>
+% Subject: Missed optimization in TeX: |loc=null| implies |state=token_list|
+%
+% The final comment in <Recover from an unbalanced output routine>
+% explicitly notes that |null=min_halfword<=0|, and it assumes we
+% also know that during file input, |loc| can only be as small as
+% the initial value of |first|, which is 1. So |loc|
+% is strictly larger than |null| during file input (i.e. when
+% |state<>token_list|).
+%
+% So, |loc=null| implies |state=token_list|.
+% Thus, |(state=token_list)and(loc=null) = (loc=null)| always.
+%
+% Ergo, we can simplify two statements in TeX (two cases of "conserve
+% stack space", the first of which is inner-loop; might save a whole cycle).
+%
+% In |back_input|:
+@x [23.325] l.7025
+begin while (state=token_list)and(loc=null)and(token_type<>v_template) do
+@y
+begin while (loc=null)and(token_type<>v_template) do
+@z
+
+% In <Feed the macro body and its parameters to the scanner>:
+@x [25.390] l.7983
+while (state=token_list)and(loc=null)and(token_type<>v_template) do
+@y
+while (loc=null)and(token_type<>v_template) do
+@z
diff --git a/Build/source/texk/web2c/man/Makefile.in b/Build/source/texk/web2c/man/Makefile.in
index 193137c1e64..ed8f6da1052 100644
--- a/Build/source/texk/web2c/man/Makefile.in
+++ b/Build/source/texk/web2c/man/Makefile.in
@@ -88,28 +88,29 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@WEB_TRUE@am__append_1 = $(web_man_sources)
-@TEX_TRUE@am__append_2 = tex.man
-@TEX_TRUE@am__append_3 = tex:initex
-@MF_TRUE@am__append_4 = mf.man
-@MF_TRUE@am__append_5 = mf:inimf
-@MFN_TRUE@@MF_TRUE@am__append_6 = mf:mf-nowin
-@MP_TRUE@am__append_7 = mpost.man
-@ETEX_TRUE@am__append_8 = etex.man
-@PDFTEX_TRUE@am__append_9 = $(pdftex_man_sources)
-@PDFTEX_TRUE@am__append_10 = pdftex:pdflatex
-@EPTEX_TRUE@am__append_11 = ptex.man ppltotf.man ptftopl.man \
+@WEB_TRUE@am__append_2 = twill:twill-refsort
+@TEX_TRUE@am__append_3 = tex.man
+@TEX_TRUE@am__append_4 = tex:initex
+@MF_TRUE@am__append_5 = mf.man
+@MF_TRUE@am__append_6 = mf:inimf
+@MFN_TRUE@@MF_TRUE@am__append_7 = mf:mf-nowin
+@MP_TRUE@am__append_8 = mpost.man
+@ETEX_TRUE@am__append_9 = etex.man
+@PDFTEX_TRUE@am__append_10 = $(pdftex_man_sources)
+@PDFTEX_TRUE@am__append_11 = pdftex:pdflatex
+@EPTEX_TRUE@am__append_12 = ptex.man ppltotf.man ptftopl.man \
@EPTEX_TRUE@ pbibtex.man
-@EPTEX_TRUE@am__append_12 = ptex:eptex ptex:euptex ptex:uptex \
+@EPTEX_TRUE@am__append_13 = ptex:eptex ptex:euptex ptex:uptex \
@EPTEX_TRUE@ ppltotf:uppltotf ptftopl:uptftopl pbibtex:upbibtex
-@LUATEX_TRUE@am__append_13 = luatex.man
-@LUATEX_TRUE@am__append_14 = luatex:texlua luatex:texluac \
+@LUATEX_TRUE@am__append_14 = luatex.man
+@LUATEX_TRUE@am__append_15 = luatex:texlua luatex:texluac \
@LUATEX_TRUE@ luatex:luahbtex luatex:luajittex \
@LUATEX_TRUE@ luatex:dviluatex
-@XETEX_TRUE@am__append_15 = xetex.man
-@OTANGLE_TRUE@am__append_16 = $(otangle_man_sources)
-@OTANGLE_TRUE@am__append_17 = dvicopy:odvicopy dvitype:odvitype tangle:otangle
-@ALEPH_TRUE@am__append_18 = aleph.man
+@XETEX_TRUE@am__append_16 = xetex.man
+@OTANGLE_TRUE@am__append_17 = $(otangle_man_sources)
+@OTANGLE_TRUE@am__append_18 = dvicopy:odvicopy dvitype:odvitype tangle:otangle
+@ALEPH_TRUE@am__append_19 = aleph.man
subdir = man
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/web2c-disable.m4 \
@@ -456,10 +457,10 @@ top_srcdir = @top_srcdir@
wlibs = @wlibs@
x_ext_lib = @x_ext_lib@
x_tool_libs = @x_tool_libs@
-man_sources = $(bootstrap_man_sources) $(am__append_1) $(am__append_2) \
- $(am__append_4) $(am__append_7) $(am__append_8) \
- $(am__append_9) $(am__append_11) $(am__append_13) \
- $(am__append_15) $(am__append_16) $(am__append_18) \
+man_sources = $(bootstrap_man_sources) $(am__append_1) $(am__append_3) \
+ $(am__append_5) $(am__append_8) $(am__append_9) \
+ $(am__append_10) $(am__append_12) $(am__append_14) \
+ $(am__append_16) $(am__append_17) $(am__append_19) \
$(misc_man_sources)
EXTRA_DIST = $(bootstrap_man_sources) $(web_man_sources) tex.man \
mf.man mpost.man etex.man $(pdftex_man_sources) ptex.man \
@@ -468,12 +469,11 @@ EXTRA_DIST = $(bootstrap_man_sources) $(web_man_sources) tex.man \
bootstrap_man_sources = ctie.man cweb.man ctwill.man tangle.man tie.man
# Symlinks within $(man1dir): FILE:LINK indicates LINK.1->FILE.1
-man1_links = cweb:ctangle cweb:cweave \
- ctwill:ctwill-proofsort ctwill:ctwill-refsort \
- ctwill:ctwill-twinx twill:twill-refsort $(am__append_3) \
- $(am__append_5) $(am__append_6) $(am__append_10) \
- $(am__append_12) $(am__append_14) $(am__append_17) \
- latex-dev:pdflatex-dev latex-dev:xelatex-dev \
+man1_links = cweb:ctangle cweb:cweave ctwill:ctwill-proofsort \
+ ctwill:ctwill-refsort ctwill:ctwill-twinx $(am__append_2) \
+ $(am__append_4) $(am__append_6) $(am__append_7) \
+ $(am__append_11) $(am__append_13) $(am__append_15) \
+ $(am__append_18) latex-dev:pdflatex-dev latex-dev:xelatex-dev \
latex-dev:lualatex-dev latex-dev:dvilualatex-dev \
latex-dev:platex-dev latex-dev:uplatex-dev
web_man_sources = bibtex.man dvicopy.man dvitomp.man dvitype.man gftodvi.man \
diff --git a/Build/source/texk/web2c/pdftexdir/am/pdftex.am b/Build/source/texk/web2c/pdftexdir/am/pdftex.am
index ac081b952de..a5b16acc5c4 100644
--- a/Build/source/texk/web2c/pdftexdir/am/pdftex.am
+++ b/Build/source/texk/web2c/pdftexdir/am/pdftex.am
@@ -1,7 +1,7 @@
## $Id$
## texk/web2c/pdftexdir/am/pdftex.am: Makefile fragment for pdfTeX.
##
-## Copyright 2016-2022 Karl Berry <tex-live@tug.org>
+## Copyright 2016-2024 Karl Berry <tex-live@tug.org>
## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
@@ -73,6 +73,7 @@ pdftex_ch_srcs = \
tracingstacklevels.ch \
partoken-102.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
zlib-fmt.ch \
enctexdir/enctex1.ch \
diff --git a/Build/source/texk/web2c/ptexdir/am/ptex.am b/Build/source/texk/web2c/ptexdir/am/ptex.am
index 663b9c17cf7..afda7181fba 100644
--- a/Build/source/texk/web2c/ptexdir/am/ptex.am
+++ b/Build/source/texk/web2c/ptexdir/am/ptex.am
@@ -1,7 +1,7 @@
## $Id$
## texk/web2c/ptexdir/am/ptex.am: Makefile fragment for pTeX.
##
-## Copyright 2015-2022 Karl Berry <tex-live@tug.org>
+## Copyright 2015-2024 Karl Berry <tex-live@tug.org>
## Copyright 2010-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
@@ -76,6 +76,7 @@ ptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
zlib-fmt.ch
# Generate ptex.ch
diff --git a/Build/source/texk/web2c/uptexdir/am/uptex.am b/Build/source/texk/web2c/uptexdir/am/uptex.am
index ddb486edd4b..8264e41d964 100644
--- a/Build/source/texk/web2c/uptexdir/am/uptex.am
+++ b/Build/source/texk/web2c/uptexdir/am/uptex.am
@@ -1,7 +1,7 @@
## $Id$
## texk/web2c/uptexdir/am/uptex.am: Makefile fragment for upTeX.
##
-## Copyright 2016-2023 Karl Berry <tex-live@tug.org>
+## Copyright 2016-2024 Karl Berry <tex-live@tug.org>
## Copyright 2011-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
@@ -70,6 +70,7 @@ uptex_web_srcs = \
tex.ch \
tracingstacklevels.ch \
partoken.ch \
+ locnull-optimize.ch \
zlib-fmt.ch
# Generate uptex.ch
diff --git a/Build/source/texk/web2c/xetexdir/am/xetex.am b/Build/source/texk/web2c/xetexdir/am/xetex.am
index dec7b04e9b4..59f2b8285a7 100644
--- a/Build/source/texk/web2c/xetexdir/am/xetex.am
+++ b/Build/source/texk/web2c/xetexdir/am/xetex.am
@@ -1,7 +1,7 @@
## $Id$
## texk/web2c/xetexdir/am/xetex.am: Makefile fragment for XeTeX.
##
-## Copyright 2017-2022 Karl Berry <tex-live@tug.org>
+## Copyright 2017-2024 Karl Berry <tex-live@tug.org>
## Copyright 2009-2015 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
@@ -116,6 +116,7 @@ xetex_ch_srcs = \
tracingstacklevels.ch \
partoken-102.ch \
partoken.ch \
+ locnull-optimize.ch \
showstream.ch \
$(xetex_ch_synctex) \
xetexdir/xetex.ch \