Here are some things left to do. If you would like to contribute, send mail to me (olaf@infovore.xs4all.nl) first. * Use binary mode for all files (but do obey end-of-line conventions for the specific platforms. * Give TeX more options: output filename:lineno: msg on error change prompt from `\n*' (for simpler cut-and-paste) * Have bibtex -verbose print full pathnames. * Make TeX--XeT a configure-time or runtime option? * Deal with the configure tests that prevent cross-compilation: - Remove use of schar (in dvicopy, mf, pktogf, and tangle). - Learn endianness at runtime, include both Big and LittleEndian versions in code, call appropriate one. - Figure out what to do about the sizeof long test. * Reallocate memory arrays as needed instead of just allocating once at the beginning. * Possibly use spiff when doing the triptrap comparisons, so acceptable differences can be eliminated. * Make web2c handle fields correctly, i.e., to put the field identifier in the symbol table of the type, instead of the global symbol table. This would simplify the GFtoDVI change file a fair amount. * Make web2c handle variant records. This would make the TeX, Metafont, and GFtoDVI change files all simpler. * Implement overflow checking for adding and subtracting dimensions. According to Knuth "a few dozen checks" would be needed (section 104). Knuth calls the chances of it occuring unlikely, but unfortunately you will get a bad DVI file when it does. The following source demonstrates the problem. % \newcount \loopcount \newcount \limit \limit = 3570 \hfuzz = \maxdimen \showboxdepth = -\maxdimen \showboxbreadth = -\maxdimen \overfullrule = 0 pt \tracingonline = 1 \scrollmode \loop \message {\the \limit} \setbox 0 = \hbox {\loopcount = 0 \loop M% \ifnum \loopcount < \limit \advance \loopcount by 1 \repeat }% \message {\the \wd 0} \advance \limit by 1 \iftrue \repeat \end %