summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/NEWS
blob: cf32765b0c056a63abb46b193d004c3515a08224 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
This file records noteworthy changes.  (Public domain.)


2022 (for TeX Live 2022)

* new hitex engine included, which outputs HINT files for display on
mobile devices. HINT viewers for GNU/Linux, Windows, and Android are
available.

* tangle, weave: support optional third argument to specify output file.

* twill program for original Pascal *.web mini-indexes included.

* across actively-extended engines
  (that is, not including original (e)TeX, Aleph, hiTeX):
- new primitive \showstream to redirect \show output to a file.
- new primitives \partokenname and \partokencontext allow overriding the
  name of the emitted \par token mitted at blank lines, the end of
  vboxes, etc.


2021 (for TeX Live 2021, 23 March 2021)
* Knuth 2021 tune-up, with fixes to all of his *.web files. Overview:
https://tug.org/TUGboat/42-1/tb130knuth-tuneup21.pdf
New TeX version is 3.141592653, MF 2.71828182.

* for all engines except original TeX:
- if \tracinglostchars >= 3, make missing characters an error (not just
  a log message), and always report the character code in hex.
- if new primitive parameter \tracingstacklevels > 0, logging of macro
  expansion at higher levels is truncated; also, the macro expansion
  depth is indicated on \tracingmacros log lines.

* obscure interaction sequences no longer crash.


2020 (for TeX Live 2020, 27 March 2020)
* \input now also accepts a group-delimited filename, e.g.,
\input{foo.tex}. The usage with a standard space/token-delimited
filename is completely unchanged.

The group-delimited name was previously implemented in LuaTeX; now it is
available in all engines. ASCII double quote characters (") are removed
from the filename, but it is otherwise left unchanged after
tokenization. This does not currently impact LaTeX's \input command, as
that is a macro redefinition of the standard \input primitive.

* New cross-engine option -cnf-line=STR.

* All TeX engines except tex and etex now compress (with zlib) .fmt files
  (XeTeX and LuaTeX already did so).

pTeX (and all variants): new primitives \ifjfont and \iftfont.
eptex, euptex: new primitives \Uchar, \Ucharcat, \current(x)spacingmode,
  \ifincsname; revise \fontchar?? and \iffontchar.
euptex only: new primitive  \currentcjktoken.

BibTeX: now reallocates on large (>20k) field values instead of aborting.


2019 (for TeX Live 2019,  7 April 2019)
BibTeX: subsidiary .aux files are looked for in the directory of the
main .aux file, if not found as-is (to work better with -output-directory).

CWEB: now comes from the CWEBbin package
(https://github.com/ascherer/cwebbin), with translation capabilities,
more language support, and more.


2018 (for TeX Live 2018, 14 April 2018)
* Directories in the -output-directory do not mask files by the same name.

2017 (for TeX Live 2017, 19 May 2017)
2016 (for TeX Live 2016, 21 May 2016)
2015 (for TeX Live 2015, 21 May 2015)
2014 (for TeX Live 2014, 24 May 2014)
2013 (for TeX Live 2013, 30 May 2013)
* Doc changes and bug fixes.

2012 (for TeX Live 2012, 1 July 2012)
* upTeX and e-upTeX Japanese engines added.

2011 (for TeX Live 2011, 5 July 2011)
* epTeX Japanese engine added.

2010 (for TeX Live 2010, 4 June 2010)
* BibTeX line-breaking bug fix in bibtex.web.
* pTeX Japanese engine added.

2009 (for TeX Live 2009, 13 October 2009)
* --shell-restricted aka shell_escape=p for restricted shell access.
* --enable-write18 and --disable-write18 accepted as synonyms for
  --shell-escape and --no-shell-escape, for compatibility with MiKTeX.
* Omega removed; use Aleph.
* Build system now automake-based.

7.5.7 (for TeX Live 2008, 7 July 2008)
* Include Knuth's 2008 updates.
* Include LuaTeX.
* Include SyncTeX.
* Plenty of pdfTeX and MetaPost updates.
* Pool strings now compiled into the binaries instead of .pool files.
* autoconf support finally modernized.

7.5.6 (for TeX Live 2006-07, 30 December 2006)
* Include XeTeX.
* pdfTeX and MetaPost updates.

7.5.5 (26 June 2005)
* BibTeX: dynamically resize the buffer (and related arrays).
* MP: Version 0.9
* mpware: Brought to the equivalent of version 0.9.
* e-TeX, Aleph, pdfeTeX: You can use -ini -etex to start etex mode now
  instead of prepending an asterisk.

7.5.4 (6 February 2005)
* TeX: \ifeof18 is false if \write18 is enabled.
* MF, MP: Prevent pathological code from overflowing the "serial number"
  counter for independent variables.

7.5.3 (28 November 2004)
* ctie: New program, from Julian Gilbey.
* TeX, MF, MP: We now save the name of the engine in the dump, in
  order to be able to give better error messages in case a dump
  written by another engine is being read.
* TeX, MF, MP: We now dump the xord, xchr, and xprn arrays, so if
  if a TCX file was loaded in INI mode, that will be retained
  when the dump is loaded.  (Doesn't apply to Omega family.)
* TeX, MF, MP: Add -8bit option, which makes all characters
  printable by default.  Note that a TCX file can change this.
  (Doesn't apply to Omega family.)
* TeX, MF, MP: In TCX files, a third number (0 or 1) can be
  used to set printability.  (Doesn't apply to Omega family.)
* TeX: Include encTeX extension.
* mft: Allow more than one -style option.
* pdfxTeX: New.
* DVItoMP: Now supports color specials, like those added by the
  colordvi package.  Note that this feature should be considered
  experimental, and may change in the future.
* PATGEN: Peter Breitenlohner fixed some typos in text in patgen.web.

7.5.2 (19 February 2003)
* e-TeX: Remove last bits of support for installing it as 'tex'.
* Makefile fixes.

7.5.1 (17 February 2003)
* New upstream sources from Knuth.
* Lots of little fixes to the new makefiles.

7.5.0 (15 February 2003)
* Use libtool.
* Use e-TeX, pdfeTeX as the engine for the latex, pdflatex format.

7.4.6 (7 February 2003)
* Makefile structure changed.
* e-Omega: New

7.4.5 (28 January 2003)
* TeX: Obey locale setting only for terminal and log file.
* METAFONT, MetaPost: Do not care about locale settings at all.

7.4.4 (16 January 2003)
* TeX: Increase maximum size of max_strings, main_memory, and pool_size.

7.4.3 (11 January 2003)
* CWEB: Add --help and --version options.
* CWEB: Support both .w and and .web suffixes.
* CWEB: When adding #line directives, put in the path, not just the filename.

7.4.2 (23 December 2002)
* Minor fixes to makefiles.

7.4.1 (20 December 2002)
* cweave: Fixed hangs caused by wrong argument order in two prototypes.

7.4.0 (14 December 2002)
* Using 7.4.x numbers now because the interface of kpathsea has changed in
  ABI-incompatible ways.
* share/*: Stop shipping fontmap files and tcx files in the web2c tarball.
* CWEB: Add protypes to code through the change files.
* BibTeX: Names ending in 'aux' were not handled correctly.
* METAPost: Handle date and time privitives correctly, instead of having
  them give the date of the mem file.

7.3.11 (13 November 2002)
* BibTeX: purify$ would strip characters with code >= 128 from its argument.
  This has now changed to just passing them through.  This should have no
  effect if you don't use such characters in the input, but may result in
  different output otherwise.  Note that other aspects, like proper sorting
  of such characters are not handled at all.
* CWEB: Increase the maximum length of the names of the input files.
	
7.3.10 (11 November 2002)
* Added the CWEB programs.  Thanks to Wlodek Bzyl.

7.3.9 (22 October 2002)
* TeX, METAFONT, METAPost: Add --jobname option to set the jobname.  This
  supercedes the use of --fmt, --efmt, --mem, and --base to set the name of
  the format to be dumped in ini mode.
* TANGLE: New options --length, --lowercase, --uppercase, --mixedcase,
  --underline, --strict, --loose.  These affect the output generated by
  tangle.

7.3.8 (11 October 2002)
* BibTeX: do not split \% in an output line.
* TeX: mention active extensions.
* TeX: change name/banner if extensions that break strict compatibility with
  Knuth's TeX are active.
* web2c: splitup now uses a command-line switch to determine how after
  how many lines it should split the sources.

7.3.7 (27 November 2001)
* Minor release, again incorporates internal changes to help Omega.
* Update of the fontmaps.

7.3.6 (18 November 2001)
* Minor release, again incorporates internal changes to help Omega.
* TeX, METAFONT, MetaPost:
  New option --recorder which enables a filename recorder.  A file
  with extension .fls is created which contains the names of the
  files opened for reading or writing.

7.3.5 (10 November 2001)
* Minor release, incorporate many changes due to developments of Omega.
  These are mainly internal.

7.3.4 (30 October 2001)
* Minor release, incorporates most of the features also in TeX-live 6,
  which is known as release 7.3.3.1.
* TANGLE: As an extension, you can define parametric macros where '[' and ']'
  delimit the argument.
* MFT: Support METAPOST sources.
* MPTO: Add -tex=program option.  Buffer is now configurable.

7.3.3 (5 August 2000)
* Minor release.
* METAFONT: Obey buf_size from texmf.cnf instead of using a hard-coded value.

7.3.2 (19 April 2000)
* Minor release containing bugfixes for 7.3.1.  Web2C 7.3.1 was not released
  on CTAN, only in teTeX 1.0
* The TeX-live 5 CD contains Web2C 7.3.1x, which is based on the 7.3.1 release
  and contains some changes that have yet to be merged into the main tree. In
  particular, the code for "C-style" error messages and the code for source
  specials has not been merged yet.

7.3.1 (30 May 1999)
* Minor release containing bugfixes for 7.3.  Web2C 7.3 was not released
  on CTAN, only on the TeX-live 4 CD.

7.3 (26 March 1999)
* New upstream sources from Knuth.
* TeX, METAFONT, MetaPost:
  (Re)introduction of TCX files.
* Increased capacity of several programs.
* Support for pdfeTeX added.
* Long-standing bugs in VFtoPL and TFtoPL, which led to corrupted TFM
  files being generated, have been fixed.

7.2 (15 March 1998)
* New upstream version of MetaPost: 0.64.
* TeX, METAFONT, MetaPost:
  Allow for more restrictions on the files written by \openout.
* TeX, METAFONT, MetaPost:
  New option --interaction, which can be used to set batchmode, nonstopmode,
  scrollmode, or errorstopmode.  Thus we can replace a construct like
    tex '\batchmode \input foo'
  with
    tex --interaction=batchmode foo
  and have a %&format line select the correct format.
* When %&format selects a format, the search paths are changed to conform
  to that format.
* TeX, METAFONT, MetaPost:
  During an "ini" run, the name of the format to be dumped can be set with
  the --fmt/--efmt/--base/--mem options.
* web2c: Extensive support for building e-TeX, Omega, a PDFTeX.
* web2c: The manual pages are back.

7.1 (10 November 1997)
* Some MSDOS/Win32 support added to the sources.
* BibTeX: increased capacity.
* VPtoVF: Increased capacity.
* TeX, METAFONT, MetaPost:
  - File foo.bar.tex results in \jobname foo.bar, hence foo.bar.{log,dvi,...}.
    This as opposed to foo and foo.{log,dvi,...} which it how it used to be in
    version 6.  In 7.0 situation was confusing, as the heuristics used would
    sometimes result in the extension being stripped, sometimes not.
* TeX:
  - The -extend-jobname option has been removed.
  - Printing of non-ASCII characters in diagnostics, code by Bernd Raichle.
  - All three of LF, CR, and CRLF are recognized end-of-line tokens.
* web2c:
  - Some support for e-TeX added to convert.

7.0 (6 February 1997)
* Update from Knuth for tex, mf, dvitype, pltotf, vptovf, and tangle,
  John Hobby's MetaPost (and support programs) included,
  update from P. Breitenlohner to dvicopy 1.5 and patgen 2.3.
* Update for kpathsea 3.0.
* Texinfo manual written.
* Amiga, OS/2, Windows NT support in the sources.
* TeX:
  - if -shell-escape or shell_escape in texmf.cnf is enabled,
    \write18{str} passes str to system(3) for processing by sh.
  - MLTeX extensions (\charsubdef, etc.) can be enabled at runtime.
  - Many array sizes can be set dynamically, in texmf.cnf.
  - MakeTeXTFM installed and enabled by default.
  - IPC communications to an external program for incremental DVI reading.
  - texfonts.map applies to TFM files, as originally intended.
  - More than 256 fonts are allowed.
  - DVI comment (with timestamp) can be overridden.
  - tex.web's consistency checks on .fmt files restored.
* Metafont:
  - A few array sizes can be set dynamically, in texmf.cnf.
  - X11 support disabled by default; configure --with-x to enable it.
  - MakeTeXMF enabled and installed by default.
* TeX, Metafont, MetaPost:
  - If the first line of the main input file starts with %&, the rest of
    the line is used as the fmt/base/mem file (if it can be found),
    except that %&ini means initex/inimf/inimpost.
  - One binary: initex/mf/mpost capabilities merged with virtex/mf/mpost.
  - New option -progname sets program name independently of argv[0].
  - Eight-bit filenames are output correctly in ^^ notation, instead of
    always being simplified to ^^@.
  - MakeTeX* scripts can be named and disabled via texmf.cnf.
  - MakeTeX* scripts are silent if \batchmode is in effect.
  - TEXMFINI environment variable checked for pool/fmt/base/mem lookups.
  - \openout (TeX) and write (MP) by default will not write to files
    whose names start with `.'.
  - ``Small'' versions no longer supported without source hacking.
  - Length bug regarding single non-ASCII characters in MF and MP fixed.
* BibTeX:
  - Some arrays dynamically reallocated as needed, other sizes increased.
  - Default behavior is verbose; new -terse option changes that.
  - Statistics are written to the .blg file.
  - Does not look at TEXINPUTS to find .bst files, but does check
    TEXBIB (after BIBINPUTS).
  - Does not interactively ask for the top-level .aux name.
* All programs:
  - Supply default extensions and default output files.
  - Support the standard --help and --version options.
  - Filenames not arbitrarily restricted in length.
  - Output written in the current directory, not the directory of
    an input file. (Most interesting for tangle.)
  - Times-Roman etc. work as font names, via texfonts.map and subsidiaries.
* dvitype prints decimal opcode numbers with --show-opcodes.
* bibtex and gftodvi never interactively ask for filenames;
  dvitype and dvicopy do not enter interactive dialogues.
* mft looks in MFTINPUTS, not TEXINPUTS.
* Configuration:
  - Optional features are enabled via configure --with-* and --enable-*
    options. Run configure --help.
  - There is no small TeX, Metafont, or MetaPost. If you want it, you'll
    have to change the change files, #define SMALL* yourself, and do
    whatever else is necessary yourself.
* Source hierarchy substantially simplified.
* Web2c:
  - Support for ifndef...endifn, a la ifdef.
  - Support for const expressions.
  - Can generate ANSI code.

Version 6.1 (3 February 1994)
* foo.bar found before foo.tex (found before foo).
* configure links sun.c to sun-sunview.c if SUNWIN is defined.
* -DLONG_64_BITS is supplied automatically (if appropriate).
* Various changes for configure --srcdir.
* Sample MakeTeX* scripts included.

Version 6.0 (24 January 1994)
* Default paths changed.
* Update for TeX 3.1415, etc.
* Change to use the kpathsea library, a la dvipsk and xdvik.

* TeX's \openin command invokes MakeTeXTeX just like \input.

* TeX & Metafont:
  - 16-byte values can be dumped, thus allowing native `long' on the DEC Alpha.
  - But 32-bit integers are used if sharable format files are desired,
    even on 64-bit machines.
  - Interrupts are accepted when waiting for input.
  
* Online output support in Metafont for Regis terminals and the NeXT.
* gftopk can handle characters with up to 100,000 rows.
* vftovp's -charcode-format=ascii works properly.
* patgen doesn't give bizarre numeric output where it should be text.

* configuration:
  - -lX11 is used for OpenWindows.
  - The MakeTeX... scripts are individually selectable by default, and
    can always be invoked if certain environment variables are set.
  - The subdirectory trick using st_nlink can be turned off.

* Makefiles:
  - man/Makefile doesn't remove itself at `clean'.
  - {tex,mf}/clean-tr[ia]p doesn't reinstall a {tex,mf}d.h with the test
     constants.
  - web2c/Makefile removes lex and yacc output at `clean'.
  - mkdirchain invoked as an absolute filename.

* web2c:
  - sync is no longer invoked; instead the Makefiles touch texd.h and
    mfd.h after they are finished.

Version 5.851d (22 February 1993)

* A file `texfonts.map' allows arbitrary mapping of font names (as given
  to, for instance, \font) to filenames.

* Metafont & TeX:
  - If a .tex, .tfm, or .mf file can't be found, MakeTeX{TeX,TFM,MF} is
    invoked before giving up, as in dvips' MakeTeXPK.
  - Sharable format/base files load faster on LittleEndian machines.
  - TEXMFOUTPUT is only used for those files which can't be written in
    the current directory, instead of all files after the first such.
    Its usage is also reflected in the `... written on ...' messages at
    the end of the run.
  - If the DISPLAY environment variable is set, Metafont assumes you are
    running under X11 for the purposes of online output (instead of
    relying on the TERM or MFTERM envvar).
  - Checks for write errors on DVI/GF output.
  - Unusual glue values no longer make TeX dump core on some systems.

* BibTeX:
  - The cross-reference feature works as documented (I had foolishly
    changed the default value of min_crossrefs to eliminate it).
  - New option -min-crossrefs=<number> to change it dynamically.
  - New option -verbose; without it, normal reportage is eliminated.
  - Maximum number of .bib files increased to 100.
  - Non-printable-ASCII characters in .bib files are preserved.

* TeXware:
  - tftopl adds a default extension `.tfm' to the input file if necessary.

* web2c: 
  - Unsigned types are used where possible to represent Pascal
    subranges.  Among other things, this eliminates a system dependency
    in creating format/base files (small_number was defined as `schar',
    which varies between systems).

* configuration:
  - Unpacks into web2c-<version> instead of src-<version>.*.
  - site.h merged into lib/c-auto.h.in and ./Makefile.in.
  - sed is used instead of patch to make the ``small'' change files.
  - sed is used instead of ed to make the trip/trap files.
  - The configure script looks in more directories for the X libraries
    and include files, and is generated from the latest version of Autoconf.
  - mfware and texware directories merged into the others.
  - The web2c version is defined in one place, so system information can
    be added to the banners more easily.

* Makefiles:
  - Makefiles in subdirectories are created by configure.
  - $(srcdir) (i.e., compiling in a different directory) is closer to working.
  - Stamp files are not used at the top level, or for {tex,mf}/convert.
  - New targets install-data and install-exec, to only install
    architecture-(in)dependent files.

* PROBLEMS.W2C has some notes on compiling and using these programs
  under DOS, contributed by melvin@math.psu.edu.

* The man pages have been significantly updated and improved by
  beebe@math.utah.edu.

* The original web files haven't changed.

Release 4.893b:
* Include patches from Tim to web2c to turn off the verbose output,
  unless -d is supplied to web2c.
* Change $(AR) in the MFwindow Makefile to `ar'.
* Try to get the base file from the program name in Metafont, as well in
  TeX.  Implication: mf.script and tex.script are no longer supplied,
  since a link to plain.{base,fmt} named {mf,tex}.{base,fmt} suffices. 
  `make install' doesn't create these links, since they only need to be
  done once.
* Move some stuff from site.h that should never be changed to a new
  file, defaults.h. Add a new definition, SIGNAL_HANDLER_RETURN_TYPE, to
  site.h, to get rid of the warnings in {tex,mf}/extra.c.
* Use a sed script, contributed by eggert@twinsun.com, instead of the
  awk script, at the beginning of the pipeline.
* Fix an unsigned comparison problem in pltotf, that made cc produce
  infinite ligature loops when converting trip.pl.
* Change threshold in Metafont, and f in tftopl, so broken C compilers
  (like some versions of pcc) don't get confused.
* Port vftovp and vptovf. Move pktogf and pktype to fontutil.
* Allow more than 500 kern pairs in pltotf.
* Change the first parameter to {mf,extra}/extra.c to *filename from
  filename[].
* Use a better hack for the mutually recursive procedures in pltotf et al.,
  from Tor Lillqvist <tml@hemuli.atk.vtt.fi>.

Release 2.993+1.9 = 4.893a:
Sebastian contributed the updates to ctex.ch, tftopl.ch, and pltotf.ch. 
Karl did the cmf.ch update.

Release 3.0:
Brings everything up to the new 8-bit versions.
Almost every file has changed at least somewhat, so I'm not going to
list all the changes.  Here are some highlights:
* char is now 0..255 instead of 0..127 in *.defines.
* `packed' is no longer ignored as part of an identifier (e.g., `packed_trie').
* new Makefiles to make it easier to do the trip/trap test, and with all
  the support programs integrated.
* ctex.ch has a hack to get around trie_op_hash being an array with a
  negative lower bound.
* pltotf.ch has a hack to get around mutually recursive routines.