texlive[70012] Build/source/texk/web2c/mplibdir: sync MetaPost with

commits+lscarso at tug.org commits+lscarso at tug.org
Tue Feb 20 18:51:29 CET 2024


Revision: 70012
          https://tug.org/svn/texlive?view=revision&revision=70012
Author:   lscarso
Date:     2024-02-20 18:51:29 +0100 (Tue, 20 Feb 2024)
Log Message:
-----------
sync MetaPost with upstream.

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/mplibdir/ChangeLog

Added Paths:
-----------
    trunk/Build/source/texk/web2c/mplibdir/NEWS

Modified: trunk/Build/source/texk/web2c/mplibdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/mplibdir/ChangeLog	2024-02-20 13:28:55 UTC (rev 70011)
+++ trunk/Build/source/texk/web2c/mplibdir/ChangeLog	2024-02-20 17:51:29 UTC (rev 70012)
@@ -1,65 +1,64 @@
-2024-02-01  Luigi Scarso  <luigi.scarso at gmail.com>
+2024-02-16  Luigi Scarso <luigi.scarso at gmail.com>
+	*  Updated manual. MetaPost 2.1
 
-	* final integration and commit of mpfi into (u)(p)mpost.
-	* am/libmplib.am,
-	* am/mplib.am: link with mpfi.
-	* mplibdir/mp.w: support mpfi; version 2.10.
-	* mplibdir/mpmathinterval.w: new file.
-	* mplibdir/mpost.w: new option --numbersystem=interval.
+2024-02-12  Luigi Scarso <luigi.scarso at gmail.com>
+	*  Fixed "warning: strncat specified bound 1 equals source length [-Wstringop-overflow=]" in mpxout.w
+
+2024-01-28  Luigi Scarso <luigi.scarso at gmail.com>
+  	*  Merge branch mpfi.
 	
 2024-01-26 Luigi Scarso <luigi.scarso at gmail.com>
-	* Added  source/libs/mpfi/TLpatches and source/libs/mpfi/m4
+	* Interval arithmetic: Added  source/libs/mpfi/TLpatches and source/libs/mpfi/m4
 
 2024-01-03 Luigi Scarso <luigi.scarso at gmail.com>
-	* Fixed "++" and "+-+" by replacing a*a with sqr(a). Better error message for square root of negative numbers.
+	* Interval arithmetic: Fixed "++" and "+-+" by replacing a*a with sqr(a). Better error message for square root of negative numbers.
 
 2024-01-02 Luigi Scarso <luigi.scarso at gmail.com>
-	*  fixed negate for mpfi.
+	*  Interval arithmetic: fixed negate for mpfi.
 
 2023-12-31 Luigi Scarso <luigi.scarso at gmail.com>
-	* fixed check interval for square root
+	* Interval arithmetic: fixed check interval for square root
 
 2023-12-30 Luigi Scarso <luigi.scarso at gmail.com>
-	* Fixed allocation of the buffer for the file extension.
-	* Fixed position of verbatim_written in mpxout.w
+	* Interval arithmetic: Fixed allocation of the buffer for the file extension.
+	* Interval arithmetic: Fixed position of verbatim_written in mpxout.w
 
-2023-09-17  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+2023-09-17  Luigi Scarso <luigi.scarso at gmail.com>
+ 	*  Interval arithmetic: mp.w: Fixed a buffer overflow.
+	*  Interval arithmetic: decContext.{c,h}, decNumber.{c,h}, decNumberLocal.h: Convert newline from CRLF to LF  (thanks to TANAKA Takuji).
 
-	* mptraptest.test:
-	Make easier to test on Windows.
+2023-01-19 Luigi Scarso <luigi.scarso at gmail.com>
+        * MetaPost: svg->dx, svg->dy are now double (better precision) .
 
-2023-09-16  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+2022-11-06  Luigi Scarso <luigi.scarso at gmail.com>
+ 	*  Fixed the value of the clip-path attribute for the svg output.
 
-	* mp.w: Fixed a buffer overflow.
+	
+2022-09-20  Luigi Scarso <luigi.scarso at gmail.com>
+ 	* Interval arithmetic: code for remainder (work in progress).
 
-2023-09-10  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+	
+2022-09-13 Luigi Scarso <luigi.scarso at gmail.com>
+	* Interval arithmetic: new primitives interval_get_left_endpoint,
+	 interval_get_right_endpoint, interval_set.
 
-	* decContext.{c,h}, decNumber.{c,h}, decNumberLocal.h:
-	Convert newline from CRLF to LF.
+2022-09-01 Luigi Scarso <luigi.scarso at gmail.com>
+	* Interval arithmetic: mpost compiles without errors.
 
-2023-08-20  TANAKA Takuji  <ttk at t-lab.opal.ne.jp>
+2022-08-25  Luigi Scarso <luigi.scarso at gmail.com>
+  	*  Interval arithmetic: support for interval arithmetic. Initial commit 
 
-	* {dvitomp,mptraptest}.test:
-	Make easier to test on Windows.
-
-2023-03-09  Karl Berry  <karl at tug.org>
-	* TL'23 release.
-
-2023-01-19 Luigi Scarso <luigi.scarso at gmail.com>
-    * MetaPost: svg->dx, svg->dy are now double (better precision) .
-
 2022-07-31 Luigi Scarso <luigi.scarso at gmail.com>
-    * MetaPost: Working on the file extension (work in progress).
+	* MetaPost: Working on the file extension (work in progress).
 
 2022-05-28  Akira Kakuto  <kakuto at jcom.zaq.ne.jp>
-
         * mp.w: Typo.
 
 2022-05-23  Luigi Scarso <luigi.scarso at gmail.com>
-    * Fixed mp_begin_iteration (H.Hagen)
+	* Fixed mp_begin_iteration (H.Hagen)
 
 2022-05-15  Luigi Scarso <luigi.scarso at gmail.com>
-    * Fixed a memory leak in mplib (H.Hagen)
+	* Fixed a memory leak in mplib (H.Hagen)
 
 2022-03-21  Karl Berry  <karl at tug.org>
 	* TL'22 release.
@@ -68,7 +67,6 @@
 	* mp.w: MetaPost 2.02 (twice).
 
 2022-01-10  Karl Berry  <karl at freefriends.org>
-
 	* am/libmplib.am,
 	* am/mplib.am: do not silence tangle-sh.
 

Added: trunk/Build/source/texk/web2c/mplibdir/NEWS
===================================================================
--- trunk/Build/source/texk/web2c/mplibdir/NEWS	                        (rev 0)
+++ trunk/Build/source/texk/web2c/mplibdir/NEWS	2024-02-20 17:51:29 UTC (rev 70012)
@@ -0,0 +1,1630 @@
+
+This file is public domain.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 2.10:
+----------------------------------------------------------------------
+* New interval number system based on MPFI. The implementation is somewhat experimental,
+  given the "unusual" nature of interval arithmetic. 
+  The internal functions are almost verbatim copies of the MPFR-based binary system
+  (on which MPFI is based).
+* Several bugs fixes.
+
+
+----------------------------------------------------------------------
+What is new in MetaPost version 2.01:
+----------------------------------------------------------------------
+* It's a version needed to mark the patch mpx_copy_mpto.
+
+
+----------------------------------------------------------------------
+What is new in MetaPost version 2.0rc2:
+----------------------------------------------------------------------
+
+* Small cleanup of the code
+* Bump to version 2.0rc2: the current version is 2.00
+* Added the envelope primitives to mpman
+
+
+----------------------------------------------------------------------
+What is new in MetaPost version 2.0rc1:
+----------------------------------------------------------------------
+
+* Mainly fixes for wrong path directions, minor issues on tfm and png
+  backend. The version says "2.000" to keep the version as a valid
+  number.
+
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.9991:
+----------------------------------------------------------------------
+
+* Some issues fixed, but really this is in preparation of metapost 2.0.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.999:
+----------------------------------------------------------------------
+
+* The numbersystem 'binary' is now operational.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.902:
+----------------------------------------------------------------------
+
+* Fixed a crash in 'decimal' mode during choose_scale calculations.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.901:
+----------------------------------------------------------------------
+
+* Fixed a bug in 'decimal' mode that affected (among other things)
+  the directionpoint and bbox calculations.
+
+* Fixed a bug in 'decimal' mode calculation of sine / cosine that
+  affected the precision of the answer in situations where 
+  'numberprecision' was less than 34.
+
+* Updated the number parsing in 'decimal' mode to detect 'too precise'
+  input and optionally generate an error in that case (depends on
+  'warningcheck')
+
+* Fixed a bug in the svg output where it could crash in 'decimal' mode.
+
+* Fixed a bug in the png output where it could get confused if there
+  was more than one text label
+
+* Fixed a bug in the png output for stroked paths
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.900:
+----------------------------------------------------------------------
+
+* Updated the embedded libraries, and a few build system fixes.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.890:
+----------------------------------------------------------------------
+
+* The numbersystem 'decimal' is now operational.
+
+* New internal: 'numberprecision', for use with 'the 'decimal' number
+  system. The (numeric) value expresses the desired calculation precision, 
+  in decimal places.
+
+  system  default   min    max
+  ============================
+  scaled       10    10     10  (assignment effectively ignored)
+  double       16    16     16  (assignment effectively ignored)
+  decimal      34     1   1000 
+
+* Bug fix: in the 'double' numbersystem, 
+
+    if X = scantokens decimal X:
+
+  will now always be true, because the 'decimal' operator now has 
+  the same resolution as the scanning routine (which is two decimal
+  places more than in the previous release).
+
+* Fixed a bug in the handling of the / operator (wrong precendence).
+ 
+* Fixed a bug in arctime (did not handle negative values currectly).
+
+* Fixed TFM generation issues (various scale-related errors).
+
+* Fixed application crashes when there was no TEXMF tree to be found
+  anywhere.
+
+* It is no longer possible to assign to the 'numbersystem' internal.
+
+* There is a new definition of 'drawdot' in plain.mp.
+
+* PNG output did not output anything for draws of a single point.
+
+* Metapost now prints the full name of any preloaded files.
+
+* Fixed a bug in the handling of labels with embedded ascii zero(es).
+
+* Fixed handling of unknown command-line options, the reporting
+  on used libraries in the --version output, and the banner line.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.803:
+----------------------------------------------------------------------
+
+* Fixed a bug in the path tension handling that sometimes caused 
+  distorted output.
+
+* A number of small alterations to the build system making it easier
+  to integrate metapost with W32TEX.
+
+* Fix the internal rounding functions in --numbersystem=double so that
+  they round exactly like in --numbersystem=scaled mode.
+
+* From Elie Roux: a fix to graph.mp to prevent log-scaled graphs with 
+  large ranges from causing the "Value is too large" error.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.802:
+----------------------------------------------------------------------
+
+* Fixed a bug causing overly large characters in  SVG output mode when
+  prologues != 3.
+
+* Removed a crash during free-ing of TFM metric data at the end of the 
+  run.
+
+* Fixed a problem with colors in SVG output mode.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.801:
+----------------------------------------------------------------------
+
+* fixed an off-by-one error in the SVG output that prevented the last 
+  font's glyphs from actually being output to the svg file under
+  prologues:=3;
+
+* fixed a bug in bbox calculations in that caused the max y to be set
+  based on the maximum x coordinate internal value instead of the 
+  maximum y coordinate.
+
+* fixed a bug where metapost incorrectly produced a 'degenerate spec'
+  error.
+
+* build fixes for various platforms imported from TeXLive 2013, as
+  well as the latest kpathsea development etc.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.800:
+----------------------------------------------------------------------
+
+* A new string valued internal "outputformatoptions" is used by PNG
+  output mode to control the png file format. In the future, this
+  internal may also be used for options to the other output formats.
+
+  The syntax for "outputformatoptions" is a space-separated list of
+  settings. Individual settings are keyword+'='+value. The only
+  currently allowed ones are:
+    format=[rgba|rgb|graya|gray]
+    antialias=[none|fast|good|best]
+  No spaces are allowed on the left, nor on the right, of the equals 
+  sign inside a setting.
+
+  The assignment that would match the compiled-in default setup is:  
+    outputformatoptions := "format=rgba antialias=fast";
+  however, "outputformatoptions" is initially the empty string.
+
+  Some notes on the (new) PNG output formats:
+  - The 'rgb' and 'gray' subformats have a white background. The 
+    'rgba' and 'graya' subformats have a transparent background.
+  - Bitdepth is always 8.
+  - In all cases, the image is initially created in 8-bit RGB
+    mode. For 'gray' and 'graya', the RGB colors are reduced just 
+    before the actual PNG file is written, using a standard rule:
+      g = 0.2126*r + 0.7152*g + 0.0722*b
+  - CMYK colors are always converted to RGB during generation of 
+    the output image using:
+      r = 1 - (c+k>1 ? 1 : c+k);
+      g = 1 - (m+k>1 ? 1 : m+k);
+      b = 1 - (y+k>1 ? 1 : y+k);
+   - If you care about color conversions, you should be doing a 
+     "within <pic>" loop inside "extra_endfig". The built-in
+     conversions are more of a fallback.
+
+* A new string-valued internal "outputfilename", which is set by 
+  "shipout" to the value of the just created file name. Until the
+  first shipout has occurred, it is the empty string.
+
+
+* Fixed a number of bugs where Metapost loaded the default font map
+  file multiple times, resulting in lots of "fontmap entry for 
+  `<fontname>' already exists, duplicates ignored" warnings.
+
+* The "glyph <> of <>" operation could crash on fonts with empty 
+  subpaths in the charstrings.
+
+* Fixed a bug in the postscript encoding reader that caused a buffer
+  overflow (fatal error) for encoding files that do not end with a 
+  newline.
+
+* Sped up png creation a bit by using smarter libpng options.
+
+* In the 'double' numbersystem, lots of precision was lost due to a bad
+  internal conversion of fractions to scaled values. This affected the 
+  "rotated by", "directiontime", "sind" and "cosd" primitives, as well 
+  as internal dependency calculations.
+
+* In the 'double' numbersystem, an internal rounding error caused 
+  "directiontime" to return bad results for requests near zero.
+
+* There was a big scaling miscalculation while outputting glyphs in SVG
+  mode with "prologues:=3". The output labels were so big that they
+  fell completely outside of the generated image.
+
+* A problem resulting in 'This can't happen (endinput)' caused by a 
+  missing "end" at the end of the run was fixed.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.790:
+----------------------------------------------------------------------
+
+* Lots of speedups.
+
+* Fixed bug in division expressions that started with a literal number.
+
+* A few problems with bad deallocations were solved.
+
+* A bug where after saving and redefinition of primitives, they later
+  were restored to 'undefined' instead of to their primitive meaning.
+
+* The "double" literal number parser now only accepts scientific 
+  notation if the character following 'E' or 'e' is '+', '-', or 
+  a digit.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.780:
+----------------------------------------------------------------------
+
+* The turningnumber calculation in 1.770 was bugged.
+
+* The picture export in 1.770 forgot to add trailing zeroes to the
+  log and term output channel resulting in rubbish output.
+
+* The arguments of the PS "dtransform" operator have been fixed
+  (was wrong since 1.750).
+
+* The warning limit in numbersystem=double mode is now exactly 2**52.
+
+* A bunch of obvious memory leaks fixed. Not all yet, but now the 
+  MPlib seems to be usable even with many graphics.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.770:
+----------------------------------------------------------------------
+
+This is an alpha release for testing & debugging only!
+
+* The command line switch --numbersystem replaces --math.
+
+* Two new internals: numbersystem (string, read-only, either "scaled"
+  or "double" at the moment) and numberprecision (numeric, currently 
+  a no-op).
+
+* There is a new bitmap backend:
+
+    outputformat:="png";
+
+  This backend uses cairo and libpng to generate PNG bitmap data.
+  The created PNG used RGB + Alpha, with anti-aliasing, at 72dpi, 
+  and with a transparent background.
+
+* Associated with this, there are new internals "hppp" and "vppp",
+  that are used by the bitmap backend to decide on the scale of
+  the generated bitmap. Default value for both new internals is
+  "1.0", i.e. one pixel per Metapost point. 
+
+  The internal names come from metafont.
+
+* There are two new primitives for use with picture item objects:
+
+     prescriptpart
+     postscriptpart 
+
+* The C API has been extended to allow path control point resolution
+   without going through the Metapost input language, see
+   manual/mplibapi.tex for details.
+
+* The C API has been extended with a "math_mode" switch in the options
+  structure, and the memory size options as well as "ini_mode" have
+  been removed (the MPlib instance now always starts up in inimp mode)
+
+* The code for picture shipout now uses "double" for all floating point
+  values. This can give small differences in the actual output files in
+  traditional mode due to the required scaled -> double conversion, but
+  was necessary to support the new numerical backend code.
+
+* The Lua API internals have been updated to reflect the C API changes.
+
+* All known crashes in earlier versions of Metapost have been fixed. 
+
+Known issues:
+
+* The manual is not up-to-date yet on the metapost input language
+  changes.
+
+* There are various memory leaks. 
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.750:
+----------------------------------------------------------------------
+
+This is an alpha release for testing & debugging only!
+
+* mpost now accepts --math=double as an argument. This switches the
+  internal arithmetic functions from using a scaled 32-bit data type
+  to 64-bit floating point.
+
+* With --math=double, the input scanner has been changed to allow
+    a := 1.0E20 
+  as valid input format for a numerical value
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.504:
+----------------------------------------------------------------------
+
+* Small build system tweaks from TeXLive 2012.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.503:
+----------------------------------------------------------------------
+
+* String comparisons have been fixed, these were broken in previous 
+  1.50x versions.
+
+* verbatimtex ... etex processing had a horrible bug that is now
+  fixed.
+
+* A fix has been applied for a bug that made redeclared variable 
+  subscript tags disappear.
+
+* The behavior of the %{<internal>} escape sequence in 'outputtemplate'
+  changed (but not that of the single-letter shortcuts).  Internal
+  variables within %{...} are neither rounded nor zero-padded.
+
+* A very long list of improvements to the manual.
+
+* MetaPost now adheres to the openin_any / openout_any settings in 
+  texmf.cnf
+
+* The 'prologues:=3 output' with embedded labels was unreliable, 
+  especially when the resulting eps was included into a TeX document 
+  via dvips.
+
+* 'newinternal numeric' has been fixed, it generated an error in
+  metapost 1.211 and earlier 1.50x versions.
+ 
+* Label regeneration sometimes failed to run when the file time stamps
+  were close together.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.502:
+----------------------------------------------------------------------
+
+* New build system and kpathsea imported from TeX Live.
+
+* Various bugfixes.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.501:
+----------------------------------------------------------------------
+
+* The maximum number of variable instances has increased from approx.
+  33 million (2^25-1) to 2 billion (2^31-1).
+
+* New build system and kpathsea imported from TeX Live.
+
+* Many small bugfixes to 1.500.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.500:
+----------------------------------------------------------------------
+
+* Actual memory dump files do not exist any more. --mem=<MEM> and
+  all other methods of supplying a MEM file are now interpreted 
+  somewhat like this pseudo-metapost-code:
+
+    begingroup;
+    let dump = end;
+    input MEM[.mp];
+    endgroup;
+
+  this process is supposed to be transparent besides the facto that 
+  there is some extra terminal output and logging.
+
+* All memory is now allocated and freed dynamically. There are only
+  two remaining overflow errors(1):
+
+  "expansion depth" : this is a guard against infinite recursion,
+                      the value is 10000.
+  "sizes per font"  : this is maxed out for data-structure reasons, 
+                      the value is 32767.
+
+  from texmf.cnf, now only the "error_line", "half_error_line" and
+  "print_line settings" are used.
+
+  (1) but now you can reach the operating system limits, of course.
+
+* As this is an alpha release containing lots and lots of new code,
+  MetaPost starts up with the internal equivalent of 'loggingall;' 
+  in effect. This results in log files that can help in debugging.
+
+* Expect bugs and (minor) memory leaks.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.212:
+----------------------------------------------------------------------
+
+* Small build system tweaks from TeXLive 2011.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.211:
+----------------------------------------------------------------------
+
+* In previous 1.20X versions, the 'glyph infont' operator did not handle
+  fonts with seac (old-style composite characters) properly.
+
+* Incorporated the latest versions of kpathsea and the build system
+  from TeXLive.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.210:
+----------------------------------------------------------------------
+
+* In previous 1.20X versions, btex ... etex handling forgot to take 
+  the passed directory location of input-ed files into account.
+
+* verbatimtex ... etex is now copied as is. Whitespace stripping
+  and appending of % no longer happen. 
+
+* The mpost executable now always strips exactly one extension from 
+  the jobname (unless explicit --jobname was given)
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.209:
+----------------------------------------------------------------------
+
+* Previous 1.20X mem files were architecture-dependent.
+
+* Metapost now uses getopt once again, which makes the commandline
+  handling compatible with pre-1.20X versions. However, the syntax
+  -sprologues=1 is now no longer supported (the space between -s
+  prologues is now mandatory).
+
+* On some systems, metapost would crash inside the function that prints
+  the 'fatal error' message.
+
+* The 'glyph infont' operator would sometimes cause crashes, and in 
+  other cases it generated bad output.
+
+* There was a space missing in the generated output when mpprocset
+  was set. This was still legal PostScript, but it confused mptopdf.
+
+* In previous 1.20X versions, the font map file was read for each 
+  figure that contained a label, resulting in lots of harmless
+  but scary warnings being reported.
+
+* The --debug switch is now documented in the command-line help.
+
+* The help text now mentions the metapost version.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.208:
+----------------------------------------------------------------------
+
+* Previous versions of MetaPost 1.20x were overeager to remove file
+  extensions from the end of the jobname.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.207:
+----------------------------------------------------------------------
+
+* With the -file-line-error commandline option, MetaPost 1.20x always
+  reported the name of the most recently 'input' file instead of the
+  name of the actual current file.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.206:
+----------------------------------------------------------------------
+
+Bug fixes:
+
+* Many of the commands in the MP language cause strings in the string
+  pool to be printed to new strings that are also built up in the 
+  string pool. This could cause crashes when the new string wouldn't 
+  fit in the memory allocated.
+
+* Failure to initialize the jobname in the MP_options struct could 
+  cause crashes in library mode.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.205:
+----------------------------------------------------------------------
+
+Bug fixes:
+
+* Metapost did not handle well files with extensions other than .mp.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.204:
+----------------------------------------------------------------------
+
+Bug fixes:
+
+* Metapost could go into an endless output loop when characters in 
+  bitmap fonts where used, because it tried to limit the %*Font output
+  line to a specific number of bytes.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.203:
+----------------------------------------------------------------------
+
+Bug fixes:
+
+* Building version 1.202 for source required X11 headers to be installed.
+
+* Another infinite recursion trap added, now for erroneous vardefs
+  with suffixes (reported by Nicola Vitacolonna).
+
+* Fix infinite loop recursion on integer overflow (reported by Nicola 
+  Vitacolonna, fix based on a hint from Dan Luecking).
+
+* In version 1.202, setting "job_name" from lua code caused a crash.
+
+* The "filename" field on the lua figure object in 1.202 was just the
+  extension, instead of the whole file name.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.202:
+----------------------------------------------------------------------
+
+Bug fixes:
+
+* Fix greypart <numeric> (always returned 0).
+
+* Make 'withcolor true' explicitly reset the color model to uninitialized.
+
+* Report which mem file can't be found, and use 'plain' instead of PLAIN 
+  in the mem search warning messages.
+
+* Fix a crash on subsetting of some Type1 fonts because of a temporary
+  buffer overrun.
+
+* Correct a crash on SVG text output when the 8th bit is set.
+
+* Fix the use (reference) of 8-bit glyphs in SVG mode when prologues:=3.
+
+* Fix the output of text strings that reference the character at index 0.
+  
+* Use ".ps" as file extension for negative charcodes (backward compatility).
+
+* Metapost sometimes printed "mp_vacuous" instead of "vacuous".
+
+* Fix rounding of negative scaled and fraction values.
+
+* Restore the error for 'arctime' out-of-bounds.
+
+* Moved the "turningnumber algorithms do not agree" message out of reach
+  (now only printed if tracingchoices>2 )
+
+* Fix a problem with dash scaling during picture copying.
+
+* TFM header bytes were written out with an offset of one.
+
+* Updated the mptrap files.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.201:
+----------------------------------------------------------------------
+
+Bug fixes:
+
+* There was a bug where sometimes the outer contour of a glyph that was
+  asked for via 'glyph X of' was missing from te output, depending on 
+  the path drawing order inside the Type1 font.
+
+* Handling of MPTEXPRE label prefix files was broken.
+
+* Font subsetting for 8-bit characters in Type1 fonts was broken.
+
+* The use of "%{outputtemplate}" inside "outputtemplate" now generates
+  an error.
+
+* The first letter of the input file name was swallowed in the log file.
+
+* There is some rudimentary support for infinite recursion trapping now,
+  to help prevent segfaults&crashes due to C call stack exhaustion.
+
+* An unlucky change in glibc made compilation fail on new GNU/Linux
+  systems due to multiple incompatible definitions of 'getline()'.
+
+* There was a bug in the handling of quoted external commands for 
+  MPXCOMMAND | MPXMAINCMD | TEX.
+
+* The main input file's opening brace and filename were not shown in 
+  the log file output.
+
+* Non-colored picture objects (clipping and setbounds paths) are now 
+  ignored when the color part is asked from within "within", for 
+  backward compatibility reasons.
+
+* The trip and trap files are now part of the distribution and the 
+  mptrap files have been updated.
+
+* The standard web2c argv[0] mem file mimicri was broken: 1.200 was 
+  always looking for "mpost.mem" even when called under another name.
+
+* The manual pages for "mpost" and "dvitomp" have been updated, and the 
+  old "mp" manual page has been removed. 
+
+* The first letter of any missing input file name was not shown in the 
+  terminal error message.
+
+* Output files are now once again written in the current directory even
+  if an explicit source directory is given. This includes the creation
+  of mpx files, but some trickery is used so that up-to-date existing 
+  mpx files from the source directory take precedence.
+
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.200:
+----------------------------------------------------------------------
+
+New features:
+
+* It is now possible to get the actual path drawing routines from a 
+  font glyph. The syntax is :
+
+    q := glyph 113 of "cmr10";
+    q := glyph "one.oldstyle" of "lmr10";
+
+  "glyph" is a primary binary operator (like "subpath") that accepts
+  a string or number and a string, and the result is a picture.
+
+  The second argument is a tfm name. This will be combined with
+  a fontmap entry to find the font's PostScript source file.
+
+  If the first argument is a string, then it should be a Charstring
+  name in the postscript font source. If the first argument is
+  an integer, it is an index into the encoding of the font, and
+  the Charstring that is mapped to that index is taken (it follows
+  that numeric values have to be integers between 0 and 255).
+
+  The returned picture can be empty (if the tfm or the pfb or the
+  encoding or the Charstring was not found), otherwise it consists
+  of a list of 'fill' objects that use the the 'grey' color model.
+  Counterclockwise paths receive the grey value matching 'white',
+  clockwise paths 'black'.
+
+* MetaPost now supports string valued internal variables. Three of 
+  these are predefined ("jobname", "outputformat", "outputtemplate"), 
+  you can add more of them via "newinternal". 
+  
+    newinternal string s;
+    s := "hello";
+  
+  The type of a new internal is either 'string' or 'numeric',
+  and defaults to numeric (this is for backward compatibility with
+  older versions of MetaPost). String internals are initialized to
+  the empty string, numeric internals are initialized to zero.
+ 
+* MetaPost now has a second backend that generates Scalable Vector
+  Graphics output. This new backend was requested by Dave Crossland, who 
+  also provided the funding to make it possible.  Dave, thank you again!
+
+  The default value of "outputformat" is "eps"; when you assign "svg" 
+  you will get SVG output.
+
+  If you use text labels with SVG, you will probably also want to set
+
+    prologues:=3;
+
+  With this setting, MetaPost will convert the font into curves
+  (of course you also need a correct font map line, just as for
+  PostScript output).
+
+  With any other value of "prologues" you will simply get the SVG
+  default text font in a system-dependant encoding. This is unlikely
+  to be what you want!
+
+  A simple example:
+
+    outputformat := "svg";
+    outputtemplate := "%j-%c.svg";
+    beginfig(1);
+    fill fullcircle scaled 100 withcolor .4red;
+    endfig;
+    end.
+
+  In the lua bindings, there is the new figure method "svg()", that 
+  gives back the SVG output string. This is subtly different from the
+  direct file output: the lua method does not prepend an XML declaration
+  (this makes embedded use of the generated XML easier).
+
+* The new internal string variable "outputtemplate" replaces
+  "filenametemplate". The big difference is that "outputtemplate"
+  is a true 'internal', so that you need a proper assignment.
+  On the positive side, this means that you can use its current 
+  value with e.g. show and message.
+
+* "outputtemplate" has a new type of replacement: internal variable
+  names. Instead of the short "%j.%c", you could write:
+
+     outputtemplate := "%{jobname}.%{charcode}" ;
+  
+  this type of replacement works for all internal variables, 
+  including those defined via "newinternal". 
+   
+* There are two new numeric internals: "hour" and "minute".
+  (these are a consequence of the outputtemplate change)
+
+* The primitive "jobname" is now a string internal instead of a 
+  special case. This implies you can assign to "jobname", but
+  such an assignment will only affect the picture output. The
+  job name for the purposes of log and mem file names is fixed
+  permanently at startup time and cannot be altered.
+
+* "mpost" can now pretend to be dvitomp. Either copy the executable
+  to the name "dvitomp", or pass the switch --dvitomp on the command
+  line. 
+
+* The command line option --halt-on-error has been reinstated.
+
+* There is a new -s<internal>=<value> command line switch that can
+  be used to setup run time values. Such assignment will be executed
+  after initialization is complete (i.e. after mem file loading) but
+  before any other code is executed.
+
+  This works for all internal variables, including one defined 
+  that may have been defined in the mem file via "newinternal". 
+
+* "tracingstats:=1;" now prints the highest and total input levels.
+
+Bug fixes:
+
+* The turningnumber calculation had a rounding error in the internal
+  arithmetic that could cause incorrect numbers to be calculated
+  (typically resulting in a 'turning numbers do not match' error).
+
+* The parsing of command line arguments with options was broken.
+
+* Reading of files with 8-bit names has been fixed.
+
+* A patch by Melissa O'Neill fixes inclusion of some special Type1
+  formats.
+
+* There was a bug where, when "prologues:=3;", the lists of the 
+  DocumentResources/DocumentSuppliedResources could appear in the eps
+  output partially uncommented.
+
+* Troff labels were completely broken in all MPlib-based versions.
+
+Other changes:
+
+* Many, many improvements to the manual and the tutorial. Sorry 
+  Stephan, I don't know enough to list them all!
+
+* The old executable build system has been replaced by the new build 
+  system from the TeXLive 2009 repository.
+
+* The MetaPost (and mplib) source code is now released under LGPL 
+  instead of GPL, and uses a derivative of PyAvl instead of GNU libavl.
+
+* The web2c 'mktexfmt' feature is enabled for the program "mpost" once 
+  again.
+
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.102:
+----------------------------------------------------------------------
+
+* Printing of 8-bit string characters has been fixed.
+
+* In previous versions, TFM files and PFB fonts would not be read
+  properly on big-endian machines (e.g. powerpc)
+
+* The MetaPost distribution now contains "A Beginner's Guide to
+  MetaPost for Creating High-Quality Graphics" by Troy Henderson
+  and Stephan Hennig. This tutorial replaces Hobby's mpintro.tex.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.101:
+----------------------------------------------------------------------
+
+This is just a bugfix release. The following bugs / problem areas in
+MetaPost 1.100 have been fixed / improved:
+
+* TFM file generation was completely broken.
+
+* The job name discovery on the commandline has been improved.
+
+* Under some (rare) conditions MetaPost forgot to create a log file.
+
+* Labels containing char0 were exported to PostScript incorrectly.
+
+* On Windows, the DVI file that is the result from the internal call
+  to TeX for btex .. etex lables was not deleted automatically.
+
+----------------------------------------------------------------------
+What is new in MetaPost version 1.100:
+----------------------------------------------------------------------
+
+CHANGES compared to the previous release, 1.005:
+
+* This version is based on MPlib, the C conversion of MetaPost.
+
+  The one user-visible change is that the btex ... etex
+  label conversion is now handled internally instead of via
+  the external "mpware" programs. These programs are therefore
+  no longer distributed.
+
+* There is a new manual, mplibapi.pdf, that describes the internal
+  interface to MPlib.
+
+* The file 'mpintro' is no longer distributed because it is
+  obsolete (it has been that way for some time).
+
+* The distribution now includes Dan Luecking's mpsproof.tex.
+
+
+CHANGES compared to the previous beta, 1.091:
+
+* The DVI -> mpx converter was bugged when virtual fonts were used.
+
+* MP could crash when a string was added to the string pool that 
+  was too large to fit.
+
+* The string pool compaction routine was called much too often, thus
+  preventing unnecessary slowdowns.
+
+* Various problems with uninitialized option settings and missing mem
+  files or pfb files have been fixed.
+
+* There was a line buffer overrun possible in the file reader.
+
+* mpost now honours --recorder and --file-line-error.
+
+* MP now accepts file names with  paths (separator is /) and with
+  embedded spaces (using " for quoting)
+
+* There could be empty lines in the PS output.
+
+* Full 8-bit fonts (i.e. font using character slot 255) could create 
+  an eternal loop.
+
+* The handling of equations with addition or substractions between two 
+  unknowns in the right hand side was wrong.
+
+* The first line of the PS font encoding output could be broken 
+  inbetween a glyph name and its preceding slash.
+
+* Font inclusion in the PS backend would fail for all fonts that had 
+  glyph ids using the 8th bit.
+
+
+----------------------------------------------------------------------
+What is new in MetaPost beta version 1.091:
+----------------------------------------------------------------------
+
+* Dash lists were interfaced incorrectly by the lua bindings.
+
+* The Type 1 Font inclusion in the previous version produced invalid
+  subsets.
+
+* The configure script now also checks for sys/time.h
+
+* The error message you get for invalid mem files now mentions the
+  name of the file as well as the nature of the problem.
+
+----------------------------------------------------------------------
+What is new in MetaPost beta version 1.090:
+----------------------------------------------------------------------
+
+This MetaPost release is based on MPlib. For those of you who are not 
+aware of the MPlib project yet:
+
+MPlib is the name of the new, revamped version of the MetaPost
+interpreter. It is implemented in Cweb, and internally consists
+of a core library, an mpx generation library, and a frontend
+driver program (mpost).
+
+There are no changes to the MetaPost language, but nevertheless there
+are some minor differences with the last pascal-web based version of 
+MetaPost (1.005):
+
+* The MPlib distribution is released under the GPL version 2 or, 
+  at your option, any later version.
+
+* The commandline is slightly different, run mpost --help for details.
+
+* The mem file format is changed, you have to regenerate any 
+  existing ones.
+
+* The new mpx generation library includes the label generation
+  functionality that was previously provided by 'makempx', and
+  this internal code will be used instead of an external program.
+  That is, unless the MPXCOMMAND variable is set in the  environment 
+  or texmf.cnf. The 'mpware' programs became obsolete and are no 
+  longer included in the distribution.
+
+* Most of the memory configuration variables from texmf.cnf
+  have become obsolete due to dynamic reallocation. The four remaining 
+  ones are 'main_memory', 'hash_size', 'max_in_open', 'param_size'.
+  These are only taken into account at mem generation time, the
+  values are stored in and reloaded from the mem file.
+
+* The core MPlib library does not interpret an initial '&' as anything
+  special and it does not support re-initialization using a different
+  mem file either. The command line program mpost _does_ interpret '&' 
+  as an alias for the -mem switch to preserve (some) compatility.
+
+* The MPlib distribution includes lua script language bindings.
+
+Following are the NEWS items for the previous beta releases of MPlib.
+
+----------------------------------------------------------------------
+What is new in the beta release of MPlib 1.090:
+----------------------------------------------------------------------
+
+* The lua bindings to MPlib are added to the distribution, and
+  build.sh can now build an mplib.so loadable module for lua
+  (this needs an installed lua 5.1 distribution)
+
+* Some internal macros are renamed so that the exported C structure
+  fields could have better names, and a new document (mplibapi.tex)
+  provides the documentation of the C api and Lua bindings.
+
+* The texmf and manual trees are now included again.
+
+* (un)dumping mem files is delegated to a separate cweb source file.
+
+* All gcc-isms in the build and configure scripts have been removed.
+
+* The kpathsea library is updated.
+
+----------------------------------------------------------------------
+What is new in the beta release of MPlib 1.085:
+----------------------------------------------------------------------
+
+* Determination of the mem name to use in non-ini mode is now much 
+  closer to the web2c approach. 
+
+* There is now a magic word in the beginning of the mem file to make
+  sure it is written by the correct version of MPlib.
+
+* Fixed the disappearing comment sign in the to-be-typeset document 
+  created by the mpx generation subsystem.
+
+* Various identifiers have been renamed to avoid clashes (that prevented
+  the source from building correctly on many platforms)
+
+* A great many small changes and fixes have been added after running 
+  splint on the generated C source.
+
+
+----------------------------------------------------------------------
+What is new in the beta release of MPlib 1.080:
+----------------------------------------------------------------------
+
+* The MPlib distribution is released under the GPL version 2 or, at 
+  your option, any later version. The copyright statements in the source
+  files have been updated to reflect this.
+
+* The mpost program banner now contains the kpathsea version, and no 
+  longer mentions the fact that the source is now cweb at all.
+
+* The mpost program once again supports 'E' error responses.
+
+* There are some minor internal API changes, but there is still no 
+  documentation for the API, so that is not very interesting yet.
+
+
+----------------------------------------------------------------------
+What is new in the beta release of MPlib 1.060:
+----------------------------------------------------------------------
+
+* The MPlib distribution is released under the GPL version 2.
+
+* This release is the first that replaces the old metapost distribution
+  completely. The executable is now named 'mpost' with engine name
+  'metapost'.
+
+* The release now includes a cweb implementation of the makempx 
+  functionality that is linked into the mpost executable. 
+  This internal code will be used unless the MPXCOMMAND variable is set.
+  Because of this functionality, the mpware directory is no longer 
+  included and the standalone programs 'makempx', 'newer', 'mpto',
+  'dvitomp' and 'dmp'. are no longer maintained.
+
+* This is the first development release of the new cycle, and contains 
+  all of the functionality of Metapost 1.005. The mpost version is now 
+  1.060, and the special version number for the cweb version has been 
+  removed from the banner.
+  
+----------------------------------------------------------------------
+What is new in the alpha release of MPlib (0.20.0):
+----------------------------------------------------------------------
+
+* Two bugs in MP 1.002 were fixed by Giuseppe Bilotta, both fixes
+  are about polygonals pens and will be included in the upcoming 
+  MP 1.003 release also.
+
+* It is now possible to ask for the envelope of a path drawn as 
+  traced by a (non-elliptical) pen:
+
+    path p,q;
+    p = fullcircle scaled 30;
+    q = envelope pensquare of p;
+   
+* There is a lua interface now, and it is already used by luatex. 
+
+  To play with this, currently the best solution is to fetch the 
+  0.25.0 beta of luatex: http://foundry.supelec.fr/projects/luatex
+  This embeds MPlib 0.25.0 as well as its documentation. 
+
+* Many bugs were fixed.
+
+----------------------------------------------------------------------
+What is new in the alpha release of MPlib (0.10.0):
+----------------------------------------------------------------------
+
+* The source is converted to cweb, and split into a library part
+  (mpdir/lib/*.w) and a frontend executable (mpdir/mpost.w).
+
+* The front end executable is named "newmpost", this takes
+  care of configuring the MPlib library via C code, and uses
+  kpathsea for file searching. There is no change file involved, 
+  and the web2c runtime library is not used.
+
+* Some of the internal arrays now grow dynamically when needed:
+
+  * the input buffer
+  * the string pool and number of strings
+  * the font memory and number of fonts
+  * the number of "readfrom" and "write" files
+  * the path segment size
+  * the input nesting stack
+  * the number of new internals
+  * the TFM writing arrays (but these are limited by TFM format)
+
+  Still not doing that (so these can only be changed in --ini mode):
+
+  * the main memory
+  * the hash size
+  * the number of simultaneous macro parameters
+  * the level of "input" file nesting
+
+* The following command-line options are ignored by the front-end
+  command (for now):
+
+  -[no-]file-line-error
+  -halt-on-error
+  -output-directory=
+  -[no-]parse-first-line
+  -recorder
+  -translate-file=
+  -8bit
+  -T
+  
+  The other web2c command-line options should work as normal.
+
+* the mpware tools are not in this distribution, their functionality
+  will eventually be assimilated into the frontend application.
+
+* the build process depends on a local "ctangle" command being in the 
+  path, for now. The confiration and building system is not yet complete.
+
+* API documentation is still missing, but the MetaPost input language 
+  has not changed.
+
+
+----------------------------------------------------------------------
+What is new in version 1.005:
+----------------------------------------------------------------------
+
+* In MetaPost 1.004, mpost --version still incorrectly reported 1.003
+
+* C Compilation of MetaPost 1.004 was broken on MacOS X 10.5
+
+* The sources package did not contain mpboxes.pdf
+
+* Some last-minute fixes to the manual
+
+
+----------------------------------------------------------------------
+What is new in version 1.004:
+----------------------------------------------------------------------
+
+* The picture color component commands misbehaved in 1.003:
+   the current (default) colormodel was not taken into consideration,
+   so all colors had to be explicit for "redpart" etc. to work.
+   (this bug is the one broke the graph.mp package)
+
+   In 1.004 for "defaulted" colors, the suitable value in the current
+   (default) colormodel is returned without any errors. This change
+   also reverts to silently defaulting a 'black' color when asking
+   for the redpart etc. of an object that cannot be colored at all.
+
+* The picture color component commands misbehaved in 1.003 in
+   a different manner also: the defaults for uninitialized CMYK
+   color picture parts were still assuming 'black' was defined as
+   (1,1,1,1) instead of as (0,0,0,1).
+
+* The macro Gwithpc_ in the graph.mp package did not work properly
+   with non-rgb colormodel objects.
+
+* plain.mp has a new macro, 'colorpart', that returns the color
+   parts of a graphical object within a picture in a form suitable
+   for feeding it back to 'withcolor'.
+
+* The latest kpathsea library from TeXLive is included.
+
+* There is now a separate manual for the boxes package (mpboxes.pdf).
+
+
+----------------------------------------------------------------------
+What is new in version 1.003:
+----------------------------------------------------------------------
+
+* Polygonal pens now work better (bug #3 and #7 at supelec.fr).
+
+* When asking for a color part in a picture object, the color models
+   now have to match each other, otherwise an error will be reported
+   and the return value will be set to a 'black' part.
+
+* The Makefile fragment (metapost.mk) now defines a separate mpost
+   target for better integration in TeXLive.
+
+* There was a bug in the internal handling of withprescript and
+   withpostscript, resulting in incorrect output when paths using
+   such scripts were stored in picture variables.
+
+* A newline was missing from the PostScript output when the
+   procset internal variable was set, so the first line of that
+   accidentally became a PostScript comment.
+
+* Applicable changes from Knuth's updates for MetaFont 2.718281
+   are incorporated.
+
+* Mpto did not play nice with %&<format> verbatimtex lines, it now
+   automatically tries to detect comment-lines.
+
+* Dvitomp  1.003 has higher limits for some internal constants like
+   the number of allowed fonts in DVI files.
+
+* The manual is improved.
+
+
+
+----------------------------------------------------------------------
+What is new in version 1.002:
+----------------------------------------------------------------------
+
+* Version 1.001 introduced a memory allocation error in mpto that could
+  result in the program looping endlessly
+
+----------------------------------------------------------------------
+What is new in version 1.001:
+----------------------------------------------------------------------
+
+* The default cmyk 'black' color now uses only black, not all four
+  ink colors (after a discussion on the mailing list).
+
+* Some issues were reported with the new turningnumber algorithm,
+  all known problems are now fixed.
+
+* G\xE1bor Braun discovered that mpost did not always download the font
+  encodings into all the created output files.
+
+* Akira Kakuto and Hartmut Henkel found some small issues in mpto
+  regarding trailing and leading whitespace.
+
+* A fix for the 'Helvetica' entries in trfonts.map was provided by
+  Werner Lemberg, and Michail Vidiassov supplied two extra font 
+  entries for troff.map (Symbol and ZapfDingbats). Karl Berry
+  provided the new file troff-updmap.map, to be used by the updmap 
+  tool in texlive.
+
+* Mpost now supports web2c's --output-directory option.
+
+* Any warnings about missing fonts and characters are now always 
+  written to the terminal as well as to the log.
+
+* Now that makempx is a C program, it needed a different install line
+  in build.sh. Also, Olaf Mersmann contributed a patch to recognize
+  'gmake' in build.sh
+
+* Luigi Scarso found some typing errors in the web source that prevented
+  clean weaving of the source.
+
+* Stephan Hennig fixed a number of problems in the manual (mpman.tex)
+  and the introduction paper (mpintro.tex). He also wrote new sections on 
+  how to preview metapost graphics and on how to use metapost graphics 
+  inside  other documents. On top of that, the manual is now hypertext-aware, 
+  and fixes for a whole series of small problems have been applied.
+
+----------------------------------------------------------------------
+What is new in version 1.000:
+----------------------------------------------------------------------
+
+*  The use of DSC (document structuring) comments has been
+   been cleaned up, thanks to comments by Michail Vidiassov.
+ 
+*  By setting prologues to 2 or 3, you can ask MetaPost to 
+   reencode and include the used labels fonts in the output,
+   thus creating proper Encapsulated PostScript files even
+   if labels are present.
+
+*  Support for greyscale and cmykcolor models is added.
+
+*  The new drawing options "withprescript" and withpostscript"
+   allow the user to attach PostSCript special text to a specific
+   drawing object.
+
+*  Setting the new internal "mpprocset" to 1 will make MetaPost
+   create a somewhat extended preamble that defines shortcuts
+   for the postscript commands (e..g "l" instead of "lineto").
+   For big images, this can help shrink the output a bit.
+
+*  The pool file is now integrated in the executable, so there
+   is not separate 'mp.pool' anymore, except at build time.
+
+*  Groff support is redone, and dmp now uses kpathsea searching.
+   Groff related changes are thanks to the efforts of Werner 
+   Lemberg and Michail Vidiassov 
+
+*  makempx is now a compiled executable on all systems,
+   thank you Akira Kakuto
+
+*  The error for 'special's longer then 255 characters
+   is removed, so specials can now be of any length.
+
+*  There is new turningnumber implementation that attempts
+   to find the mathematically correct "turningnumber" of a 
+   path. The formulae are derived from a mailinglist discussion
+   between (especially) Dan Luecking and Giuseppe Bilotta.
+
+*  The manual is updated and modernized. It is currently 
+   maintained by Stephan Hennig and Troy Henderson.
+
+------------------------------------------------------------------
+Changes in version 0.920:
+----------------------------------------------------------------------
+
+*  Fixed a long-standing bug in web2c where changing values of the
+   memory_size setting in web2c could cause crashes and other random
+   problems. The memory array size is now written to the dump file
+   and loading is aborted if the values do not match.
+*  Implement configurable figure output filename templates.
+*  Implement cmyk, greyscale, and marking only color models.
+*  The mpost executable is now version 0.920
+*  mpost no longer autoconverts r==g==b colors to grayscale in the
+   postscript output.
+  
+----------------------------------------------------------------------
+Changes in version 0.902:
+----------------------------------------------------------------------
+*  Fix a bug in mpto resulting in correctly placed labels (with
+   thanks to Dan Luecking)
+*  Fix a bug blocking compilation of dmp on MacOSX
+*  The mpost,dmp,mpto executables are now version 0.902
+
+
+----------------------------------------------------------------------
+Changes in version 0.901:
+----------------------------------------------------------------------
+*  A corrected bugfix for bug item 3 from version 0.9 (the old fix
+   made metapost fail the trap test)
+*  Included mpost.mp for mem generation
+*  Updated the trap test output.
+*  The mpost executable is now version 0.901
+
+----------------------------------------------------------------------
+What is new in version 0.9:
+----------------------------------------------------------------------
+1. There is a new internal quantity called mpversion that reports the 
+   current metapost version, and the version information is also written 
+   to the PostScript file.   
+2. The LaTeX sources of the mpman, mpintro, and mpgraph manuals have
+   become part of the distribution package.
+3. TEX.mp now has TeX format support through a pair of macros called 
+   TEXPRE() and TEXPOST(). This llows you to process the contents of 
+   the TEX() macro with, for example, LaTeX (instead of plain TeX).
+   An example is given in the manual.
+4. metapost now writes a %%HiReSBoundingBox comment
+5. The EPS output no longer contains actual spaces within PostScript 
+   strings as for example output by label("a space"), but their
+   octal escape (\040) instead.
+6. The EPS output now also has a %%BeginProlog DSC comment
+   as well as %%EndProlog
+7. The comments in the Web source have been changed to point out
+   that on modern machines, acquiring the random seed has actually
+   become a system-dependant operation (a granularity of whole seconds 
+   is not small enough on new machines).
+8. The 'newer' command now accepts more than 2 arguments, testing
+   each of the files in turn.
+
+----------------------------------------------------------------------
+Bugfixes in version 0.9:
+----------------------------------------------------------------------
+1. Documentation improvements: all known errata and typos have been 
+   removed, better explanations of e.g. dash patterns and dotlabel have
+   been provided, and a number of omissions has been rectified.
+2. The BoundingBox was not computed correctly when a filldraw command
+   with a noticeable pen size was used at the edge of the picture.
+3. Paths starting with degenerate constructions like (0,0)--(0,0)--(0,0) 
+   could overflow memory.
+4. The PostScript output could accidentally contain 8-bit characters 
+   within PostScript strings in previous versions because a test was
+   shared between terminal printing and PostScript printing.
+5. A bug has been found in the assignment of serial numbers to independant
+   variables in metafont 2.71828. This bug affected MP as well, and the
+   same patch has been applied.
+6. The turningnumber was sometimes wrong in unexpected ways. The new
+   implementation is still sometimes wrong (when there are strange path
+   segments involved), but in a much more predictable way: the new code
+   always draws straight lines between the actual points, and calculates 
+   the turningnumber based on that path instead of the actual path. The
+   effect is that cusps and loops within segments are now completely 
+   ignored. A more thorough fix of turningnumber is planned for the 
+   next release.
+7. There was an 'off by one' error in dvitomp wrt. the interpretation
+   of virtual fonts.
+8. mpto uses a new TeX macro for the generation of labels, making it
+   more robust wrt. strange user code within the actual label text.
+9. A missing colon in boxes.mp has been added
+10. A missing save in mfplain.mp has been added
+11. The generisize in boxes.mp has been fixed so that it now accepts [[ as 
+    a valid variable name
+
+----------------------------------------------------------------------
+Version 0.641:
+----------------------------------------------------------------------
+The only change was to fix the code for transforming a picture that
+contains a filldraw.  Version 0.64 introduced a bug that caused an
+inappropriate memory reference in that case.
+
+----------------------------------------------------------------------
+What is new in Version 0.64:
+----------------------------------------------------------------------
+1. A new primitive command  closefrom filename  closes a readfrom file
+   so that subsequent calls to readfrom with that file name will go back
+   to the beginning of the file.
+2. The ^^ notation for unprintable characters is now used only when printing
+   on the terminal or the log file.  Internal computations and the write
+   command are all 8-bit clean.  (This is partly due to material in mp.ch
+   that changes the initialization of the xchr array.  Without these
+   system-dependent changes, the write command would map all non-ascii
+   characters to spaces.)
+3. Arithmetic overflow during a comparison such as  20000>-20000 is now
+   ignored.  This avoids extraneous error message when using the graph.mp
+   macro package.
+4. Transformations with negative determinants now work properly on pictures
+   drawn with polygonal pens.
+5. When the readfrom operator is applied to a file that does not exist,
+   an attempt to close a non-open file could cause problems in some
+   implementations.  This has now been fixed.
+6. Using  draw picture_expression withpen  where the picture_expression
+   was a scaled picture containing dashed lines, the dash lengths would
+   change.  This bug has been fixed.
+7. The dashpart operator could return an invalid picture or a picture that
+   is not properly scaled.  This has also been fixed.
+8. The |char_base| variable could become negative when using fonts that
+   do not start at character 0.  There was also bad Pascal code in function
+   b_open_in.  This has all been fixed.
+9. Dvitomp has been fixed to avoid a font data structure problem that
+   could cause some characters to come out in the wrong font when you
+   mix virtual and non-virtual fonts.
+10. Dvitomp now correctly prints font names when there is a checksum
+   mismatch, and it aborts instead of just printing an error if a tfm
+   or vf file is bad.
+11. In plain.mp, the drawdblarrow macro now uses filldraw so that it works
+   better with large pen sizes.
+
+----------------------------------------------------------------------
+Version 0.632:
+----------------------------------------------------------------------
+When prologues is negative, the output files use full precision for
+coordinates in "%%BoundingBox" comments.  In btex..etex blocks,
+"number too large" and "invalid character" errors are suppressed.
+The result of btex..etex is now guaranteed to be in a setbounds path
+so that a for...within iteration will always treat it as a unit.
+
+There are also some obscure bug fixes involving string compaction when
+scanning a file name or when mp is compiled in debug mode.  Some possible
+identifier name conflicts and range check errors have also been fixed.
+
+
+----------------------------------------------------------------------
+Version 0.631:
+----------------------------------------------------------------------
+This version fixes an obscure bug that could cause certain perfectly valid
+strings to be printed as "???" or " NONEXISTENT".  It also includes a minor
+fix to the PATHEXPAND code that prevents running out of file descriptors.
+
+
+----------------------------------------------------------------------
+What is new in Version 0.63:
+----------------------------------------------------------------------
+1. Backslashes in the PostScript output are rendered correctly.  They used
+   to come out as (\) instead of (\\).
+2. Recycling an independent variable should no longer cause spurious overflows.
+   (This bug was recently found in mf.web.)
+3. Pythagorean addition should now be faster in certain trivial cases.
+4. Rotating text by arbitrary angles should no longer cause bad PostScript
+   output.  The problem was that arguments to "fshow" could be inaccurate.
+5. Obscure bugs inherited from mf.web are now fixed.  These involve
+   balancing parentheses showing on the terminal, reporting the correct
+   line number in case of buffer overflow, and removing spurious reference
+   counts that could effect end-of-job statistics.
+6. Fonts with ec=255 should no longer cause mp's PostScript output routines
+   to go into a loop.
+7. When mp's string mechanism was heavily used, file names could occaisonally
+   be printed on the terminal and log file as "(?)".  This has been fixed.
+8. Setting PATHEXPAND in site.h causes mp, dvitomp and dmp to understand "//"
+   in path variables as "search multiple levels of subdirectories".  This is
+   for compatibility with recent versions of the Web2c TeX distribution.
+9. A typo in mpware/makempx and mpware/troffmpx has been fixed.  Previous
+   versions of these scripts would not run on some systems.
+10. Data files *.d have been added to the doc directory.  These are used by
+   doc/mpgraph.mp which generates figures for "Drawing Graphs with MetaPost".
+11. Typos in mpintro.tex and mp.web's TeX material have been fixed.
+12. Files examples.mp, mpintro.tex and mpintro.bib have moved from mplib to
+    the doc directory.
+13. The author's email address now appears in the README file.
+
+
+----------------------------------------------------------------------
+Macros added to the mplib directory between Versions 0.50 and 0.62:
+----------------------------------------------------------------------
+rboxes.mp is a slightly more general version of boxes.mp
+TEX.mp provides a way of running tex dynamically instead of as a pre-processor
+graph.mp, format.mp, and sarith.mp are documented in doc/mpgraph.ps
+(This is the same as ftp://netlib.att.com/netlib/att/cs/cstr/164.ps.Z)
+marith.mp, string.mp, texnum.mp, and troffnum.mp are low-level packages
+used by graph.mp, format.mp, and sarith.mp.
+
+
+----------------------------------------------------------------------
+Other minor bug fixes subsequent to Version 0.60
+----------------------------------------------------------------------
+1. plain.mp has been fixed so that the x**y works properly when x<0 and y is
+   a negative integer.
+2. Programs mptotex.c and mptotr.c which extract btex..etex material have been
+   fixed so they work properly with input files that do not end with a newline
+   character.
+3. Program dmp.c which handles troff output from btex..etex blocks has been
+   modified to avoid outputting any non-ASCII characters that the C function
+   isprint() accepts.
+4. Program dmp.c no longer gets troff graphics specials confused with text.
+   This seldom matters because btex..etex blocks are unlikely to contain
+   troff graphics.
+5. Pictures containing clipped subpictures could come out with some colors
+   in the subpicture wrong.
+6. Colors in PostSript output were not being restricted to the standard 0..1
+   range.
+7. Transforming a path or a pen should no longer generate extraneous overflow
+   errors in certain unusual situations.
+8. Drawing with a degenerate 2-vertex polygonal pen such as penrazor should
+   no longer cause an infinite loop in certain unusual situations.
+9. There were some bugs in the mfplain macros.  (These macros are designed
+   to similate plain METAFONT.)  The drawing and filling macros now apply
+   currenttransform to the path but not the pen rather than vice versa.
+   The predefined modes now set o_correction to 1.0.
+10. For security reasons, mp can no longer read or write files whose names
+   begin with '.'
+
+
+----------------------------------------------------------------------
+Changes to the MetaPost language between Version 0.50 and Version 0.60
+----------------------------------------------------------------------
+1. New operator `readfrom <filename>' and new command
+   `write <string expression> to <filename>' do file I/O.  Plain defines
+   a special string EOF that readfrom returns to indicate end-of-file
+   and write..to understands as well.
+2. New iteration type `for p within <picture expression>: <loop text> endfor'
+   iterates through the interior components of the picture.  An `interior
+   component' is a single pen stroke, filled outline, or piece of typeset
+   text.  A part of the picture enclosed in a clipping or setbounds path
+   also counts as an interior component.  If the whole picture is enclosed
+   in such a path, the for..within iteration looks inside.  Note that a
+   picture generated by btex..etex is enclosed in a setbounds path.
+3. The length operator now applies to pictures.  It returns the number of
+   interior components.
+4. New boolean operators stroked, filled, textual, clipped, bounded test
+   the first component of a picture.  A picture enclosed in a clipping or
+   setbounds path counts as a single component.
+5. Part extraction operators now work for pictures.  Standard operators
+   redpart, greenpart, bluepart apply to the color of the first component
+   and xpart, ypart, xxpart, xypart, yxpart, yypart extract parts of the
+   tranformation that has been applied to a text component.  If `textual p'
+   is false, the transform components are all zero; if `clipped p' or
+   `bounded p' is true, the color parts are all zero.  Additional operators
+   fontpart, textpart, pathpart, penpart, dashpart extract other information
+   from the first component of a picture.  They all return null values when
+   the first component has the wrong type:  fontpart and textpart return
+   null strings; pathpart returns the path (0,0); penpart returns nullpen;
+   and dashpart returns nullpicture.
+6. The construction `dashed nullpicture' is now a no-op.  It used to be
+   an error.
+7. The clip and setbounds statements used to ignore operations on empty
+   pictures.  Now they do not.
+8. Structuring comments in the PostScript output are now based on EPSF-3.0
+   as described in the 2nd Edition of the PostScript Reference Manual.
+   When prologues is 0, some structuring comments are included but the
+   output is not flagged a `conforming document'.  Previous versions of
+   MetaPost behaved similarly but used slightly different structuring
+   comments.
+9. When warningcheck is 0, numeric tokens and results from the hex and
+   oct operators can be as large as 32767.99998.  The old limit of about
+   4096 applies only when warningcheck is positive.
+10. Various optimizations should make the output a little more compact.
+11. For PostScript engines that obey the scan-conversion rules documented
+   in the 2nd edition PostScript Language Reference Manual, hrules and
+   vrules in btex..etex blocks should now come out to exactly the right
+   number of pixels.  The change affects all pen strokes drawn in MetaPost
+   It is implemented via PostScripts dtransform and idtransform operators.
+12. A bug involving setbounds and MetaPost's corner operators has been fixed.
+13. Degenerate elliptical pens no longer cause PostScript to divide by zero.
+14. Fixed a very obscure bug involving readstring and end-of-file.
+15. String compaction statistics are now printed correctly when the job
+   terminates with tracingstats positive.
+
+
+
+----------------------------------------------------------------------
+Changes to the source files between Version 0.50 and Version 0.60
+----------------------------------------------------------------------
+
+CHANGES to ./README.MP
+The installation instructions should now be clearer.  They also explain
+how to cope with verious versions of WEB2C.
+
+CHANGES to ./site.h
+I removed unused entries and clarified instructions in commentary material.
+Confusing comments about possibly merging it with the WEB2C version of site.h
+were removed--I think such merging is a bad idea.
+
+CHANGES TO ./Makefile, mp/Makefile, mpware/Makefile:
+Improved default settings, simplified the `install' recipe,
+fixed a few missing depencies, portability problems, etc.
+
+RENAMED FILES
+   mp/mp.defines, mpware/mpware.defines, mpware/dvitompext.c
+TO mp/mp.def,     mpware/mpware.def,     mpware/dvimpext.c
+(The names also changed in the Makefiles and convert scripts)
+
+CHANGES TO mp/mp.web, mp/mp.ch, mp/mp.def, mp/mpext.c:
+Lots of new features were added as noted above.  The only new system-
+dependencies are for `readfrom' and `write...to'.
+The change file now increases max_read_files; it doesn't bother with
+max_write_files, but perhaps it should.  There is a new change entitled
+"Path selector for..readfrom file".  From the web2C sources I borrowed
+a change "`logname' is declared in <unistd.h> in some systems".  I also
+added a PASCAL-like eof() routine to mpext, removed a change entitled
+"avoid using eof() in read_psname_table" and added a new change
+"[48.1199] `eof'...[in read_mem_file]".
+
+Reorganization of math routines in the mp directory:
+I moved the floating-point math routines from mpext.c to mpath.c.  A
+C-language version of the standard math routines was moved from mpmath.c
+to a new file pmath.c for use in mathtest only.  This required chages to
+mathtest.c and time.c (also used only for mathtest).  The point of all
+this is that there is now just one copy of the floating-point math routines
+and it is used for mathtest and (optionally) for mp itself.
+
+Routines in doc and mp/trapdir:
+The output was updated to Version 0.60.  Another test file mptrap.mp
+tests new features.  There have also been minor updates to the manual,
+although the new features for Version 0.60 are not included yet.
+
+CHANGES to macros in mplib:
+A minor change to boxes.mp should make it more robust.  Changed default
+setting of tracinglostchars in mfplain.mp and plain.mp.  Added a string
+constant EOF to plain.mp for use with readfrom and write..to.
+Changed mproof.tex to make it more portable as suggested by Knuth.
+
+CHANGES to mpware/dvitomp.web, mpware/dvitomp.ch:
+The web file was changed to output rules as horizontal or vertical
+penstrokes with butt endcaps.  This also affected dvitomp.ch.  Also in
+dvitomp.ch, put terminal output on stdout instead of stderr and require
+the output file to be given on the command line.
+
+CHANGES to mpware/makempx, mpware/troffmpx:
+Added comments explaining what path names need fixing.  Portability improvements
+and dvitomp's output change affect makempx only.
+
+CHANGES to mpware/mptotex.c mpware/mptotr.c mpware/testex.err mpware/testex.mp:
+Ignore an initial newline in the TeX (or troff) material to avoid generating
+a blank line in the output file.  The test file now covers this case.
+
+CHANGE to mpware/newer.c
+Minor changes to make it compile in strict ANSI/POSIX environments.



More information about the tex-live-commits mailing list.