dvitomp fix from Akira
[mplib] / CHANGES
1
2 This file is public domain.
3
4 ----------------------------------------------------------------------
5 What is new in MetaPost beta version 1.091:
6 ----------------------------------------------------------------------
7
8 * Dash lists were interfaced incorrectly by the lua bindings.
9
10 * The Type 1 Font inclusion in the previous version produced invalid
11   subsets.
12
13 * The configure script now also checks for sys/time.h
14
15 * The error message you get for invalid mem files now mentions the
16   name of the file as well as the nature of the problem.
17
18 ----------------------------------------------------------------------
19 What is new in MetaPost beta version 1.090:
20 ----------------------------------------------------------------------
21
22 This MetaPost release is based on MPlib. For those of you who are not 
23 aware of the MPlib project yet:
24
25 MPlib is the name of the new, revamped version of the MetaPost
26 interpreter. It is implemented in Cweb, and internally consists
27 of a core library, an mpx generation library, and a frontend
28 driver program (mpost).
29
30 There are no changes to the MetaPost language, but nevertheless there
31 are some minor differences with the last pascal-web based version of 
32 MetaPost (1.005):
33
34 * The MPlib distribution is released under the GPL version 2 or, 
35   at your option, any later version.
36
37 * The commandline is slightly different, run mpost --help for details.
38
39 * The mem file format is changed, you have to regenerate any 
40   existing ones.
41
42 * The new mpx generation library includes the label generation
43   functionality that was previously provided by 'makempx', and
44   this internal code will be used instead of an external program.
45   That is, unless the MPXCOMMAND variable is set in the  environment 
46   or texmf.cnf. The 'mpware' programs became obsolete and are no 
47   longer included in the distribution.
48
49 * Most of the memory configuration variables from texmf.cnf
50   have become obsolete due to dynamic reallocation. The four remaining 
51   ones are 'main_memory', 'hash_size', 'max_in_open', 'param_size'.
52   These are only taken into account at mem generation time, the
53   values are stored in and reloaded from the mem file.
54
55 * The core MPlib library does not interpret an initial '&' as anything
56   special and it does not support re-initialization using a different
57   mem file either. The command line program mpost _does_ interpret '&' 
58   as an alias for the -mem switch to preserve (some) compatility.
59
60 * The MPlib distribution includes lua script language bindings.
61
62 Following are the NEWS items for the previous beta releases of MPlib.
63
64 ----------------------------------------------------------------------
65 What is new in the beta release of MPlib 1.090:
66 ----------------------------------------------------------------------
67
68 * The lua bindings to MPlib are added to the distribution, and
69   build.sh can now build an mplib.so loadable module for lua
70   (this needs an installed lua 5.1 distribution)
71
72 * Some internal macros are renamed so that the exported C structure
73   fields could have better names, and a new document (mplibapi.tex)
74   provides the documentation of the C api and Lua bindings.
75
76 * The texmf and manual trees are now included again.
77
78 * (un)dumping mem files is delegated to a separate cweb source file.
79
80 * All gcc-isms in the build and configure scripts have been removed.
81
82 * The kpathsea library is updated.
83
84 ----------------------------------------------------------------------
85 What is new in the beta release of MPlib 1.085:
86 ----------------------------------------------------------------------
87
88 * Determination of the mem name to use in non-ini mode is now much 
89   closer to the web2c approach. 
90
91 * There is now a magic word in the beginning of the mem file to make
92   sure it is written by the correct version of MPlib.
93
94 * Fixed the disappearing comment sign in the to-be-typeset document 
95   created by the mpx generation subsystem.
96
97 * Various identifiers have been renamed to avoid clashes (that prevented
98   the source from building correctly on many platforms)
99
100 * A great many small changes and fixes have been added after running 
101   splint on the generated C source.
102
103
104 ----------------------------------------------------------------------
105 What is new in the beta release of MPlib 1.080:
106 ----------------------------------------------------------------------
107
108 * The MPlib distribution is released under the GPL version 2 or, at 
109   your option, any later version. The copyright statements in the source
110   files have been updated to reflect this.
111
112 * The mpost program banner now contains the kpathsea version, and no 
113   longer mentions the fact that the source is now cweb at all.
114
115 * The mpost program once again supports 'E' error responses.
116
117 * There are some minor internal API changes, but there is still no 
118   documentation for the API, so that is not very interesting yet.
119
120
121 ----------------------------------------------------------------------
122 What is new in the beta release of MPlib 1.060:
123 ----------------------------------------------------------------------
124
125 * The MPlib distribution is released under the GPL version 2.
126
127 * This release is the first that replaces the old metapost distribution
128   completely. The executable is now named 'mpost' with engine name
129   'metapost'.
130
131 * The release now includes a cweb implementation of the makempx 
132   functionality that is linked into the mpost executable. 
133   This internal code will be used unless the MPXCOMMAND variable is set.
134   Because of this functionality, the mpware directory is no longer 
135   included and the standalone programs 'makempx', 'newer', 'mpto',
136   'dvitomp' and 'dmp'. are no longer maintained.
137
138 * This is the first development release of the new cycle, and contains 
139   all of the functionality of Metapost 1.005. The mpost version is now 
140   1.060, and the special version number for the cweb version has been 
141   removed from the banner.
142   
143 ----------------------------------------------------------------------
144 What is new in the alpha release of MPlib (0.20.0):
145 ----------------------------------------------------------------------
146
147 * Two bugs in MP 1.002 were fixed by Giuseppe Bilotta, both fixes
148   are about polygonals pens and will be included in the upcoming 
149   MP 1.003 release also.
150
151 * It is now possible to ask for the envelope of a path drawn as 
152   traced by a (non-elliptical) pen:
153
154     path p,q;
155     p = fullcircle scaled 30;
156     q = envelope pensquare of p;
157    
158 * There is a lua interface now, and it is already used by luatex. 
159
160   To play with this, currently the best solution is to fetch the 
161   0.25.0 beta of luatex: http://foundry.supelec.fr/projects/luatex
162   This embeds MPlib 0.25.0 as well as its documentation. 
163
164 * Many bugs were fixed.
165
166 ----------------------------------------------------------------------
167 What is new in the alpha release of MPlib (0.10.0):
168 ----------------------------------------------------------------------
169
170 * The source is converted to cweb, and split into a library part
171   (mpdir/lib/*.w) and a frontend executable (mpdir/mpost.w).
172
173 * The front end executable is named "newmpost", this takes
174   care of configuring the MPlib library via C code, and uses
175   kpathsea for file searching. There is no change file involved, 
176   and the web2c runtime library is not used.
177
178 * Some of the internal arrays now grow dynamically when needed:
179
180   * the input buffer
181   * the string pool and number of strings
182   * the font memory and number of fonts
183   * the number of "readfrom" and "write" files
184   * the path segment size
185   * the input nesting stack
186   * the number of new internals
187   * the TFM writing arrays (but these are limited by TFM format)
188
189   Still not doing that (so these can only be changed in --ini mode):
190
191   * the main memory
192   * the hash size
193   * the number of simultaneous macro parameters
194   * the level of "input" file nesting
195
196 * The following command-line options are ignored by the front-end
197   command (for now):
198
199   -[no-]file-line-error
200   -halt-on-error
201   -output-directory=
202   -[no-]parse-first-line
203   -recorder
204   -translate-file=
205   -8bit
206   -T
207   
208   The other web2c command-line options should work as normal.
209
210 * the mpware tools are not in this distribution, their functionality
211   will eventually be assimilated into the frontend application.
212
213 * the build process depends on a local "ctangle" command being in the 
214   path, for now. The confiration and building system is not yet complete.
215
216 * API documentation is still missing, but the MetaPost input language 
217   has not changed.
218
219 ----------------------------------------------------------------------
220 What is new in version 1.002:
221 ----------------------------------------------------------------------
222
223 * Version 1.001 introduced a memory allocation error in mpto that could
224   result in the program looping endlessly
225
226 ----------------------------------------------------------------------
227 What is new in version 1.001:
228 ----------------------------------------------------------------------
229
230 * The default cmyk 'black' color now uses only black, not all four
231   ink colors (after a discussion on the mailing list).
232
233 * Some issues were reported with the new turningnumber algorithm,
234   all known problems are now fixed.
235
236 * Gábor Braun discovered that mpost did not always download the font
237   encodings into all the created output files.
238
239 * Akira Kakuto and Hartmut Henkel found some small issues in mpto
240   regarding trailing and leading whitespace.
241
242 * A fix for the 'Helvetica' entries in trfonts.map was provided by
243   Werner Lemberg, and Michail Vidiassov supplied two extra font 
244   entries for troff.map (Symbol and ZapfDingbats). Karl Berry
245   provided the new file troff-updmap.map, to be used by the updmap 
246   tool in texlive.
247
248 * Mpost now supports web2c's --output-directory option.
249
250 * Any warnings about missing fonts and characters are now always 
251   written to the terminal as well as to the log.
252
253 * Now that makempx is a C program, it needed a different install line
254   in build.sh. Also, Olaf Mersmann contributed a patch to recognize
255   'gmake' in build.sh
256
257 * Luigi Scarso found some typing errors in the web source that prevented
258   clean weaving of the source.
259
260 * Stephan Hennig fixed a number of problems in the manual (mpman.tex)
261   and the introduction paper (mpintro.tex). He also wrote new sections on 
262   how to preview metapost graphics and on how to use metapost graphics 
263   inside  other documents. On top of that, the manual is now hypertext-aware, 
264   and fixes for a whole series of small problems have been applied.
265
266 ----------------------------------------------------------------------
267 What is new in version 1.000:
268 ----------------------------------------------------------------------
269
270 *  The use of DSC (document structuring) comments has been
271    been cleaned up, thanks to comments by Michail Vidiassov.
272  
273 *  By setting prologues to 2 or 3, you can ask MetaPost to 
274    reencode and include the used labels fonts in the output,
275    thus creating proper Encapsulated PostScript files even
276    if labels are present.
277
278 *  Support for greyscale and cmykcolor models is added.
279
280 *  The new drawing options "withprescript" and withpostscript"
281    allow the user to attach PostSCript special text to a specific
282    drawing object.
283
284 *  Setting the new internal "mpprocset" to 1 will make MetaPost
285    create a somewhat extended preamble that defines shortcuts
286    for the postscript commands (e..g "l" instead of "lineto").
287    For big images, this can help shrink the output a bit.
288
289 *  The pool file is now integrated in the executable, so there
290    is not separate 'mp.pool' anymore, except at build time.
291
292 *  Groff support is redone, and dmp now uses kpathsea searching.
293    Groff related changes are thanks to the efforts of Werner 
294    Lemberg and Michail Vidiassov 
295
296 *  makempx is now a compiled executable on all systems,
297    thank you Akira Kakuto
298
299 *  The error for 'special's longer then 255 characters
300    is removed, so specials can now be of any length.
301
302 *  There is new turningnumber implementation that attempts
303    to find the mathematically correct "turningnumber" of a 
304    path. The formulae are derived from a mailinglist discussion
305    between (especially) Dan Luecking and Giuseppe Bilotta.
306
307 *  The manual is updated and modernized. It is currently 
308    maintained by Stephan Hennig and Troy Henderson.
309
310 ------------------------------------------------------------------
311 Changes in version 0.920:
312 ----------------------------------------------------------------------
313
314 *  Fixed a long-standing bug in web2c where changing values of the
315    memory_size setting in web2c could cause crashes and other random
316    problems. The memory array size is now written to the dump file
317    and loading is aborted if the values do not match.
318 *  Implement configurable figure output filename templates.
319 *  Implement cmyk, greyscale, and marking only color models.
320 *  The mpost executable is now version 0.920
321   
322 ----------------------------------------------------------------------
323 Changes in version 0.902:
324 ----------------------------------------------------------------------
325 *  Fix a bug in mpto resulting in correctly placed labels (with
326    thanks to Dan Luecking)
327 *  Fix a bug blocking compilation of dmp on MacOSX
328 *  The mpost,dmp,mpto executables are now version 0.902
329
330
331 ----------------------------------------------------------------------
332 Changes in version 0.901:
333 ----------------------------------------------------------------------
334 *  A corrected bugfix for bug item 3 from version 0.9 (the old fix
335    made metapost fail the trap test)
336 *  Included mpost.mp for mem generation
337 *  Updated the trap test output.
338 *  The mpost executable is now version 0.901
339
340 ----------------------------------------------------------------------
341 What is new in version 0.9:
342 ----------------------------------------------------------------------
343 1. There is a new internal quantity called mpversion that reports the 
344    current metapost version, and the version information is also written 
345    to the PostScript file.   
346 2. The LaTeX sources of the mpman, mpintro, and mpgraph manuals have
347    become part of the distribution package.
348 3. TEX.mp now has TeX format support through a pair of macros called 
349    TEXPRE() and TEXPOST(). This llows you to process the contents of 
350    the TEX() macro with, for example, LaTeX (instead of plain TeX).
351    An example is given in the manual.
352 4. metapost now writes a %%HiReSBoundingBox comment
353 5. The EPS output no longer contains actual spaces within PostScript 
354    strings as for example output by label("a space"), but their
355    octal escape (\040) instead.
356 6. The EPS output now also has a %%BeginProlog DSC comment
357    as well as %%EndProlog
358 7. The comments in the Web source have been changed to point out
359    that on modern machines, acquiring the random seed has actually
360    become a system-dependant operation (a granularity of whole seconds 
361    is not small enough on new machines).
362 8. The 'newer' command now accepts more than 2 arguments, testing
363    each of the files in turn.
364
365 ----------------------------------------------------------------------
366 Bugfixes in version 0.9:
367 ----------------------------------------------------------------------
368 1. Documentation improvements: all known errata and typos have been 
369    removed, better explanations of e.g. dash patterns and dotlabel have
370    been provided, and a number of omissions has been rectified.
371 2. The BoundingBox was not computed correctly when a filldraw command
372    with a noticeable pen size was used at the edge of the picture.
373 3. Paths starting with degenerate constructions like (0,0)--(0,0)--(0,0) 
374    could overflow memory.
375 4. The PostScript output could accidentally contain 8-bit characters 
376    within PostScript strings in previous versions because a test was
377    shared between terminal printing and PostScript printing.
378 5. A bug has been found in the assignment of serial numbers to independant
379    variables in metafont 2.71828. This bug affected MP as well, and the
380    same patch has been applied.
381 6. The turningnumber was sometimes wrong in unexpected ways. The new
382    implementation is still sometimes wrong (when there are strange path
383    segments involved), but in a much more predictable way: the new code
384    always draws straight lines between the actual points, and calculates 
385    the turningnumber based on that path instead of the actual path. The
386    effect is that cusps and loops within segments are now completely 
387    ignored. A more thorough fix of turningnumber is planned for the 
388    next release.
389 7. There was an 'off by one' error in dvitomp wrt. the interpretation
390    of virtual fonts.
391 8. mpto uses a new TeX macro for the generation of labels, making it
392    more robust wrt. strange user code within the actual label text.
393 9. A missing colon in boxes.mp has been added
394 10. A missing save in mfplain.mp has been added
395 11. The generisize in boxes.mp has been fixed so that it now accepts [[ as 
396     a valid variable name
397
398 ----------------------------------------------------------------------
399 Version 0.641:
400 ----------------------------------------------------------------------
401 The only change was to fix the code for transforming a picture that
402 contains a filldraw.  Version 0.64 introduced a bug that caused an
403 inappropriate memory reference in that case.
404
405 ----------------------------------------------------------------------
406 What is new in Version 0.64:
407 ----------------------------------------------------------------------
408 1. A new primitive command  closefrom filename  closes a readfrom file
409    so that subsequent calls to readfrom with that file name will go back
410    to the beginning of the file.
411 2. The ^^ notation for unprintable characters is now used only when printing
412    on the terminal or the log file.  Internal computations and the write
413    command are all 8-bit clean.  (This is partly due to material in mp.ch
414    that changes the initialization of the xchr array.  Without these
415    system-dependent changes, the write command would map all non-ascii
416    characters to spaces.)
417 3. Arithmetic overflow during a comparison such as  20000>-20000 is now
418    ignored.  This avoids extraneous error message when using the graph.mp
419    macro package.
420 4. Transformations with negative determinants now work properly on pictures
421    drawn with polygonal pens.
422 5. When the readfrom operator is applied to a file that does not exist,
423    an attempt to close a non-open file could cause problems in some
424    implementations.  This has now been fixed.
425 6. Using  draw picture_expression withpen  where the picture_expression
426    was a scaled picture containing dashed lines, the dash lengths would
427    change.  This bug has been fixed.
428 7. The dashpart operator could return an invalid picture or a picture that
429    is not properly scaled.  This has also been fixed.
430 8. The |char_base| variable could become negative when using fonts that
431    do not start at character 0.  There was also bad Pascal code in function
432    b_open_in.  This has all been fixed.
433 9. Dvitomp has been fixed to avoid a font data structure problem that
434    could cause some characters to come out in the wrong font when you
435    mix virtual and non-virtual fonts.
436 10. Dvitomp now correctly prints font names when there is a checksum
437    mismatch, and it aborts instead of just printing an error if a tfm
438    or vf file is bad.
439 11. In plain.mp, the drawdblarrow macro now uses filldraw so that it works
440    better with large pen sizes.
441
442 ----------------------------------------------------------------------
443 Version 0.632:
444 ----------------------------------------------------------------------
445 When prologues is negative, the output files use full precision for
446 coordinates in "%%BoundingBox" comments.  In btex..etex blocks,
447 "number too large" and "invalid character" errors are suppressed.
448 The result of btex..etex is now guaranteed to be in a setbounds path
449 so that a for...within iteration will always treat it as a unit.
450
451 There are also some obscure bug fixes involving string compaction when
452 scanning a file name or when mp is compiled in debug mode.  Some possible
453 identifier name conflicts and range check errors have also been fixed.
454
455
456 ----------------------------------------------------------------------
457 Version 0.631:
458 ----------------------------------------------------------------------
459 This version fixes an obscure bug that could cause certain perfectly valid
460 strings to be printed as "???" or " NONEXISTENT".  It also includes a minor
461 fix to the PATHEXPAND code that prevents running out of file descriptors.
462
463
464 ----------------------------------------------------------------------
465 What is new in Version 0.63:
466 ----------------------------------------------------------------------
467 1. Backslashes in the PostScript output are rendered correctly.  They used
468    to come out as (\) instead of (\\).
469 2. Recycling an independent variable should no longer cause spurious overflows.
470    (This bug was recently found in mf.web.)
471 3. Pythagorean addition should now be faster in certain trivial cases.
472 4. Rotating text by arbitrary angles should no longer cause bad PostScript
473    output.  The problem was that arguments to "fshow" could be inaccurate.
474 5. Obscure bugs inherited from mf.web are now fixed.  These involve
475    balancing parentheses showing on the terminal, reporting the correct
476    line number in case of buffer overflow, and removing spurious reference
477    counts that could effect end-of-job statistics.
478 6. Fonts with ec=255 should no longer cause mp's PostScript output routines
479    to go into a loop.
480 7. When mp's string mechanism was heavily used, file names could occaisonally
481    be printed on the terminal and log file as "(?)".  This has been fixed.
482 8. Setting PATHEXPAND in site.h causes mp, dvitomp and dmp to understand "//"
483    in path variables as "search multiple levels of subdirectories".  This is
484    for compatibility with recent versions of the Web2c TeX distribution.
485 9. A typo in mpware/makempx and mpware/troffmpx has been fixed.  Previous
486    versions of these scripts would not run on some systems.
487 10. Data files *.d have been added to the doc directory.  These are used by
488    doc/mpgraph.mp which generates figures for "Drawing Graphs with MetaPost".
489 11. Typos in mpintro.tex and mp.web's TeX material have been fixed.
490 12. Files examples.mp, mpintro.tex and mpintro.bib have moved from mplib to
491     the doc directory.
492 13. The author's email address now appears in the README file.
493
494
495 ----------------------------------------------------------------------
496 Macros added to the mplib directory between Versions 0.50 and 0.62:
497 ----------------------------------------------------------------------
498 rboxes.mp is a slightly more general version of boxes.mp
499 TEX.mp provides a way of running tex dynamically instead of as a pre-processor
500 graph.mp, format.mp, and sarith.mp are documented in doc/mpgraph.ps
501 (This is the same as ftp://netlib.att.com/netlib/att/cs/cstr/164.ps.Z)
502 marith.mp, string.mp, texnum.mp, and troffnum.mp are low-level packages
503 used by graph.mp, format.mp, and sarith.mp.
504
505
506 ----------------------------------------------------------------------
507 Other minor bug fixes subsequent to Version 0.60
508 ----------------------------------------------------------------------
509 1. plain.mp has been fixed so that the x**y works properly when x<0 and y is
510    a negative integer.
511 2. Programs mptotex.c and mptotr.c which extract btex..etex material have been
512    fixed so they work properly with input files that do not end with a newline
513    character.
514 3. Program dmp.c which handles troff output from btex..etex blocks has been
515    modified to avoid outputting any non-ASCII characters that the C function
516    isprint() accepts.
517 4. Program dmp.c no longer gets troff graphics specials confused with text.
518    This seldom matters because btex..etex blocks are unlikely to contain
519    troff graphics.
520 5. Pictures containing clipped subpictures could come out with some colors
521    in the subpicture wrong.
522 6. Colors in PostSript output were not being restricted to the standard 0..1
523    range.
524 7. Transforming a path or a pen should no longer generate extraneous overflow
525    errors in certain unusual situations.
526 8. Drawing with a degenerate 2-vertex polygonal pen such as penrazor should
527    no longer cause an infinite loop in certain unusual situations.
528 9. There were some bugs in the mfplain macros.  (These macros are designed
529    to similate plain METAFONT.)  The drawing and filling macros now apply
530    currenttransform to the path but not the pen rather than vice versa.
531    The predefined modes now set o_correction to 1.0.
532 10. For security reasons, mp can no longer read or write files whose names
533    begin with '.'
534
535
536 ----------------------------------------------------------------------
537 Changes to the MetaPost language between Version 0.50 and Version 0.60
538 ----------------------------------------------------------------------
539 1. New operator `readfrom <filename>' and new command
540    `write <string expression> to <filename>' do file I/O.  Plain defines
541    a special string EOF that readfrom returns to indicate end-of-file
542    and write..to understands as well.
543 2. New iteration type `for p within <picture expression>: <loop text> endfor'
544    iterates through the interior components of the picture.  An `interior
545    component' is a single pen stroke, filled outline, or piece of typeset
546    text.  A part of the picture enclosed in a clipping or setbounds path
547    also counts as an interior component.  If the whole picture is enclosed
548    in such a path, the for..within iteration looks inside.  Note that a
549    picture generated by btex..etex is enclosed in a setbounds path.
550 3. The length operator now applies to pictures.  It returns the number of
551    interior components.
552 4. New boolean operators stroked, filled, textual, clipped, bounded test
553    the first component of a picture.  A picture enclosed in a clipping or
554    setbounds path counts as a single component.
555 5. Part extraction operators now work for pictures.  Standard operators
556    redpart, greenpart, bluepart apply to the color of the first component
557    and xpart, ypart, xxpart, xypart, yxpart, yypart extract parts of the
558    tranformation that has been applied to a text component.  If `textual p'
559    is false, the transform components are all zero; if `clipped p' or
560    `bounded p' is true, the color parts are all zero.  Additional operators
561    fontpart, textpart, pathpart, penpart, dashpart extract other information
562    from the first component of a picture.  They all return null values when
563    the first component has the wrong type:  fontpart and textpart return
564    null strings; pathpart returns the path (0,0); penpart returns nullpen;
565    and dashpart returns nullpicture.
566 6. The construction `dashed nullpicture' is now a no-op.  It used to be
567    an error.
568 7. The clip and setbounds statements used to ignore operations on empty
569    pictures.  Now they do not.
570 8. Structuring comments in the PostScript output are now based on EPSF-3.0
571    as described in the 2nd Edition of the PostScript Reference Manual.
572    When prologues is 0, some structuring comments are included but the
573    output is not flagged a `conforming document'.  Previous versions of
574    MetaPost behaved similarly but used slightly different structuring
575    comments.
576 9. When warningcheck is 0, numeric tokens and results from the hex and
577    oct operators can be as large as 32767.99998.  The old limit of about
578    4096 applies only when warningcheck is positive.
579 10. Various optimizations should make the output a little more compact.
580 11. For PostScript engines that obey the scan-conversion rules documented
581    in the 2nd edition PostScript Language Reference Manual, hrules and
582    vrules in btex..etex blocks should now come out to exactly the right
583    number of pixels.  The change affects all pen strokes drawn in MetaPost
584    It is implemented via PostScripts dtransform and idtransform operators.
585 12. A bug involving setbounds and MetaPost's corner operators has been fixed.
586 13. Degenerate elliptical pens no longer cause PostScript to divide by zero.
587 14. Fixed a very obscure bug involving readstring and end-of-file.
588 15. String compaction statistics are now printed correctly when the job
589    terminates with tracingstats positive.
590
591
592
593 ----------------------------------------------------------------------
594 Changes to the source files between Version 0.50 and Version 0.60
595 ----------------------------------------------------------------------
596
597 CHANGES to ./README.MP
598 The installation instructions should now be clearer.  They also explain
599 how to cope with verious versions of WEB2C.
600
601 CHANGES to ./site.h
602 I removed unused entries and clarified instructions in commentary material.
603 Confusing comments about possibly merging it with the WEB2C version of site.h
604 were removed--I think such merging is a bad idea.
605
606 CHANGES TO ./Makefile, mp/Makefile, mpware/Makefile:
607 Improved default settings, simplified the `install' recipe,
608 fixed a few missing depencies, portability problems, etc.
609
610 RENAMED FILES
611    mp/mp.defines, mpware/mpware.defines, mpware/dvitompext.c
612 TO mp/mp.def,     mpware/mpware.def,     mpware/dvimpext.c
613 (The names also changed in the Makefiles and convert scripts)
614
615 CHANGES TO mp/mp.web, mp/mp.ch, mp/mp.def, mp/mpext.c:
616 Lots of new features were added as noted above.  The only new system-
617 dependencies are for `readfrom' and `write...to'.
618 The change file now increases max_read_files; it doesn't bother with
619 max_write_files, but perhaps it should.  There is a new change entitled
620 "Path selector for..readfrom file".  From the web2C sources I borrowed
621 a change "`logname' is declared in <unistd.h> in some systems".  I also
622 added a PASCAL-like eof() routine to mpext, removed a change entitled
623 "avoid using eof() in read_psname_table" and added a new change
624 "[48.1199] `eof'...[in read_mem_file]".
625
626 Reorganization of math routines in the mp directory:
627 I moved the floating-point math routines from mpext.c to mpath.c.  A
628 C-language version of the standard math routines was moved from mpmath.c
629 to a new file pmath.c for use in mathtest only.  This required chages to
630 mathtest.c and time.c (also used only for mathtest).  The point of all
631 this is that there is now just one copy of the floating-point math routines
632 and it is used for mathtest and (optionally) for mp itself.
633
634 Routines in doc and mp/trapdir:
635 The output was updated to Version 0.60.  Another test file mptrap.mp
636 tests new features.  There have also been minor updates to the manual,
637 although the new features for Version 0.60 are not included yet.
638
639 CHANGES to macros in mplib:
640 A minor change to boxes.mp should make it more robust.  Changed default
641 setting of tracinglostchars in mfplain.mp and plain.mp.  Added a string
642 constant EOF to plain.mp for use with readfrom and write..to.
643 Changed mproof.tex to make it more portable as suggested by Knuth.
644
645 CHANGES to mpware/dvitomp.web, mpware/dvitomp.ch:
646 The web file was changed to output rules as horizontal or vertical
647 penstrokes with butt endcaps.  This also affected dvitomp.ch.  Also in
648 dvitomp.ch, put terminal output on stdout instead of stderr and require
649 the output file to be given on the command line.
650
651 CHANGES to mpware/makempx, mpware/troffmpx:
652 Added comments explaining what path names need fixing.  Portability improvements
653 and dvitomp's output change affect makempx only.
654
655 CHANGES to mpware/mptotex.c mpware/mptotr.c mpware/testex.err mpware/testex.mp:
656 Ignore an initial newline in the TeX (or troff) material to avoid generating
657 a blank line in the output file.  The test file now covers this case.
658
659 CHANGE to mpware/newer.c
660 Minor changes to make it compile in strict ANSI/POSIX environments.