summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO150
1 files changed, 0 insertions, 150 deletions
diff --git a/TODO b/TODO
deleted file mode 100644
index 9833f034..00000000
--- a/TODO
+++ /dev/null
@@ -1,150 +0,0 @@
-GNU m4 TODO - Tasks that need implementing. -*- outline -*-
-Copyright (C) 2000-2001, 2006-2008, 2010, 2013-2014, 2017 Free Software
-Foundation, Inc.
-
-Tell the maintainers at <bug-m4@gnu.org> if you feel like volunteering
-for any of these ideas or if you have others to add.
-
-* KNOWN BUGS
-
- + 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.
-
- + stack overflow is basically broken
-
- The routines to detect stack overflow throuh segv are basically
- broken. The idea may be fine, but it ends up calling a sigv handler
- that uses gettext, printf, stdout... all of which are definitely NOT
- sig-safe. Pity, because the hardcode routine is basically very careful
- to use write(2), to avoid this.
-
- I haven't checked that translation magic is signal-safe.
- - I doubt it;
- - stdio is not signal-safe in any kind of portable setting anyways.
- --
- Marc Espie
- espie@schutzenberger.liafa.jussieu.fr
-
- Perhaps the gnulib c-stack module or libsigsegv would be useful:
- http://lists.gnu.org/archive/html/bug-gnu-utils/2008-01/msg00042.html
-
-* FEATURES OR PROBLEMS
-
- + m4 should keep an ``execution stack'' of macros, which applications could
- use in their error messages.
-
- + Implement discarding comment delimiters with the syntax table.
-
- + Implement qindir. Like indir, except that the result of the macro call
- is not expanded. Because the input stack might contain a file or a
- string, it is probably best achieved by making note that the TOS input
- should be copied rather than rescanned.
-
- $ echo "a'b" > f
- $ m4
- define(a,z)dnl
- include(f)dnl
- z'b
- indir(`include', f)dnl
- z'b
- qindir(`include', f)dnl
- a'b
- define(b,NONO)dnl
- patsubst(qindir(`include', f), `b', x)
- z'x
-
- + Use the TOS input quoting for qindir to fix this undesirable POSIX
- behavior:
-
- define(`x', -'-)
- define(y, defn(`x'))
- y
- --'
- --
- Stepan Kasal <kasal@ucw.cz>
-
- + If configured --with-gmp for multiple precision arithmetic there are
- some warnings, but it passes the tests.
-
- + Make m4 show include dependencies like gcc so Makefile targets are
- updated when their (included) input files are updated (Erick B).
-
- + Add support for wide character sets.
-
-
-* OPTIMIZATION AND CLEAN UP
-
- + 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.). (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
- too.
-
- + The context parameter is just a placeholder for formerly global state.
- We should be making the library reentrant so that multiple instances
- of m4 can be run in the same process at the same time.
-
- + The path management stuff (in path.c/m4private.h) is reinventing the
- wheel. There are a bunch of fast path management and search functions
- in ltdl.c: These need to be sanitized, exported through ltdl.h, and
- then wrapped by the m4module.h path api. path.c can probably be removed
- entirely at that point.
-
-* MODULE SPECIFIC ISSUES
-
- + Some way of linking a module statically is needed, for systems
- without support for dynamic loading.
-
- + Some sort of module interface versioning system needs to be implemented
- in the module loader and the freezer so that m4 can tell if it is being
- 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')
-
- + Module autoloader. This would allow an m4 core with no builtins except
- for loadmodule(). A default startup script would mark the recognised
- set of builtins for autoload from the installed module directory on first
- use. A new cli parameter would inhibit initialisation from this script,
- so that customised m4 interpreters could be built on the fly!
-
- + The module loader needs to differentiate between modules that are in
- memory and modules that are loaded (i.e. visible) from various context
- structures.
-
- + The perl module should only be built if a suitable perl interpreter
- 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.
-
-
-Local Variables:
-mode: outline
-outline-regexp: " *[-+*.] \\| "
-End:
-
-Copyright (C) 2000, 2006, 2007, 2009, 2010 Free Software Foundation,
-Inc.
-
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.3 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts. A copy of the license is included in the ``GNU Free
-Documentation License'' file as part of this distribution.