201 lines
6.4 KiB
Plaintext
201 lines
6.4 KiB
Plaintext
GNU m4 NEWS - User visible changes.
|
|
Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
|
|
|
|
Version 1.4 - October 1994, by Franc,ois Pinard
|
|
|
|
(No user visible changes)
|
|
|
|
Version 1.3 - September 1994, by Franc,ois Pinard
|
|
|
|
* Diversions are created as needed. Option `-N' is still accepted, but
|
|
otherwise ignored. Users should use only negative diversion numbers,
|
|
instead of high positive numbers, for diverting to nowhere.
|
|
|
|
* Diversions should also work faster. No temporary files will be needed
|
|
at all if all diversions taken altogether do not use more than 512K.
|
|
|
|
* Frozen state files may be produced with the `--freeze-state' (-F)
|
|
option and later brought back through the `--reload-state' (-R) option.
|
|
|
|
Version 1.2 - July 1994, by Franc,ois Pinard
|
|
|
|
* In patsubst(STRING, REGEXP, REPLACEMENT), \& in REPLACEMENT has been
|
|
changed to represent this part of STRING matched by the whole REGEXP,
|
|
instead of the whole STRING as before. \0 does the same, but emits a
|
|
diagnostic saying it will disappear in some subsequent release.
|
|
|
|
* eval(EXPR) emits a diagnostic if EXPR has suffixed crumb. The same for
|
|
other numeric conversions in incr(), decr(), divert(), etc.
|
|
|
|
* `--fatal-warnings' (-E) stops execution at first warning.
|
|
|
|
* `--nesting-limit=LEVEL' (-L LEVEL) sets a limit to macro nesting.
|
|
It is initially fixed at 250.
|
|
|
|
* `--word-regexp=REGEXP' (-W REGEXP) modifies macro name syntax, like
|
|
does the new `changeword(REGEXP)' macro. This feature is experimental,
|
|
tell me your opinions about it. You do need --enable-changeword at
|
|
configure time to get these things. Do *not* depend on them yet.
|
|
|
|
* Trace output format is scannable by GNU Emacs' next-error function.
|
|
|
|
* Stack overflow is detected and diagnosed on some capable systems.
|
|
|
|
* Various bugs have been corrected, m4 should be more portable. See the
|
|
ChangeLog for details.
|
|
|
|
Version 1.1 - November 1993, by Franc,ois Pinard
|
|
|
|
Changes which might affect existing GNU m4 scripts:
|
|
|
|
* Option `-V' has been removed, use `--version' instead. `--version'
|
|
writes on standard output instead of standard error, and inhibits any
|
|
script execution.
|
|
|
|
* `--no-gnu-extensions' has been renamed `--traditional'.
|
|
|
|
* In `eval', `^' used to indicate exponentiation, use `**' instead.
|
|
|
|
* The automatic undiversion which takes place at end of all input is
|
|
forced into the main output stream.
|
|
|
|
Changes which are unlikely to affect existing scripts:
|
|
|
|
* `--help' prints an usage summary on standard output. Script execution
|
|
is then inhibited.
|
|
|
|
* `--prefix-builtins' (-P) prefixes all builtin macros by `m4_'.
|
|
|
|
* Most builtin macros for which arguments are mandatory, called without
|
|
any arguments, are no more recognized as builtin macros: they are
|
|
consequently copied verbatim to the output stream.
|
|
|
|
* `define' and `pushdef' are usable with only one argument, they give
|
|
this argument an empty definition.
|
|
|
|
* `eval' new operators for binary representation handling: `^' for
|
|
exclusive-or, `~' for the bitwise negation, `<<' and `>>' for shifts.
|
|
|
|
* `eval' recognizes the notation 0bDIGITS for binary numbers and the
|
|
notation 0rRADIX:DIGITS for numbers in any radix from 1 to 36.
|
|
|
|
Version 1.0.3 - December 1992, by Franc,ois Pinard
|
|
|
|
Changes for the user:
|
|
|
|
* `dnl' outputs a diagnostic if immediately followed by `('. Usually,
|
|
`dnl' is followed by newline or whitespace.
|
|
|
|
* `ifelse' accepts without complaining the common idiom of having only
|
|
one argument. This is useful for introducing long comments.
|
|
|
|
* `eval' always expresses values as signed, whatever the radix.
|
|
|
|
* M4OPTS environment variable is no longer obeyed.
|
|
|
|
* `--no-warnings' option is renamed `--silent'.
|
|
|
|
* Debug lines use a new format more compatible with GNU standards.
|
|
|
|
* Various bugs have been corrected. See the ChangeLog for details.
|
|
|
|
Changes for the installer:
|
|
|
|
* GNU m4 now uses an Autoconf-generated configure script, and should be
|
|
more easily portable in many ways. (Cray is not supported yet).
|
|
|
|
* `make check' has been made more portable, expect no errors.
|
|
|
|
Changes for the programmer:
|
|
|
|
* Sources have been fully reindented to comply with GNU standards, and
|
|
cleaned up in many ways.
|
|
|
|
* Sources have been protoized. Non-ANSI compilers are automatically
|
|
detected, then sources are unprotoized on the fly before compilation.
|
|
|
|
* GNU m4 uses newer versions of obstack, regex, getopt, etc.
|
|
|
|
Version 1.0 - October 1991, by Rene' Seindal
|
|
|
|
* Uses GNU configure, taken from the gdb distribution.
|
|
|
|
* Uses GNU getopt(), with long option names.
|
|
|
|
* The -Q/+quiet option is added, which suppresses warnings about missing
|
|
or superflous arguments to built-in macros.
|
|
|
|
* Added default options via the M4OPTS environment variable.
|
|
|
|
* Several minor bugs have been fixed.
|
|
|
|
Version 0.99 - July 1991, by Rene' Seindal
|
|
|
|
* The builtins `incr' and `decr' are now implemented without use of
|
|
`eval'.
|
|
|
|
* The builtin `indir' is added, to allow for indirect macro calls
|
|
(allows use of "illegal" macro names).
|
|
|
|
* The debugging and tracing facilities has been enhanced considerably.
|
|
See the manual for details.
|
|
|
|
* The -tMACRO option is added, marks MACRO for tracing as soon as it
|
|
is defined.
|
|
|
|
* Builtins are traced after renaming iff they were before.
|
|
|
|
* Named files can now be undiverted.
|
|
|
|
* The -Nnum option can be used to increase the number of divertions
|
|
available.
|
|
|
|
* Calling changecom without arguments now disables all comment handling.
|
|
|
|
* A bug in `dnl' is fixed.
|
|
|
|
* A bug in the multi-character quoting code is fixed.
|
|
|
|
* Several typos in the manual has been corrected. More probably persist.
|
|
|
|
Version 0.75 - November 1990, by Rene' Seindal
|
|
|
|
* Implemented search path for include files (-I option and M4PATH
|
|
environment variable).
|
|
|
|
* Implemented builtin `format' for printf-like formatting.
|
|
|
|
* Implemented builtin `regexp' for searching for regular expressions.
|
|
|
|
* Implemented builtin `patsubst' for substitution with regular
|
|
expressions.
|
|
|
|
* Implemented builtin `esyscmd', which expands to a shell commands output.
|
|
|
|
* Implemented `__file__' and `__line__' for use in error messages.
|
|
|
|
* Implemented character ranges in `translit'.
|
|
|
|
* Implemented control over debugging output.
|
|
|
|
* Implemented multi-character quotes.
|
|
|
|
* Implemented multi-character comment delimiters.
|
|
|
|
* Changed predefined macro `gnu' to `__gnu__'.
|
|
|
|
* Changed predefined macro `unix' to `__unix__', when the -G option is
|
|
not used. With -G, `unix' is still defined.
|
|
|
|
* Added program name to error messages.
|
|
|
|
* Fixed two missing null bytes bugs.
|
|
|
|
Version 0.50 - January 1990, by Rene' Seindal
|
|
|
|
* Initial beta release.
|
|
|
|
Local Variables:
|
|
fill-column: 75
|
|
End:
|