*** ctex.ch.small	Tue Mar 27 19:41:11 1990
--- ctex.ch	Tue Mar 27 22:55:58 1990
***************
*** 173,185 ****
  @y
  @d file_name_size == FILENAMESIZE {Get value from \.{site.h}.}
  @<Constants...@>=
! @!mem_max=65530; {greatest index in \TeX's internal |mem| array;
    must be strictly less than |max_halfword|;
    must be equal to |mem_top| in \.{INITEX}, otherwise |>=mem_top|}
  @!mem_min=0; {smallest index in \TeX's internal |mem| array;
    must be |min_halfword| or more;
    must be equal to |mem_bot| in \.{INITEX}, otherwise |<=mem_bot|}
! @!buf_size=2000; {maximum number of characters simultaneously present in
    current lines of open files and in control sequences between
    \.{\\csname} and \.{\\endcsname}; must not exceed |max_halfword|}
  @!error_line=79; {width of context lines on terminal error messages}
--- 173,185 ----
  @y
  @d file_name_size == FILENAMESIZE {Get value from \.{site.h}.}
  @<Constants...@>=
! @!mem_max=262140; {greatest index in \TeX's internal |mem| array;
    must be strictly less than |max_halfword|;
    must be equal to |mem_top| in \.{INITEX}, otherwise |>=mem_top|}
  @!mem_min=0; {smallest index in \TeX's internal |mem| array;
    must be |min_halfword| or more;
    must be equal to |mem_bot| in \.{INITEX}, otherwise |<=mem_bot|}
! @!buf_size=3000; {maximum number of characters simultaneously present in
    current lines of open files and in control sequences between
    \.{\\csname} and \.{\\endcsname}; must not exceed |max_halfword|}
  @!error_line=79; {width of context lines on terminal error messages}
***************
*** 186,208 ****
  @!half_error_line=50; {width of first lines of contexts in terminal
    error messages; should be between 30 and |error_line-15|}
  @!max_print_line=79; {width of longest text lines output; should be at least 60}
! @!stack_size=200; {maximum number of simultaneous input sources}
  @!max_in_open=15; {maximum number of input files and error insertions that
    can be going on simultaneously}
! @!font_max=120; {maximum internal font number; must not exceed |max_quarterword|
    and must be at most |font_base+256|}
! @!font_mem_size=36000; {number of words of |font_info| for all fonts}
  @!param_size=60; {maximum number of simultaneous macro parameters}
  @!nest_size=40; {maximum number of semantic levels simultaneously active}
! @!max_strings=4400; {maximum number of strings; must not exceed |max_halfword|}
! @!string_vacancies=15000; {the minimum number of characters that should be
    available for the user's control sequences and font names,
    after \TeX's own error messages are stored}
! @!pool_size=45000; {maximum number of characters in strings, including all
    error messages and help texts, and the names of all fonts and
    control sequences; must exceed |string_vacancies| by the total
    length of \TeX's own strings, which is currently about 23000}
! @!save_size=2000; {space for saving values outside of current group; must be
    at most |max_halfword|}
  @!trie_size=8000; {space for hyphenation patterns; should be larger for
    \.{INITEX} than it is in production versions of \TeX}
--- 186,208 ----
  @!half_error_line=50; {width of first lines of contexts in terminal
    error messages; should be between 30 and |error_line-15|}
  @!max_print_line=79; {width of longest text lines output; should be at least 60}
! @!stack_size=300; {maximum number of simultaneous input sources}
  @!max_in_open=15; {maximum number of input files and error insertions that
    can be going on simultaneously}
! @!font_max=255; {maximum internal font number; must not exceed |max_quarterword|
    and must be at most |font_base+256|}
! @!font_mem_size=72000; {number of words of |font_info| for all fonts}
  @!param_size=60; {maximum number of simultaneous macro parameters}
  @!nest_size=40; {maximum number of semantic levels simultaneously active}
! @!max_strings=7500; {maximum number of strings; must not exceed |max_halfword|}
! @!string_vacancies=74000; {the minimum number of characters that should be
    available for the user's control sequences and font names,
    after \TeX's own error messages are stored}
! @!pool_size=100000; {maximum number of characters in strings, including all
    error messages and help texts, and the names of all fonts and
    control sequences; must exceed |string_vacancies| by the total
    length of \TeX's own strings, which is currently about 23000}
! @!save_size=4000; {space for saving values outside of current group; must be
    at most |max_halfword|}
  @!trie_size=8000; {space for hyphenation patterns; should be larger for
    \.{INITEX} than it is in production versions of \TeX}
***************
*** 211,217 ****
  @!dvi_buf_size=16384; {size of the output buffer; must be a multiple of 8}
  @!pool_name='tex.pool';
    {string of length |file_name_size|; tells where the string pool appears}
! @!mem_top=65530; {largest index in the |mem| array dumped by \.{INITEX};
    must be substantially larger than |mem_bot|
    and not greater than |mem_max|}
  @z
--- 211,217 ----
  @!dvi_buf_size=16384; {size of the output buffer; must be a multiple of 8}
  @!pool_name='tex.pool';
    {string of length |file_name_size|; tells where the string pool appears}
! @!mem_top=262140; {largest index in the |mem| array dumped by \.{INITEX};
    must be substantially larger than |mem_bot|
    and not greater than |mem_max|}
  @z
***************
*** 238,248 ****
--- 238,258 ----
    and not greater than |mem_max|}
  @d font_base=0 {smallest internal font number; must not be less
    than |min_quarterword|}
+ @d hash_size=2100 {maximum number of control sequences; it should be at most
+   about |(mem_max-mem_min)/10|}
+ @d hash_prime=1777 {a prime number equal to about 85\pct! of |hash_size|}
+ @d hyph_size=307 {another prime; the number of \.{\\hyphenation} exceptions}
  @y
  @d mem_bot=0 {smallest index in the |mem| array dumped by \.{INITEX};
    must not be less than |mem_min|}
  @d font_base=0 {smallest internal font number; must not be less
    than |min_quarterword|}
+ @d hash_size=9500 {maximum number of control sequences; it should be at most
+   about |(mem_max-mem_min)/10|}
+ @d hash_prime=7919 {The thousandth in a list of 1000 primes.  Run the primes
+   program in LiterateProgramming to find out.  It is reasonably close to
+   85\pct! of a |hash_size| of 9500}
+ @d hyph_size=607 {another prime; the number of \.{\\hyphenation} exceptions}
  @z
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
***************
*** 744,752 ****
  @d max_halfword==65535 {largest allowable value in a |halfword|}
  @y
  @d min_quarterword=0 {smallest allowable value in a |quarterword|}
! @d max_quarterword=255 {largest allowable value in a |quarterword|}
  @d min_halfword==0 {smallest allowable value in a |halfword|}
! @d max_halfword==65535 {largest allowable value in a |halfword|}
  @z
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
--- 754,762 ----
  @d max_halfword==65535 {largest allowable value in a |halfword|}
  @y
  @d min_quarterword=0 {smallest allowable value in a |quarterword|}
! @d max_quarterword=511 {largest allowable value in a |quarterword|}
  @d min_halfword==0 {smallest allowable value in a |halfword|}
! @d max_halfword==262143 {largest allowable value in a |halfword|}
  @z
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
