[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
m4 ./ChangeLog ./NEWS doc/m4.texinfo m4/Makefil...
From: |
Gary V. Vaughan |
Subject: |
m4 ./ChangeLog ./NEWS doc/m4.texinfo m4/Makefil... |
Date: |
Sat, 01 Sep 2001 13:05:27 -0700 |
CVSROOT: /cvsroot/m4
Module name: m4
Changes by: Gary V. Vaughan <address@hidden> 01/09/01 13:05:27
Modified files:
. : ChangeLog NEWS
doc : m4.texinfo
m4 : Makefile.am builtin.c m4module.h m4private.h
macro.c module.c symtab.c system.h utility.c
xmalloc.c
modules : format.c gnu.c m4.c
src : freeze.c main.c
Log message:
The shadowing mechanism and, infact, the whole symbol table
implementation was creaking under the weight of the features piled
on top of it. We now have a separate hash table module which will
dynamically resize to keep symbol density withing good performace
limits, and a new symtab module layered above it. Symbol lookups
are now marginally more efficient (since the shadowed flag is no
longer required) and symbol removal, such as on module unload, is
considerably faster due to a reorganisation of the data structures
used in symtab.c.
* src/main.c (main): Don't mention `-H'.
* doc/m4.texinfo (Invoking m4): Document that -H no longer has any
effect.
* NEWS: Updated.
* m4/hash.c: New generalised dynamic hash table data structure
management module.
* m4/hash.h: Public interface.
* m4/Makefile.am (pkginc_HEADERS): Add hash.h.
(libm4_la_SOURCES): Add hash.c.
* m4/symtab.c: More or less rewritten from scratch, within the
bounds of the previous API.
(m4_symtab_apply): A cleaner version of the old hack_all_symbols
call. Updated all callers.
* m4/m4module.c: #include <m4/hash.h>, and changed all affected
declarations to reflect API changes.
(M4INIT): Generate a declaration too, to avoid the warning with
--enable-debug builds.
(M4FINISH): Ditto.
(HASHMAX): Removed.
* m4/utility.c (hash_table_size): Removed.
(m4_dump_symbols): Rewritten to build and qsort an array of symbol
names, which are then looked up by builtin_dumpdef() as necessary.
This implies a small speedup in builtin_symbols(), which discarded
all of the symbol info under the old call.
* m4/m4private.h (m4_symbol): Removed shadowed flag -- symbol
shadowing is implicit in respect to the new data structures.
symbol names are no longer duplicated here, they are stored in the
key field of the hash table.
Moved macro_args and blind_no_args...
(m4_token_data): ...to here.
m4/macro.c (expand_macro): Added a name argument since the symbol
name is no longer copied into each struct m4_symbol. Modified all
callers.
(collect_arguments): Ditto.
* modules/m4.c (set_trace): Ditto.
* modules/gnu.c (builtin_symbols): Updated.
* src/freeze.c (produce_symbol_dump): Much improved in light of
the improved symbol table layout.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/ChangeLog.diff?tr1=1.82&tr2=1.83&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/NEWS.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/doc/m4.texinfo.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/Makefile.am.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/builtin.c.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/m4module.h.diff?tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/m4private.h.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/macro.c.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/module.c.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/symtab.c.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/system.h.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/utility.c.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/xmalloc.c.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/format.c.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/gnu.c.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/m4.c.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/src/freeze.c.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/src/main.c.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- m4 ./ChangeLog ./NEWS doc/m4.texinfo m4/Makefil...,
Gary V. Vaughan <=