1 |
GNU m4 TODO - Tasks that need implementing. -*- outline -*- |
GNU m4 TODO - Tasks that need implementing. -*- outline -*- |
2 |
Copyright 2000 Free Software Foundation, Inc. |
Copyright 2000, 2001 Free Software Foundation, Inc. |
3 |
|
|
4 |
Tell the maintainers at <bug-m4@gnu.org> if you feel like volunteering |
Tell the maintainers at <bug-m4@gnu.org> if you feel like volunteering |
5 |
for any of these ideas or if you have others to add. |
for any of these ideas or if you have others to add. |
69 |
maintaining the string lengths, and avoiding strlen, strcpy, |
maintaining the string lengths, and avoiding strlen, strcpy, |
70 |
etc.). |
etc.). |
71 |
|
|
|
+ The symbol table needs a complete reimplementation, so that it tracks |
|
|
the module responsible for each of the symbols it contains. This would |
|
|
not only speed up module unloading immensely, but simplfy the code |
|
|
considerably too. |
|
|
|
|
|
+ Much of the code could be improved by providing a resizing hash table |
|
|
ADT, and wrapping symtab and the various searchable internal |
|
|
structures around it. |
|
|
|
|
72 |
+ --with-gmp is surplus to requirements, mpeval should always be built -- |
+ --with-gmp is surplus to requirements, mpeval should always be built -- |
73 |
either with libgmp if it is available, or else without it. Whether |
either with libgmp if it is available, or else without it. Whether |
74 |
or not to use mpeval is then determined at runtime, if the user tries |
or not to use mpeval is then determined at runtime, if the user tries |
75 |
to `load(`mpeval')'. |
to `load(`mpeval')'. |
76 |
|
|
|
+ The `shadowed' flag in every symbol is only used by m4_dump_symbol(), |
|
|
and could be determined instead by the presence of an identically |
|
|
named symbol immediately proir to this one in the hash bucket. So |
|
|
doing would slow down dumpdef, but speed up the rest of the symbol |
|
|
handling code, and reduce the memory overhead per symbol. |
|
|
|
|
77 |
|
|
78 |
* MODULE SPECIFIC ISSUES |
* MODULE SPECIFIC ISSUES |
79 |
|
|
89 |
|
|
90 |
append(__modulepath__, `/some/modules/live/here') |
append(__modulepath__, `/some/modules/live/here') |
91 |
|
|
|
+ m4_finish_module should take an obstack argument to allow a module |
|
|
to pass an expansion back to the caller. |
|
|
|
|
92 |
+ Module autoloader. This would allow an m4 core with no builtins except |
+ Module autoloader. This would allow an m4 core with no builtins except |
93 |
for loadmodule(). A default startup script would mark the recognised |
for loadmodule(). A default startup script would mark the recognised |
94 |
set of builtins for autoload from the installed module directory on first |
set of builtins for autoload from the installed module directory on first |