From 8f41885e8628d81972494ab78d939ce85229c411 Mon Sep 17 00:00:00 2001 From: Andreas Scherer Date: Sat, 15 Jan 2022 12:07:27 +0000 Subject: [CWEB] Increase array sizes in CWEB 4.6.1. Without affecting CWEB in TeX Live, various array sizes in 'original' CWEB (release 4.6.1) were increased so that both CTANGLE and CWEAVE (but unfortunately _not_ CTWILL) can process CTEX.W in Martin Ruckert's WEB2W project (https://w3-o.cs.hm.edu/users/ruckert/public_html/web2w/index.html). git-svn-id: svn://tug.org/texlive/trunk@61610 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/cwebdir/ChangeLog | 18 ++++++++++++++++++ Build/source/texk/web2c/cwebdir/comm-pc.ch | 2 +- Build/source/texk/web2c/cwebdir/comm-w2c.h | 5 ++--- Build/source/texk/web2c/cwebdir/common.c | 6 +++--- Build/source/texk/web2c/cwebdir/common.h | 11 +++++------ Build/source/texk/web2c/cwebdir/ctang-bs.ch | 2 +- Build/source/texk/web2c/cwebdir/ctang-pc.ch | 2 +- Build/source/texk/web2c/cwebdir/ctang-w2c.ch | 2 +- Build/source/texk/web2c/cwebdir/ctangle.c | 8 ++++---- Build/source/texk/web2c/cwebdir/ctangle.w | 2 +- Build/source/texk/web2c/cwebdir/ctwill-w2c.ch | 10 +++++----- Build/source/texk/web2c/cwebdir/cweav-pc.ch | 4 ++-- Build/source/texk/web2c/cwebdir/cweav-w2c.ch | 8 ++++---- Build/source/texk/web2c/cwebdir/cweave.w | 14 +++++++------- Build/source/texk/web2c/cwebdir/cwebman-w2c.ch | 8 ++++---- Build/source/texk/web2c/cwebdir/cwebman.tex | 4 ++-- 16 files changed, 61 insertions(+), 45 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/web2c/cwebdir/ChangeLog b/Build/source/texk/web2c/cwebdir/ChangeLog index 702dc019c81..72dc0012cd9 100644 --- a/Build/source/texk/web2c/cwebdir/ChangeLog +++ b/Build/source/texk/web2c/cwebdir/ChangeLog @@ -1,3 +1,21 @@ +2022-01-15 Andreas Scherer + + * comm-pc.ch, + * comm-w2c.h, + * common.c, + * common.h, + * ctang-bs.ch, + * ctang-pc.ch, + * ctang-w2c.ch, + * ctangle.c, + * ctangle.w, + * ctwill-w2c.ch, + * cweav-pc.ch, + * cweav-w2c.ch, + * cweave.w, + * cwebman.tex, + * cwebman-w2c.ch: Increase sizes in CWEB 4.6.1. + 2021-12-26 Andreas Scherer * Makefile, diff --git a/Build/source/texk/web2c/cwebdir/comm-pc.ch b/Build/source/texk/web2c/cwebdir/comm-pc.ch index 5a29188ed73..883da1303c6 100644 --- a/Build/source/texk/web2c/cwebdir/comm-pc.ch +++ b/Build/source/texk/web2c/cwebdir/comm-pc.ch @@ -8,7 +8,7 @@ Note: The change to section 16 is not necessary if using a compiler that allows >64K arrays. @x section 16 -@d max_bytes 90000 /* the number of bytes in identifiers, +@d max_bytes 100000 /* the number of bytes in identifiers, @y @d max_bytes (unsigned)60000 /* the number of bytes in identifiers, @z diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.h b/Build/source/texk/web2c/cwebdir/comm-w2c.h index 095aa8b493e..ae0ffa3d7a3 100644 --- a/Build/source/texk/web2c/cwebdir/comm-w2c.h +++ b/Build/source/texk/web2c/cwebdir/comm-w2c.h @@ -251,9 +251,8 @@ extern void common_init(void);@/ extern void print_stats(void);@/ extern void cb_show_banner(void); -@ The following parameters were sufficient in the original \.{WEB} to -handle \TEX/, so they should be sufficient for most applications of -\.{CWEB}. +@ The following parameters are sufficient to handle \TEX/ (converted to +\.{CWEB}), so they should be sufficient for most applications of \.{CWEB}. @d buf_size 1000 /* maximum length of input line, plus one */ @d longest_name 10000 /* file names, section names, and section texts diff --git a/Build/source/texk/web2c/cwebdir/common.c b/Build/source/texk/web2c/cwebdir/common.c index 9e77c55f317..00575a0ebf5 100644 --- a/Build/source/texk/web2c/cwebdir/common.c +++ b/Build/source/texk/web2c/cwebdir/common.c @@ -82,13 +82,13 @@ #define new_line putchar('\n') #define term_write(a,b) fflush(stdout) ,fwrite(a,sizeof(char) ,b,stdout) \ -#define buf_size 100 +#define buf_size 200 #define longest_name 10000 \ #define long_buf_size (buf_size+longest_name) -#define max_bytes 90000 \ +#define max_bytes 100000 \ -#define max_names 4000 \ +#define max_names 5000 \ #define max_sections 2000 \ diff --git a/Build/source/texk/web2c/cwebdir/common.h b/Build/source/texk/web2c/cwebdir/common.h index 2a584ff4425..ee75ca2f77a 100644 --- a/Build/source/texk/web2c/cwebdir/common.h +++ b/Build/source/texk/web2c/cwebdir/common.h @@ -226,17 +226,16 @@ extern FILE *active_file; /* currently active file for \.{CWEAVE} output */ extern void common_init(void);@/ extern void print_stats(void); -@ The following parameters were sufficient in the original \.{WEB} to -handle \TEX/, so they should be sufficient for most applications of -\.{CWEB}. +@ The following parameters are sufficient to handle \TEX/ (converted to +\.{CWEB}), so they should be sufficient for most applications of \.{CWEB}. -@d buf_size 100 /* maximum length of input line, plus one */ +@d buf_size 200 /* maximum length of input line, plus one */ @d longest_name 10000 /* file names, section names, and section texts shouldn't be longer than this */ @d long_buf_size (buf_size+longest_name) /* for \.{CWEAVE} */ -@d max_bytes 90000 /* the number of bytes in identifiers, +@d max_bytes 100000 /* the number of bytes in identifiers, index entries, and section names; must be less than $2^{24}$ */ -@d max_names 4000 /* number of identifiers, strings, section names; +@d max_names 5000 /* number of identifiers, strings, section names; must be less than 10240 */ @d max_sections 2000 /* greater than the total number of sections */ diff --git a/Build/source/texk/web2c/cwebdir/ctang-bs.ch b/Build/source/texk/web2c/cwebdir/ctang-bs.ch index ceaefa93e5f..401e165f9aa 100644 --- a/Build/source/texk/web2c/cwebdir/ctang-bs.ch +++ b/Build/source/texk/web2c/cwebdir/ctang-bs.ch @@ -98,7 +98,7 @@ typedef text *text_pointer; @x Section 20. -@ @d max_texts 2500 /* number of replacement texts, must be less than 10240 */ +@ @d max_texts 4000 /* number of replacement texts, must be less than 10240 */ @d max_toks 270000 /* number of bytes in compressed \CEE/ code */ @y @ (This is a modified version of \.{CTANGLE}, and in fact one of the parameters diff --git a/Build/source/texk/web2c/cwebdir/ctang-pc.ch b/Build/source/texk/web2c/cwebdir/ctang-pc.ch index 2fb9b90440f..947a4dc6214 100644 --- a/Build/source/texk/web2c/cwebdir/ctang-pc.ch +++ b/Build/source/texk/web2c/cwebdir/ctang-pc.ch @@ -14,7 +14,7 @@ alternate change files with -bs suffix instead of -pc. @d banner "This is CTANGLE (Version 4.6pc)" @z @x section 17 -@d max_bytes 90000 /* the number of bytes in identifiers, +@d max_bytes 100000 /* the number of bytes in identifiers, index entries, and section names; must be less than $2^{24}$ */ @y (note that CWEAVE itself needs only about 42K toks) @d max_bytes (unsigned)60000 /* the number of bytes in identifiers, diff --git a/Build/source/texk/web2c/cwebdir/ctang-w2c.ch b/Build/source/texk/web2c/cwebdir/ctang-w2c.ch index e1233636a81..334f54ca074 100644 --- a/Build/source/texk/web2c/cwebdir/ctang-w2c.ch +++ b/Build/source/texk/web2c/cwebdir/ctang-w2c.ch @@ -60,7 +60,7 @@ @z @x -@ @d max_texts 2500 /* number of replacement texts, must be less than 10240 */ +@ @d max_texts 4000 /* number of replacement texts, must be less than 10240 */ @d max_toks 270000 /* number of bytes in compressed \CEE/ code */ @y @ @d max_texts 10239 /* number of replacement texts, must be less than 10240 */ diff --git a/Build/source/texk/web2c/cwebdir/ctangle.c b/Build/source/texk/web2c/cwebdir/ctangle.c index 0c6f8afe2a9..6faee0b9463 100644 --- a/Build/source/texk/web2c/cwebdir/ctangle.c +++ b/Build/source/texk/web2c/cwebdir/ctangle.c @@ -84,17 +84,17 @@ #define new_line putchar('\n') #define term_write(a,b) fflush(stdout) ,fwrite(a,sizeof(char) ,b,stdout) \ -#define buf_size 100 +#define buf_size 200 #define longest_name 10000 \ #define long_buf_size (buf_size+longest_name) -#define max_bytes 90000 \ +#define max_bytes 100000 \ -#define max_names 4000 \ +#define max_names 5000 \ #define max_sections 2000 \ -#define max_texts 2500 +#define max_texts 4000 #define max_toks 270000 #define equiv equiv_or_xref \ diff --git a/Build/source/texk/web2c/cwebdir/ctangle.w b/Build/source/texk/web2c/cwebdir/ctangle.w index 1a9e8065af8..2aeb5a8af45 100644 --- a/Build/source/texk/web2c/cwebdir/ctangle.w +++ b/Build/source/texk/web2c/cwebdir/ctangle.w @@ -126,7 +126,7 @@ typedef struct { } text; typedef text *text_pointer; -@ @d max_texts 2500 /* number of replacement texts, must be less than 10240 */ +@ @d max_texts 4000 /* number of replacement texts, must be less than 10240 */ @d max_toks 270000 /* number of bytes in compressed \CEE/ code */ @= static text text_info[max_texts]; diff --git a/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch b/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch index e1668d822ae..a5ae917348f 100644 --- a/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch +++ b/Build/source/texk/web2c/cwebdir/ctwill-w2c.ch @@ -84,7 +84,7 @@ on \.{CWEAVE} by Silvio Levy and D.~E. Knuth. It is also based on Volumes B and~D of {\sl Computers {\char`\&} Typesetting\/} in 1985. \.{CTWILL} was hacked together hastily in June, 1992, to generate pages for Knuth's book about the Stanford GraphBase, and updated even more hastily -in March, 1993 to generate final copy for that book. The main idea was to +in March, 1993, to generate final copy for that book. The main idea was to extend \.{CWEAVE} so that ``mini-indexes'' could appear. No time was available to make \.{CTWILL} into a refined or complete system, nor even to fully update the program documentation below. Subsequent changes @@ -123,8 +123,8 @@ modified. The version number parallels the corresponding version of \.{CWEAVE}. @z @x -@d max_refs 20000 /* number of cross-references; must be less than 65536 */ -@d max_scraps 2000 /* number of tokens in \CEE/ texts being parsed */ +@d max_refs 30000 /* number of cross-references; must be less than 65536 */ +@d max_scraps 5000 /* number of tokens in \CEE/ texts being parsed */ @y @d max_refs 65535 /* number of cross-references; must be less than 65536 */ @d max_scraps 5000 /* number of tokens in \CEE/ texts being parsed */ @@ -146,9 +146,9 @@ turned on during the first phase---NOT! @z @x -@d max_toks 20000 /* number of symbols in \CEE/ texts being parsed; +@d max_toks 30000 /* number of symbols in \CEE/ texts being parsed; must be less than 65536 */ -@d max_texts 4000 /* number of phrases in \CEE/ texts being parsed; +@d max_texts 8000 /* number of phrases in \CEE/ texts being parsed; must be less than 10240 */ @y @d max_toks 65535 /* number of symbols in \CEE/ texts being parsed; diff --git a/Build/source/texk/web2c/cwebdir/cweav-pc.ch b/Build/source/texk/web2c/cwebdir/cweav-pc.ch index 23b37416a80..ca1e5ef1587 100644 --- a/Build/source/texk/web2c/cwebdir/cweav-pc.ch +++ b/Build/source/texk/web2c/cwebdir/cweav-pc.ch @@ -17,12 +17,12 @@ change files that have -bs in their name instead of -pc.) @z @x section 17 -@d max_bytes 90000 /* the number of bytes in identifiers, +@d max_bytes 100000 /* the number of bytes in identifiers, @y @d max_bytes (unsigned)60000 /* the number of bytes in identifiers, @z @x -@d max_refs 20000 /* number of cross-references; must be less than 65536 */ +@d max_refs 30000 /* number of cross-references; must be less than 65536 */ @y @d max_refs 10000 /* number of cross-references; must be less than 65536 */ @z diff --git a/Build/source/texk/web2c/cwebdir/cweav-w2c.ch b/Build/source/texk/web2c/cwebdir/cweav-w2c.ch index c8b530c44f9..926dc97f87f 100644 --- a/Build/source/texk/web2c/cwebdir/cweav-w2c.ch +++ b/Build/source/texk/web2c/cwebdir/cweav-w2c.ch @@ -60,8 +60,8 @@ @z @x -@d max_refs 20000 /* number of cross-references; must be less than 65536 */ -@d max_scraps 2000 /* number of tokens in \CEE/ texts being parsed */ +@d max_refs 30000 /* number of cross-references; must be less than 65536 */ +@d max_scraps 5000 /* number of tokens in \CEE/ texts being parsed */ @y @d max_refs 65535 /* number of cross-references; must be less than 65536 */ @d max_scraps 5000 /* number of tokens in \CEE/ texts being parsed */ @@ -74,9 +74,9 @@ @z @x -@d max_toks 20000 /* number of symbols in \CEE/ texts being parsed; +@d max_toks 30000 /* number of symbols in \CEE/ texts being parsed; must be less than 65536 */ -@d max_texts 4000 /* number of phrases in \CEE/ texts being parsed; +@d max_texts 8000 /* number of phrases in \CEE/ texts being parsed; must be less than 10240 */ @y @d max_toks 65535 /* number of symbols in \CEE/ texts being parsed; diff --git a/Build/source/texk/web2c/cwebdir/cweave.w b/Build/source/texk/web2c/cwebdir/cweave.w index bcc8efcfb74..96ee6442d21 100644 --- a/Build/source/texk/web2c/cwebdir/cweave.w +++ b/Build/source/texk/web2c/cwebdir/cweave.w @@ -111,13 +111,13 @@ possible changes from this \.{COMMON} interface consistently. @i common.h -@ The following parameters were sufficient in the original \.{WEAVE} to -handle \TEX/, so they should be sufficient for most applications of \.{CWEAVE}. +@ The following parameters are sufficient to handle \TEX/ (converted to +\.{CWEB}), so they should be sufficient for most applications of \.{CWEAVE}. @d line_length 80 /* lines of \TEX/ output have at most this many characters; should be less than 256 */ -@d max_refs 20000 /* number of cross-references; must be less than 65536 */ -@d max_scraps 2000 /* number of tokens in \CEE/ texts being parsed */ +@d max_refs 30000 /* number of cross-references; must be less than 65536 */ +@d max_scraps 5000 /* number of tokens in \CEE/ texts being parsed */ @* Data structures exclusive to {\tt CWEAVE}. As explained in \.{common.w}, the field of a |name_info| structure @@ -335,9 +335,9 @@ that is unoccupied by replacement text is called |tok_ptr|, and the first unused location of |tok_start| is called |text_ptr|. Thus, we usually have |*text_ptr==tok_ptr|. -@d max_toks 20000 /* number of symbols in \CEE/ texts being parsed; +@d max_toks 30000 /* number of symbols in \CEE/ texts being parsed; must be less than 65536 */ -@d max_texts 4000 /* number of phrases in \CEE/ texts being parsed; +@d max_texts 8000 /* number of phrases in \CEE/ texts being parsed; must be less than 10240 */ @= @@ -3765,7 +3765,7 @@ typedef struct { } output_state; typedef output_state *stack_pointer; -@ @d stack_size 400 /* number of simultaneous output levels */ +@ @d stack_size 2000 /* number of simultaneous output levels */ @d cur_end cur_state.end_field /* current ending location in |tok_mem| */ @d cur_tok cur_state.tok_field /* location of next output token in |tok_mem| */ @d cur_mode cur_state.mode_field /* current mode of interpretation */ diff --git a/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch b/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch index 8a548ec9620..cbe0107bdb5 100644 --- a/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch +++ b/Build/source/texk/web2c/cwebdir/cwebman-w2c.ch @@ -220,10 +220,10 @@ Sometimes things don't work as smoothly, and you get a bunch of the program sources at \.{ftp://ftp.cs.stanford.edu/pub/ctwill}. @y the program sources at -\pdfURL{\.{ftp://ftp.cs.stanford.edu/pub/ctwill}}% - {ftp://ftp.cs.stanford.edu/pub/ctwill}.% -\cwebfootnote{\TeX~Live comes with an up-to-date \.{ctwill} executable -- and -its associated helpers -- out of the box.} +\pdfURL{\.{http://ftp.cs.stanford.edu/pub/ctwill}}% + {http://ftp.cs.stanford.edu/pub/ctwill}.% +\cwebfootnote{\TeX~Live comes with an up-to-date +\.{ctwill} executable -- and its associated helpers -- out of the box.} @z @x diff --git a/Build/source/texk/web2c/cwebdir/cwebman.tex b/Build/source/texk/web2c/cwebdir/cwebman.tex index 476b526a602..4540802d31e 100644 --- a/Build/source/texk/web2c/cwebdir/cwebman.tex +++ b/Build/source/texk/web2c/cwebdir/cwebman.tex @@ -1600,8 +1600,8 @@ contents page. \point 9. Data for the table of contents is written to a file that is read after the indexes have been \TEX/ed; there's one line of data for every starred section. The file \.{common.toc} might look like this: -$$\lpile{\.{\\ZZ \{Introduction\}\{0\}\{1\}\{28\}\{\}}\cr - \.{\\ZZ \{The character set\}\{2\}\{5\}\{29\}\{\}}\cr}$$ +$$\lpile{\.{\\ZZ \{Introduction\}\{0\}\{1\}\{29\}\{\}}\cr + \.{\\ZZ \{The character set\}\{1\}\{21\}\{35\}\{\}}\cr}$$ and so on. The \.{\\topofcontents} macro could redefine \.{\\ZZ} so that the information appears in any desired format. (See also point~19 below.) -- cgit v1.2.3