[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
m4 ./ChangeLog ./TODO m4/Makefile.am m4/builtin...
From: |
Gary V. Vaughan |
Subject: |
m4 ./ChangeLog ./TODO m4/Makefile.am m4/builtin... |
Date: |
Mon, 16 Jun 2003 06:43:45 -0400 |
CVSROOT: /cvsroot/m4
Module name: m4
Branch:
Changes by: Gary V. Vaughan <address@hidden> 03/06/16 06:43:45
Modified files:
. : ChangeLog TODO
m4 : Makefile.am builtin.c m4module.h m4private.h
macro.c module.c symtab.c utility.c
modules : evalparse.c gnu.c load.c m4.c
src : freeze.c m4.h main.c stackovf.c
Added files:
m4 : m4.c
Log message:
Begin work on lifting the curse of the global variables. To start
with create a `struct m4' context container, and replace
`m4__symtab' with `context->symtab' throughout. This means
initialising a context container in main, and adjusting many
functions between main and the module entry points so that the
container gets passed through. It would have been nice to
defer this until after 1.5, but it has a major effect on the
user's module writing ABI, so it needs to be addressed now - at
least in the areas that impact the ABI. An interrelatated change
in the symtab API removes the dependency on a global symbol table,
and instead focuses on a passed table (from the context
container).
* TODO: Reminders for finishing context functionality.
* m4/Makefile.am (libm4_la_SOURCES): Add m4.c.
* m4/m4.c: New file. Manage new struct m4 objects to eliminate
global variables and eventually allow m4 to be reentrant.
* m4/m4private.h (m4): Define the new structure here...
(M4_SYMTAB, m4_get_symtab): ...so we can have fast accessors that
don't carry the overhead of a function call.
* m4/m4module.h: Prototype extern functions from m4/m4.c.
(m4): Declare type for new struct m4 objects.
(M4SYMTAB): User macro to ease finding the symbol table for the
current context for module developers.
(m4_symbol_token): Renamed to m4_symbol_set_token which contains a
verb.
(M4_BUILTIN, m4_builtin_func, M4_BUILTIN_HANDLER)
(m4_builtin_define, m4_builtin_pushdef, m4_builtin_table_install)
(m4_call_macro, m4_dump_symbols, m4_expand_input)
(M4_FINISH_HANDLER, M4_INIT_HANDLE, m4_macro_define)
(m4_macro_pushdef, m4_macro_table_install, m4_module_load)
(m4_module_unload, m4_process_macro, m4_symbol_set_token): Add an
m4* context parameter. Changed definitions and all callers.
(m4_symtab): Alias for m4_hash to decouple the
m4_symtab api from m4_hash.
(m4_symtab_apply, m4_symtab_apply_func): Use m4_symtab instead of
m4_hash.
(m4_symtab_create): New function to return an initialised
m4_symtab.
(m4_symtab_delete): New function to delete an m4_symtab's memory.
(m4_symbol_define, m4_symbol_delete, m4_symbol_lookup)
(m4_symbol_popdef, m4_symbol_pushdef): Add an m4_symtab parameter
instead of simply using the global m4__symtab. Changed
definitions and all callers.
* m4/m4private.h (m4__symtab_remove_module_references): Ditto.
* m4/symtab.c (m4__symtab_init, m4__symtab_exit): Removed.
* src/main.c (main): Create a context and use that instead of the
former global m4__symtab.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/ChangeLog.diff?tr1=1.174&tr2=1.175&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/TODO.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/m4.c?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/Makefile.am.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/builtin.c.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/m4module.h.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/m4private.h.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/macro.c.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/module.c.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/symtab.c.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/m4/utility.c.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/evalparse.c.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/gnu.c.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/load.c.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/modules/m4.c.diff?tr1=1.38&tr2=1.39&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/src/freeze.c.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/src/m4.h.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.37&tr2=1.38&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/m4/m4/src/stackovf.c.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- m4 ./ChangeLog ./TODO m4/Makefile.am m4/builtin...,
Gary V. Vaughan <=