* configure.ac (AC_INIT): Bump to 1.4.3a.
[m4/ericb.git] / NEWS
blob6c5134fcede93ae4962b0b1beddbb2a5413016b6
1 GNU m4 NEWS - User visible changes.
2 Copyright (C) 1992, 1993, 1994, 2004, 2005 Free Software Foundation, Inc.
4 Version 1.4.3 - March 2005, by Gary V. Vaughan
6 * DESTDIR installs now work correctly.
7 * Don't segfault with uncompilable regexps to changeword().
8 * Always use \n line-endings for frozen files (fixes a cygwin bug).
9 * Portability fix for systems lacking mkstemp(3).
10 * Approximately 20% speed up in the common case of usage with autoconf.
11 * Supported on QNX 6.3.
13 Version 1.4.2 - August 2004, by Paul Eggert
15 * No user visible changes; portability bug fixes only.
17 Version 1.4.1 - June 2004, by Paul Eggert
19 * maketemp now creates an empty file with the given name, instead of merely
20   returning the name of a nonexistent file.  This closes a security hole.
22 Version 1.4 - October 1994, by Franc,ois Pinard
24 (No user visible changes)
26 Version 1.3 - September 1994, by Franc,ois Pinard
28 * Diversions are created as needed.  Option `-N' is still accepted, but
29 otherwise ignored.  Users should use only negative diversion numbers,
30 instead of high positive numbers, for diverting to nowhere.
32 * Diversions should also work faster.  No temporary files will be needed
33 at all if all diversions taken altogether do not use more than 512K.
35 * Frozen state files may be produced with the `--freeze-state' (-F)
36 option and later brought back through the `--reload-state' (-R) option.
38 Version 1.2 - July 1994, by Franc,ois Pinard
40 * In patsubst(STRING, REGEXP, REPLACEMENT), \& in REPLACEMENT has been
41 changed to represent this part of STRING matched by the whole REGEXP,
42 instead of the whole STRING as before.  \0 does the same, but emits a
43 diagnostic saying it will disappear in some subsequent release.
45 * eval(EXPR) emits a diagnostic if EXPR has suffixed crumb.  The same for
46 other numeric conversions in incr(), decr(), divert(), etc.
48 * `--fatal-warnings' (-E) stops execution at first warning.
50 * `--nesting-limit=LEVEL' (-L LEVEL) sets a limit to macro nesting.
51 It is initially fixed at 250.
53 * `--word-regexp=REGEXP' (-W REGEXP) modifies macro name syntax, like
54 does the new `changeword(REGEXP)' macro.  This feature is experimental,
55 tell me your opinions about it.  You do need --enable-changeword at
56 configure time to get these things.  Do *not* depend on them yet.
58 * Trace output format is scannable by GNU Emacs' next-error function.
60 * Stack overflow is detected and diagnosed on some capable systems.
62 * Various bugs have been corrected, m4 should be more portable.  See the
63 ChangeLog for details.
65 Version 1.1 - November 1993, by Franc,ois Pinard
67 Changes which might affect existing GNU m4 scripts:
69 * Option `-V' has been removed, use `--version' instead.  `--version'
70 writes on standard output instead of standard error, and inhibits any
71 script execution.
73 * `--no-gnu-extensions' has been renamed `--traditional'.
75 * In `eval', `^' used to indicate exponentiation, use `**' instead.
77 * The automatic undiversion which takes place at end of all input is
78 forced into the main output stream.
80 Changes which are unlikely to affect existing scripts:
82 * `--help' prints an usage summary on standard output.  Script execution
83 is then inhibited.
85 * `--prefix-builtins' (-P) prefixes all builtin macros by `m4_'.
87 * Most builtin macros for which arguments are mandatory, called without
88 any arguments, are no more recognized as builtin macros: they are
89 consequently copied verbatim to the output stream.
91 * `define' and `pushdef' are usable with only one argument, they give
92 this argument an empty definition.
94 * `eval' new operators for binary representation handling: `^' for
95 exclusive-or, `~' for the bitwise negation, `<<' and `>>' for shifts.
97 * `eval' recognizes the notation 0bDIGITS for binary numbers and the
98 notation 0rRADIX:DIGITS for numbers in any radix from 1 to 36.
100 Version 1.0.3 - December 1992, by Franc,ois Pinard
102 Changes for the user:
104 * `dnl' outputs a diagnostic if immediately followed by `('.  Usually,
105 `dnl' is followed by newline or whitespace.
107 * `ifelse' accepts without complaining the common idiom of having only
108 one argument.  This is useful for introducing long comments.
110 * `eval' always expresses values as signed, whatever the radix.
112 * M4OPTS environment variable is no longer obeyed.
114 * `--no-warnings' option is renamed `--silent'.
116 * Debug lines use a new format more compatible with GNU standards.
118 * Various bugs have been corrected.  See the ChangeLog for details.
120 Changes for the installer:
122 * GNU m4 now uses an Autoconf-generated configure script, and should be
123 more easily portable in many ways.  (Cray is not supported yet).
125 * `make check' has been made more portable, expect no errors.
127 Changes for the programmer:
129 * Sources have been fully reindented to comply with GNU standards, and
130 cleaned up in many ways.
132 * Sources have been protoized.  Non-ANSI compilers are automatically
133 detected, then sources are unprotoized on the fly before compilation.
135 * GNU m4 uses newer versions of obstack, regex, getopt, etc.
137 Version 1.0 - October 1991, by Rene' Seindal
139 * Uses GNU configure, taken from the gdb distribution.
141 * Uses GNU getopt(), with long option names.
143 * The -Q/+quiet option is added, which suppresses warnings about missing
144 or superflous arguments to built-in macros.
146 * Added default options via the M4OPTS environment variable.
148 * Several minor bugs have been fixed.
150 Version 0.99 - July 1991, by Rene' Seindal
152 * The builtins `incr' and `decr' are now implemented without use of
153 `eval'.
155 * The builtin `indir' is added, to allow for indirect macro calls
156 (allows use of "illegal" macro names).
158 * The debugging and tracing facilities has been enhanced considerably.
159 See the manual for details.
161 * The -tMACRO option is added, marks MACRO for tracing as soon as it
162 is defined.
164 * Builtins are traced after renaming iff they were before.
166 * Named files can now be undiverted.
168 * The -Nnum option can be used to increase the number of divertions
169 available.
171 * Calling changecom without arguments now disables all comment handling.
173 * A bug in `dnl' is fixed.
175 * A bug in the multi-character quoting code is fixed.
177 * Several typos in the manual has been corrected.  More probably persist.
179 Version 0.75 - November 1990, by Rene' Seindal
181 * Implemented search path for include files (-I option and M4PATH
182 environment variable).
184 * Implemented builtin `format' for printf-like formatting.
186 * Implemented builtin `regexp' for searching for regular expressions.
188 * Implemented builtin `patsubst' for substitution with regular
189 expressions.
191 * Implemented builtin `esyscmd', which expands to a shell commands output.
193 * Implemented `__file__' and `__line__' for use in error messages.
195 * Implemented character ranges in `translit'.
197 * Implemented control over debugging output.
199 * Implemented multi-character quotes.
201 * Implemented multi-character comment delimiters.
203 * Changed predefined macro `gnu' to `__gnu__'.
205 * Changed predefined macro `unix' to `__unix__', when the -G option is
206 not used.  With -G, `unix' is still defined.
208 * Added program name to error messages.
210 * Fixed two missing null bytes bugs.
212 Version 0.50 - January 1990, by Rene' Seindal
214 * Initial beta release.
216 Local Variables:
217 fill-column: 75
218 End: