/[m4]/m4/ChangeLog
ViewVC logotype

Diff of /m4/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.174 by gary, Fri Jun 13 13:54:34 2003 UTC revision 1.175 by gary, Mon Jun 16 10:43:44 2003 UTC
# Line 1  Line 1 
1    2003-06-16  Gary V. Vaughan  <gary@gnu.org>
2    
3            Begin work on lifting the curse of the global variables.  To start
4            with create a `struct m4' context container, and replace
5            `m4__symtab' with `context->symtab' throughout.  This means
6            initialising a context container in main, and adjusting many
7            functions between main and the module entry points so that the
8            container gets passed through.  It would have been nice to
9            defer this until after 1.5, but it has a major effect on the
10            user's module writing ABI, so it needs to be addressed now - at
11            least in the areas that impact the ABI.  An interrelatated change
12            in the symtab API removes the dependency on a global symbol table,
13            and instead focuses on a passed table (from the context
14            container).
15    
16            * TODO: Reminders for finishing context functionality.
17            * m4/Makefile.am (libm4_la_SOURCES): Add m4.c.
18            * m4/m4.c: New file. Manage new struct m4 objects to eliminate
19            global variables and eventually allow m4 to be reentrant.
20            * m4/m4private.h (m4): Define the new structure here...
21            (M4_SYMTAB, m4_get_symtab): ...so we can have fast accessors that
22            don't carry the overhead of a function call.
23            * m4/m4module.h: Prototype extern functions from m4/m4.c.
24            (m4): Declare type for new struct m4 objects.
25            (M4SYMTAB): User macro to ease finding the symbol table for the
26            current context for module developers.
27            (m4_symbol_token): Renamed to m4_symbol_set_token which contains a
28            verb.
29            (M4_BUILTIN, m4_builtin_func, M4_BUILTIN_HANDLER)
30            (m4_builtin_define, m4_builtin_pushdef, m4_builtin_table_install)
31            (m4_call_macro, m4_dump_symbols, m4_expand_input)
32            (M4_FINISH_HANDLER, M4_INIT_HANDLE, m4_macro_define)
33            (m4_macro_pushdef, m4_macro_table_install, m4_module_load)
34            (m4_module_unload, m4_process_macro, m4_symbol_set_token): Add an
35            m4* context parameter. Changed definitions and all callers.
36            (m4_symtab): Alias for m4_hash to decouple the
37            m4_symtab api from m4_hash.
38            (m4_symtab_apply, m4_symtab_apply_func): Use m4_symtab instead of
39            m4_hash.
40            (m4_symtab_create): New function to return an initialised
41            m4_symtab.
42            (m4_symtab_delete): New function to delete an m4_symtab's memory.
43            (m4_symbol_define, m4_symbol_delete, m4_symbol_lookup)
44            (m4_symbol_popdef, m4_symbol_pushdef): Add an m4_symtab parameter
45            instead of simply using the global m4__symtab.  Changed
46            definitions and all callers.
47            * m4/m4private.h (m4__symtab_remove_module_references): Ditto.
48            * m4/symtab.c (m4__symtab_init, m4__symtab_exit): Removed.
49            * src/main.c (main): Create a context and use that instead of the
50            former global m4__symtab.
51    
52  2003-06-13  Gary V. Vaughan  <gary@gnu.org>  2003-06-13  Gary V. Vaughan  <gary@gnu.org>
53    
54          * m4/hash.c (m4_hash_apply): Pass an initial hash table parameter          * m4/hash.c (m4_hash_apply): Pass an initial hash table parameter

Legend:
Removed from v.1.174  
changed lines
  Added in v.1.175

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26