Age | Commit message (Collapse) | Author |
|
git-svn-id: svn://tug.org/texlive/trunk@71993 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71985 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71980 c570f23f-e606-0410-a88d-b1316a301751
|
|
Martin Ruckert's talk at TUG'24 about 'Profiling TeX' (watch on YouTube:
https://www.youtube.com/live/d7vTW7PR0B4?t=7795s) and the ensuing private
discussion with him lead me to inspect the relevant parts of
'cwebacromac.tex' (and 'pwebmac.tex') more closely in order to address
the performance issues with certain large C/WEB programs.
The most glaring example is MP.W, where every advanced TeX engine (for
PDF and HINT) virtually stops for 1--2 seconds (on my machine) at two of
the index pages because of the huge lists of section references for the
variable 'mp' and the type 'MP' that are used 'everywhere'. (See below.)
At this point, we haven't solved the quadratic performance behavior yet.
However, the main changes applied in this commit at least slightly
improve the macros and their application. In the overall context of the
'knuth-pdf'/'knuth-hint' packages, the 'index issue' reported by Martin
becomes more or less irrelvant. The script 'makeall' produces 58 PDF
documents in the main run. With all optimizations applied, the runtime
is reduced by mere seconds from '1m7s' to '0m59s' (with 'pdftex').
(a) '\pdflink' and '\HINTlink' have lost their second parameter, which
was only used with 'plain TeX plus dvipdf' and 'XeTeX' anyway. This cut
down the replacement strings significantly. In one example I observed a
runtime improvement of about twenty percent (2--3 seconds) by this
change alone.
(b) Macros '\makeoutlinetoks' and 'outilnedone' swallowed the
surrounding macro calls, thus simplifying their application.
(c) '\newcount\countC' was replaced with '\newif\ifhavenum' to avoid
arithmetic with '0' and '1' for a simple Boolean operation.
(d) '\newcount\countD' was renamed to '\countNOS'. (Unrelated.)
In order to address the 'worst' CWEB code MP.W mentioned above, I
changed both the macros and the 'makeall' script. My local MP.CH changes
the '\inx' macro to address two 'Overfull \hboxes', so it is easy to
remove the use of '\pdfnote' when setting up the index. Instead,
'makeall' invokes SED to amemd the MP.IDX file created by CWEAVE with
the necessary '\pdflink' macro invocations for all section numbers in
one fell swoop. This cuts the processing time for MP.TEX in half (!!).
However, I do not intend to incorporate this approach into
'cwebmac.tex'/'pwebmac.tex' because this would most likely require
'--shell-escape' and become too system-dependent. For small to midsize
C/WEB programs, this would show minor improvements anyway.
Watch this space for possible further improvements. (I'll hold back the
releases of 'CWEB 4.12' and 'pwebmac 5.0' for the time being.)
git-svn-id: svn://tug.org/texlive/trunk@71979 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71973 c570f23f-e606-0410-a88d-b1316a301751
|
|
This might rather be documented in 'cwebman.tex' together with '\def\9'.
git-svn-id: svn://tug.org/texlive/trunk@71951 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71937 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71926 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71902 c570f23f-e606-0410-a88d-b1316a301751
|
|
There's a type mismatch (probably copy-paste-error) for
'pdf_font_has_space_char', defined as '^boolean' in section 821,
in sections 1502 and 1518.
See https://tug.org/pipermail/tex-live/2024-July/050773.html for the
initial bug report.
git-svn-id: svn://tug.org/texlive/trunk@71901 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71900 c570f23f-e606-0410-a88d-b1316a301751
|
|
Maybe someone wants to use a different set of fonts in future.
'\eightrm' is already loaded in 'cwebmac.tex'.
git-svn-id: svn://tug.org/texlive/trunk@71886 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71885 c570f23f-e606-0410-a88d-b1316a301751
|
|
'\ninett' matches better with '\sc=\eightrm' ([sm]all-CAPS).
git-svn-id: svn://tug.org/texlive/trunk@71881 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71874 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71869 c570f23f-e606-0410-a88d-b1316a301751
|
|
There might have been use for '\ninett' in the page headers.
git-svn-id: svn://tug.org/texlive/trunk@71868 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71860 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71852 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71840 c570f23f-e606-0410-a88d-b1316a301751
|
|
Avoid a "stringop truncation" warning with 'strncpy()'.
git-svn-id: svn://tug.org/texlive/trunk@71824 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71816 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71804 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71797 c570f23f-e606-0410-a88d-b1316a301751
|
|
The classic 'manfnt' font has 'METAFONT' in several sizes; 9pt (?) is
used on the titlepage of MFT.WEB as '\logo hijklmnj'. Pick the missing
'S' (in 10pt) for the 'MetaPost' logo in the main text from the separate
'logo10' font.
Änderungen ein. Zeilen,
git-svn-id: svn://tug.org/texlive/trunk@71796 c570f23f-e606-0410-a88d-b1316a301751
|
|
With 'pdfctwimac.tex' there's no table-of-contents page (yet), so the
'\datecontentspage' never appeared 'in print' (together with '\datethis'
on the first page) with any of the PDF engines.
With 'pdfctproofmac.tex' used with HiTeX, the two '\date' macros showed
up in 'ctwill.hnt'. Similar to the other three CWEB modules 'without
changes', we get rid of the '\datecontentspage'.
git-svn-id: svn://tug.org/texlive/trunk@71789 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71782 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71780 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71777 c570f23f-e606-0410-a88d-b1316a301751
|
|
Also add line numbers in cwebman-w2c.ch relative to cwebman.tex.
Note that webman.pdf will have a link to the 'Holon Programming' project
on Github.
git-svn-id: svn://tug.org/texlive/trunk@71759 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71756 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71731 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71721 c570f23f-e606-0410-a88d-b1316a301751
|
|
The TeX macro '\title' is used far too often, both in the TeX parts and
in an index entry that produces an 'Overfull \hbox'.
Curiously enough, I was able to produce a 'core dump' from 'xdvipdfmx' with
this twisted change (the @x and @y parts should, of course, be flipped):
@x
begin print(' !Sorry, DVIcopy capacity exceeded ['); print_packet(p);
@.Sorry, DVIcopy capacity exceeded@>
@y
begin print(' !Sorry, ',title,' capacity exceeded ['); print_packet(p);
@.Sorry, {\title} capacity exceeded@>
@z
xdvipdfmx: ../../../texk/dvipdfm-x/dpxutil.c:454: ht_lookup_table: Assertion `ht && key' failed.
Aborted (core dumped)
git-svn-id: svn://tug.org/texlive/trunk@71720 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71719 c570f23f-e606-0410-a88d-b1316a301751
|
|
Python counts from '0', humans from '1'.
git-svn-id: svn://tug.org/texlive/trunk@71714 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71710 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71703 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71692 c570f23f-e606-0410-a88d-b1316a301751
|
|
In some rare cases, CWEAVE inserts '\7' instead of '\6' after
preprocessor commands (maybe related to '@!' as well).
git-svn-id: svn://tug.org/texlive/trunk@71678 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71665 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71664 c570f23f-e606-0410-a88d-b1316a301751
|
|
These got clobbered by the initial version of 'fix-changefile-lines.py'.
git-svn-id: svn://tug.org/texlive/trunk@71655 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71654 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71653 c570f23f-e606-0410-a88d-b1316a301751
|
|
This reverts commit 9e10d9728a3a121dfeb2c951045fe6c6cf7396e0.
git-svn-id: svn://tug.org/texlive/trunk@71652 c570f23f-e606-0410-a88d-b1316a301751
|
|
Sorry, I reverted the wrong commit.
git-svn-id: svn://tug.org/texlive/trunk@71651 c570f23f-e606-0410-a88d-b1316a301751
|
|
This reverts commit 4a4953dff0442ef6dda2f762209eac1eec038ace.
git-svn-id: svn://tug.org/texlive/trunk@71650 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71649 c570f23f-e606-0410-a88d-b1316a301751
|
|
git-svn-id: svn://tug.org/texlive/trunk@71645 c570f23f-e606-0410-a88d-b1316a301751
|