This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU M4 source repository".
http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=724c9cba4f9e8f7925d93f5aaa9899de8fa37f30 The branch, master has been updated via 724c9cba4f9e8f7925d93f5aaa9899de8fa37f30 (commit) via 14b8a31efabcfcd3add902710063d1381576fda2 (commit) from 6033d89900055dc73c1f2f7dbe5c956f4cadc334 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 724c9cba4f9e8f7925d93f5aaa9899de8fa37f30 Author: Eric Blake <[email protected]> Date: Fri Jun 26 20:35:39 2009 -0600 Use bitrotate for hashing. * gnulib: Update to latest. * ltdl/m4/gnulib-cache.m4: Import bitrotate module. * m4/hash.c (m4_hash_string_hash): Use it. Signed-off-by: Eric Blake <[email protected]> (cherry picked from commit 891a0fd44d0666fc0576071ec9866cb2b87490eb) commit 14b8a31efabcfcd3add902710063d1381576fda2 Author: Eric Blake <[email protected]> Date: Fri Jun 26 19:27:48 2009 -0600 Fix description of limits on diversions. * doc/m4.texinfo (Diversions): Fix grammar. Be less pessimistic about limitations. * THANKS: Update. Reported by Elias Benali. Signed-off-by: Eric Blake <[email protected]> (cherry picked from commit cd172d932ce467b2c592eb9a603962b280aa0570) ----------------------------------------------------------------------- Summary of changes: ChangeLog | 13 +++++++++++++ THANKS | 3 +++ doc/m4.texinfo | 9 ++++----- gnulib | 2 +- ltdl/m4/gnulib-cache.m4 | 3 ++- m4/hash.c | 6 ++++-- 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4cc52e5..70f7bcc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2009-06-26 Eric Blake <[email protected]> + + Use bitrotate for hashing. + * gnulib: Update to latest. + * ltdl/m4/gnulib-cache.m4: Import bitrotate module. + * m4/hash.c (m4_hash_string_hash): Use it. + + Fix description of limits on diversions. + * doc/m4.texinfo (Diversions): Fix grammar. Be less pessimistic + about limitations. + * THANKS: Update. + Reported by Elias Benali. + 2009-06-17 Eric Blake <[email protected]> Stress test for hash resizing. diff --git a/THANKS b/THANKS index 4a2d06c..0d5295a 100644 --- a/THANKS +++ b/THANKS @@ -39,6 +39,7 @@ Daniel Richard G. [email protected] David J. MacKenzie [email protected] David Perlin [email protected] Elbert Pol [email protected] +Elias Benali [email protected] Erez Zadok [email protected] Eric Allman [email protected] Eric Backus [email protected] @@ -61,7 +62,9 @@ Ian Taylor [email protected] Ilya N. Golubev [email protected] Jan Djarv [email protected] Jason Merrill [email protected] +Jay Krell [email protected] Jean-Charles Longuet [email protected] +Jens Rehsack [email protected] Jim Avera [email protected] Jim Kingdom [email protected] Jim Meyering [email protected] diff --git a/doc/m4.texinfo b/doc/m4.texinfo index 6408881..2a31238 100644 --- a/doc/m4.texinfo +++ b/doc/m4.texinfo @@ -6110,17 +6110,16 @@ time. @cindex @env{TMPDIR} Numbered diversions are counted from 0 upwards, diversion number 0 -being the normal output stream. The number of simultaneous diversions -is limited mainly by the memory used to describe them, because @acronym{GNU} +being the normal output stream. @acronym{GNU} @code{m4} tries to keep diversions in memory. However, there is a -limit to the overall memory usable by all diversions taken altogether +limit to the overall memory usable by all diversions taken together (512K, currently). When this maximum is about to be exceeded, a temporary file is opened to receive the contents of the biggest diversion still in memory, freeing this memory for other diversions. When creating the temporary file, @code{m4} honors the value of the environment variable @env{TMPDIR}, and falls back to @file{/tmp}. -So, it is theoretically possible that the number and aggregate size of -diversions is limited only by available disk space. +Thus, the amount of available disk space provides the only real limit on +the number and aggregate size of diversions. Diversions make it possible to generate output in a different order than the input was read. It is possible to implement topological sorting diff --git a/gnulib b/gnulib index dcc2f67..836f397 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit dcc2f67b6ffab6e9def088ccbf7627edcda4bbac +Subproject commit 836f3974faad2f3de7bafd46719b77d6632a4c96 diff --git a/ltdl/m4/gnulib-cache.m4 b/ltdl/m4/gnulib-cache.m4 index d72313b..ec907ec 100644 --- a/ltdl/m4/gnulib-cache.m4 +++ b/ltdl/m4/gnulib-cache.m4 @@ -15,7 +15,7 @@ # Specification in the form of a command-line invocation: -# gnulib-tool --import --dir=. --local-dir=local --lib=libgnu --source-base=gnu --m4-base=ltdl/m4 --doc-base=doc --tests-base=tests/gnu --aux-dir=build-aux --with-tests --libtool --macro-prefix=M4 assert autobuild avltree-oset binary-io clean-temp cloexec close-stream closein config-h configmake dirname error execute exit fdl-1.3 fflush filenamecat flexmember fopen fopen-safer freadptr freadseek fseeko gendocs gettext git-version-gen gnumakefile gnupload gpl-3.0 intprops memchr2 memcmp2 memmem mkstemp obstack obstack-printf-posix pipe progname propername quote regex regexprops-generic rename snprintf-posix sprintf-posix stdbool stdlib-safer strnlen strtod strtol tempname unlocked-io vasnprintf-posix verify verror wait-process xalloc xalloc-die xmemdup0 xprintf-posix xstrndup xvasprintf-posix +# gnulib-tool --import --dir=. --local-dir=local --lib=libgnu --source-base=gnu --m4-base=ltdl/m4 --doc-base=doc --tests-base=tests/gnu --aux-dir=build-aux --with-tests --libtool --macro-prefix=M4 assert autobuild avltree-oset binary-io bitrotate clean-temp cloexec close-stream closein config-h configmake dirname error execute exit fdl-1.3 fflush filenamecat flexmember fopen fopen-safer freadptr freadseek fseeko gendocs gettext git-version-gen gnumakefile gnupload gpl-3.0 intprops memchr2 memcmp2 memmem mkstemp obstack obstack-printf-posix pipe progname propername quote regex regexprops-generic rename snprintf-posix sprintf-posix stdbool stdlib-safer strnlen strtod strtol tempname unlocked-io vasnprintf-posix verify verror wait-process xalloc xalloc-die xmemdup0 xprintf-posix xstrndup xvasprintf-posix # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([local]) @@ -24,6 +24,7 @@ gl_MODULES([ autobuild avltree-oset binary-io + bitrotate clean-temp cloexec close-stream diff --git a/m4/hash.c b/m4/hash.c index c07b62d..a016fbf 100644 --- a/m4/hash.c +++ b/m4/hash.c @@ -1,5 +1,6 @@ /* GNU m4 -- A simple macro processor - Copyright (C) 2001, 2006, 2007, 2008 Free Software Foundation, Inc. + Copyright (C) 2001, 2006, 2007, 2008, 2009 Free Software + Foundation, Inc. Written by Gary V. Vaughan <[email protected]> This file is part of GNU M4. @@ -28,6 +29,7 @@ #include "hash.h" #include "m4private.h" +#include "bitrotate.h" #include <limits.h> typedef struct hash_node hash_node; @@ -650,7 +652,7 @@ m4_hash_string_hash (const void *ptr) size_t val = len; while (len--) - val = (val << 7) + (val >> (sizeof val * CHAR_BIT - 7)) + to_uchar (*s++); + val = rotl_sz (val, 7) + to_uchar (*s++); return val; } hooks/post-receive -- GNU M4 source repository
