m4-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU M4 source repository branch, master, updated. cvs-readonly-38-


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, master, updated. cvs-readonly-38-ge173b6e
Date: Tue, 15 Jan 2008 04:55:45 +0000

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=e173b6eba5a368103502f281805dd38489475447

The branch, master has been updated
       via  e173b6eba5a368103502f281805dd38489475447 (commit)
       via  1cb7815415079b947f6974d7708d6da4a659783a (commit)
      from  0706b4d0de3ff3d43661911899f8eaf25498adb7 (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 e173b6eba5a368103502f281805dd38489475447
Author: Eric Blake <address@hidden>
Date:   Mon Jan 14 21:55:45 2008 -0700

    * TODO: Update with some newer URLs.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 1cb7815415079b947f6974d7708d6da4a659783a
Author: Eric Blake <address@hidden>
Date:   Mon Jan 14 21:43:02 2008 -0700

    Verify linear `index'.
    
    * tests/builtins.at (index): New test.
    (translit): Make test take longer, to make quadratic algorithms
    more apparent.
    
    Signed-off-by: Eric Blake <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog         |    9 +++++++++
 TODO              |   33 ++++++++++++++++++++++++++-------
 tests/builtins.at |   51 +++++++++++++++++++++++++++++++++++++++++++--------
 3 files changed, 78 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b3f48a2..f7e861b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-01-15  Eric Blake  <address@hidden>
+
+       * TODO: Update with some newer URLs.
+
+       Verify linear `index'.
+       * tests/builtins.at (index): New test.
+       (translit): Make test take longer, to make quadratic algorithms
+       more apparent.
+
 2007-12-20  Eric Blake  <address@hidden>
 
        Stage 9: share rather than copy single-arg refs.
diff --git a/TODO b/TODO
index 43eaa47..78ee259 100644
--- a/TODO
+++ b/TODO
@@ -1,12 +1,18 @@
 GNU m4 TODO - Tasks that need implementing.            -*- outline -*-
-Copyright (C) 2000, 2001, 2006, 2007 Free Software Foundation, Inc.
+Copyright (C) 2000, 2001, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 Tell the maintainers at <address@hidden> if you feel like volunteering
 for any of these ideas or if you have others to add.
 
 * KNOWN BUGS
 
-  + m4wrap.1.test fail on Solaris 2.6 using egcs 1.1a compiler (Erick B).
+  + The following patch needs to be ported from the branch:
+    http://lists.gnu.org/archive/html/m4-patches/2007-03/msg00005.html
+    May be a couple of issues in that thread.
+
+  + The format builtin needs more power to be like printf(1):
+    http://lists.gnu.org/archive/html/m4-discuss/2007-05/msg00015.html
+    But be aware of compatibility issues in making too many changes.
 
   + The test case `other-tests/stackovf.test' does not work.
 
@@ -51,7 +57,8 @@ for any of these ideas or if you have others to add.
       patsubst(qindir(`include', f), `b', x)
       z'x
 
-  + Use the TOS input quoting for qindir to fix this bug:
+  + Use the TOS input quoting for qindir to fix this undesirable POSIX
+    behavior:
 
       define(`x', -'-)
       define(y, defn(`x'))
@@ -74,7 +81,7 @@ for any of these ideas or if you have others to add.
   + Have NULs go really undisturbed through GNU m4
        GNU m4 is lousy regarding NULs in streams (this would require
        maintaining the string lengths, and avoiding strlen, strcpy,
-       etc.).
+       etc.).  (Almost there, once argv_ref is ported).
 
   + The argument count limits are handled for all tokens passed around by
     the internals:  we should enable attaching these values to text macros
@@ -100,6 +107,10 @@ for any of these ideas or if you have others to add.
     asked to load a frozen file that requires versions of modules with
     interface versions unsupported by the current release.
 
+  + The module API should probably use functions, not data exports:
+    http://lists.gnu.org/archive/html/m4-patches/2007-09/msg00012.html
+    Actually, there are several good ideas for module in that thread.
+
   + Setting of the module search path within m4 scripts:
 
        append(__modulepath__, `/some/modules/live/here')
@@ -115,9 +126,17 @@ for any of these ideas or if you have others to add.
     structures.
 
   + The perl module should only be built if a suitable perl interpreter
-    is found on the build machine.
+    is found on the build machine.  For that matter, it has been a
+    while since the perl module has even been built, and perl has had
+    new releases in the meantime.
 
 * OTHER TOOLS
 
-  + Automake 1.5 doesn't seem to like pkglibexec_LTLIBRARIES +=
-    See modules/Makefile.am.
+  + Automake 1.11 will allow some Makefile.am cleanups:
+    http://lists.gnu.org/archive/html/m4-patches/2007-08/msg00008.html
+
+  + Copy coreutils' idea of using rsync, not wget, for grabbing .po
+    files efficiently.
+
+  + Use gnulib's build-aux/git-version-gen for reliable version
+    numbers, now that CVS timestamps are no longer available.
diff --git a/tests/builtins.at b/tests/builtins.at
index c68ab33..b8d5386 100644
--- a/tests/builtins.at
+++ b/tests/builtins.at
@@ -1,5 +1,5 @@
 # Hand crafted tests for GNU M4.                               -*- Autotest -*-
-# Copyright (C) 2001, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 # This file is part of GNU M4.
 #
@@ -524,6 +524,36 @@ AT_CLEANUP
 
 
 ## ----- ##
+## index ##
+## ----- ##
+
+AT_SETUP([index])
+
+dnl This used to be quadratic, taking millions of comparisons,
+dnl but should now operate in linear time with only several thousand checks.
+AT_DATA([in], [M4_ONE_MEG_DEFN[dnl
+index(substr(f, `0', `500000')-, substr(f, `0', `100000')-)
+]])
+AT_CHECK_M4([in], [0], [[400000
+]])
+
+dnl This validates that index is 8-bit safe.
+AT_DATA([in], [[index(`1«2', `»')
+index(`1«2', `«')
+index(`1«2', `«1')
+index(`1«2', `«2')
+]])
+AT_CHECK_M4([in], [0], [[-1
+1
+-1
+1
+]])
+
+AT_CLEANUP
+
+
+
+## ----- ##
 ## indir ##
 ## ----- ##
 
@@ -1071,15 +1101,20 @@ z
 tmfs not fnix
 ]])
 
-dnl This used to be quadratic, taking more than 25 million comparisons,
+dnl This used to be quadratic, taking millions of comparisons,
 dnl but should now operate in linear time with only several thousand checks.
-AT_DATA([[in]],
-[[translit(`a]m4_for([i],[1],[5000],[],[[b]])[',
- `]m4_for([i],[1],[5000],[],[[a]])[b',
- `c]m4_for([i],[1],[5000],[],[[d]])[')
+AT_DATA([in], [M4_ONE_MEG_DEFN[dnl
+define(`a_', translit(substr(f, `0', `50000'), `
+', `a'))dnl
+define(`b_', translit(substr(f, `0', `50000'), `
+', `b'))dnl
+define(`d_', translit(substr(f, `0', `50000'), `
+', `d'))dnl
+define(`c'd_, `pass')dnl
+translit(`a'b_, a_`b', `c'd_)
+]])
+AT_CHECK_M4([in], [0], [[pass
 ]])
-AT_CHECK_M4([in], [0], [[c]m4_for([i],[1],[5000],[],[[d]])
-])
 
 dnl This validates that ranges are built using unsigned chars.
 AT_DATA([in], [[translit(`«abc~', `~-»')


hooks/post-receive
--
GNU M4 source repository




reply via email to

[Prev in Thread] Current Thread [Next in Thread]