[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
GNU M4 1.4.5 released
GNU M4 1.4.5 released
Sun, 16 Jul 2006 07:25:12 -0600
Thunderbird 126.96.36.199 (Windows/20060516)
-----BEGIN PGP SIGNED MESSAGE-----
The GNU M4 Team is pleased to announce the release of GNU M4 1.4.5.
GNU `m4' is an implementation of the traditional Unix macro processor.
It is mostly SVR4 compatible, although it has some extensions (for
example, handling more than 9 positional parameters to macros). `m4'
also has built-in functions for including files, running shell commands,
doing arithmetic, etc. Autoconf needs GNU `m4' for generating
`configure' scripts, but not for running them.
This release has several memory corruption patches, closer compliance with
POSIX in some cases, and much improved documentation. It is recommended
that all users of a previous 1.4.x version upgrade, particularly if your
platform does not provide fcvt(3).
New in version 1.4.5: 15 July 2006
* Fix sysval on BeOS, OS/2, and other systems that store exit status
in the low-order byte. Additionally, on Unix platforms, if syscmd was
terminated by a signal, sysval now displays the signal number shifted
left by eight bits, to match traditional m4 implementations.
* The maketemp macro is no longer subject to platform limitations (such as
26 or 32 max files from a given template).
* Frozen files now require that the first directive be V (version), to
better diagnose version mismatch. Additionally, if the F directive
(builtin function) names an unknown builtin that existed in the m4 that
froze the file but not in the current m4 (for example, changeword), the
warning is deferred until an attempt is made to actually use the
builtin. This allows downgrading from beta m4-1.4o to stable m4-1.4.5
without breaking autoconf.
* The format and indir macros are now recognized only with arguments.
* The eval macro no longer crashes on x86 architectures when dividing the
minimum integer by -1.
* On systems with ecvt and fcvt, format no longer truncates trailing
zeroes on integers printed with %.0f. On systems without these
functions, format is no longer subject to a buffer overflow that
permitted arbitrary code execution.
* On native Windows builds, the macro __windows__ is provided instead of
__unix__. Likewise, on OS/2 builds, the macro __os2__ is provided. This
allows input files to determine when syscmd might behave differently.
* Fix bug in 1.4.3 patch to use \n line-endings that did not work for
* When given the empty string or 0, undivert is now documented as a no-op
rather than closing stdout, warning about a non-existent file, or trying
to read a directory as a file.
* Many documentation improvements. Also, the manual is now distributed
under FDL 1.2, rather than a stricter verbatim-only license.
* Raise the -L (--nesting-limit) command line option limit from 250 to
* The decr, incr, divert, m4exit, and substr macros treat an empty number
as 0, issue a warning, and expand as normal; rather than issuing an error
and expanding to the empty string.
* The eval macro now treats an empty radix argument as 10, handles radix 1,
and treats the width argument as number of digits excluding the sign,
for compatibility with other m4 implementations.
* The ifdef, divert, m4exit, substr, and translit macros now correctly
ignore extra arguments.
* The popdef and undefine macros now correctly accept multiple arguments.
* Although changeword is on its last leg, if enabled, it now reverts to the
default (faster) regexp when passed the empty string.
* The regexp and substr macros now warn and ignore a trailing backslash in
the replacement, and warn on \n for n larger than the number of
sub-expressions in the regexp.
Version 1.4.4b - 17 June 2006, by Eric Blake (CVS version 1.4.4a)
* Fix a recursive push_string crashing bug, which affected changequote of
three or more characters on some compilers.
* Use automake to fix build portability issues.
* Fix a recursive m4wrap crashing bug.
* Fix a 1 in 2**32 hash crashing bug.
* Tracing a macro by name is now persistent, even if the macro is
subsequently undefined or redefined. The traceon and traceoff macros no
longer warn about undefined symbols. This solves a crash when using
indir on an undefined macro traced with the -t option, as well as an
incorrect result of ifdef. Furthermore, tracing is no longer transferred
with builtins, solving the bug of "m4 -tm4_eval" failing to give trace
output on the input "define(`m4_eval',defn(`eval'))m4_eval(1)".
* Fix a crash when a macro is undefined while collecting its arguments, by
always using the definition that was in effect before argument
collection. This behavior matches the C pre-processor, and means that
the sequence "define(`f',`1')f(define(`f',`2'))f" is now documented to
result in "12", rather than the previously undocumented "22".
* Update the regex engine to fix several bugs.
* Fix a potential crash on machines where char is signed.
m4-1.4.5 is available now from ftp.gnu.org, along with diffs and xdeltas
against m4-1.4.4 that are also available from ftp.gnu.org. Please use a
mirror to reduce stress on the main gnu machine:
Here are the compressed sources:
Here are the xdeltas and diffs against m4-1.4.4:
Here are the gpg detached signatures:
You should download the signature named after any tarball you download,
and then verify its integrity with, for example:
gpg --verify m4-1.4.5.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver wwwkeys.pgp.net --recv-keys F4850180
Here are the MD5 and SHA1 checksums:
This release was bootstrapped with Autoconf 2.60, Automake 1.9.6, and CVS
Alternatively, you can fetch the unbootstrapped sourcecode from
anonymous cvs by using the following commands:
$ export CVS_RSH=ssh
$ cvs -z3 -d :pserver:address@hidden:/sources/m4 \
co -r release-1_4_5 m4
You will then need to have the latest release versions of Automake (1.9.6)
and Autoconf (2.60) installed, along with a CVS checkout of Gnulib
available, to bootstrap the checked out sources yourself.
Please report bugs to <address@hidden>, along with the output of 'make
check' and any other information that might be useful in resolving the
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v188.8.131.52 (Cygwin)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
|[Prev in Thread]
||[Next in Thread]|
- GNU M4 1.4.5 released,
Eric Blake <=