[metapost] [metafont] a final note on dumping preloaded executables in the [g]?olden days

Nelson H. F. Beebe beebe at math.utah.edu
Sat Jan 8 02:29:03 CET 2005


[I realize this is off topic for metafont and metapost, but I wanted
to finish off a thread on this list with a final bit of archaelogical
investigation.]

I've reloaded some old TOPS-20 disks (for use on the simulator), and
dug through them to find out exactly how we used to create dumped
versions of TeX and Metafont on TOPS-20 on the DEC-20.  My memory no
longer retained the details.

Here is a fragment of a batch control file (--latex.mic) that
shows the procedure:

	@INITEX'A lplain
	*\dump
	@VIRTEX'A &lplain
	*^C
	@save tex:latex'a
	@rename lplain.fmt texformats:
	@delete lplain.lst

The 'A gets substituted by a command-line parameter, normally empty.

That was from the days before I wrote a Unix-like make implementation
that let us put things in standard Makefiles, instead of the old way
of having a gajillion specialized control files.

For a bit more history, here is another control-file fragment that
shows how TeX was compiled and linked:

	INITEX::
	@enable
	@TeX:tangle
	*TeX.web
	*TeX.tops20-changes'a   ! The change file is for INITEX
	*TeX.pas
	*TeX.pool
	@rename TeX.pool TeX:

	LOAD1::
	@enable
	@set no default compile pas
	@load %"ERRORLEVEL:10 INITEX/SAVE/RUNAME:INITEX" /language:"'b" TeX.pas
	@rename iniTeX.exe TeX:iniTeX'a.exe
	@delete TeX.rel,TeX.pas

That shows the original route: Web to Pascal to compiled program in
just a few steps.

Finally, let's compare a 1984 trip.log report with a more recent TeX
typesetting "hello, world".  Notice the table size differences: they
are up to 400 times bigger nowadays.

1984:
	This is TeX, Version 1.1 (preloaded format=trip 84.7.8)  8 JUL 1984 21:05
	** &trip  trip
	...
	Here is how much of TeX's memory you used:
	 42 strings out of 1819
	 225 string characters out of 9287
	 2195&525 words of memory out of 2300&701
	 357 multiletter control sequences out of 2100
	 729 words of font info for 4 fonts, out of 20000 for 75
	 2 hyphenation exceptions out of 307
	 5i,7n,9p,113b,38s stack positions out of 200i,40n,60p,500b,600s

	Output written on trip.dvi (16 pages, 2888 bytes).

2004: Local version:

	This is TeX, Version 3.1415 (C version 6.1.2) (INITEX)  23 DEC 2004 08:17
	Here is how much of TeX's memory you used:
	 5 strings out of 30802
	 28 string characters out of 496493
	 5915 words of memory out of 524286
	 925 multiletter control sequences out of 27000
	 14794 words of font info for 50 fonts, out of 400000 for 255
	 14 hyphenation exceptions out of 2003
	 8i,4n,0p,25b,22s stack positions out of 300i,40n,60p,3000b,4000s

	Output written on foo.dvi (1 page, 228 bytes).

2004: TeXlive-2004 version:

	This is TeXk, Version 3.141592 (Web2C 7.5.2) (format=tex 2004.1.3)  7 JAN 2005 18:10
	Here is how much of TeX's memory you used:
	 5 strings out of 98002
	 33 string characters out of 1221682
	 5919 words of memory out of 1500022
	 926 multiletter control sequences out of 10000+50000
	 14794 words of font info for 50 fonts, out of 1000000 for 2000
	 14 hyphenation exceptions out of 1000
	 8i,4n,0p,25b,22s stack positions out of 5000i,500n,6000p,200000b,40000s

	Output written on foo.dvi (1 page, 228 bytes).

How much did TeX change from 1989 (version 2.991) to 1993 (version
3.1415)?  My archives, alas, have no older version of TeX sources.
The tex.web file contains:

	1989:	24032 lines
	1993:	24907 lines

A diff report has 4998 lines: 1640 old lines (prefixed with < in the
diff output) became 2495 new lines (prefixed with >).  In other words,
about 7% of the TeX source code was affected by addition of support
for 8-bit characters and a few new primitives.  The source code logs
them like this:

% Version 2.991 caught .5\ifdim.6... (June 1989).
% Version 2.992 introduced major changes for 8-bit extensions (September 1989).
% Version 2.993 fixed a save_stack synchronization bug et alia (December 1989).
% Version 3.0 fixed unusual displays; was more \output robust (March 1990).
% Version 3.1 fixed nullfont, disabled \write{\the\prevgraf} (September 1990).
% Version 3.14 fixed unprintable font names and corrected typos (March 1991).
% Version 3.141 more of same; reconstituted ligatures better (March 1992).
% Version 3.1415 preserved nonexplicit kerns, tidied up (February 1993).

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe  -
-------------------------------------------------------------------------------



More information about the metapost mailing list