aboutsummaryrefslogtreecommitdiffstats
path: root/TODO.xgawk
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.xgawk')
-rw-r--r--TODO.xgawk148
1 files changed, 0 insertions, 148 deletions
diff --git a/TODO.xgawk b/TODO.xgawk
deleted file mode 100644
index 55c5371c..00000000
--- a/TODO.xgawk
+++ /dev/null
@@ -1,148 +0,0 @@
-To-do list for xgawk enhancements:
-
-- In gawkapi.c - review switch statements and use of default.
-
-Low priority:
-
-- Enhance extension/fork.c waitpid to allow the caller to specify the options.
- And add an optional array argument to wait and waitpid in which to return
- exit status information.
-
-Possible future changes requiring (further) discussion:
-
-- Change from dlopen to using the libltdl library (i.e. lt_dlopen).
- This may support more platforms.
-
-- Implement namespaces. Arnold suggested the following in an email:
- - Extend the definition of an 'identifier' to include "." as a valid character
- although an identifier can't start with it.
- - Extension libraries install functions and global variables with names
- that have a "." in them: XML.parse(), XML.name, whatever.
- - Awk code can read/write such variables and call such functions, but they
- cannot define such functions
- function XML.foo() { .. } # error
- or create a variable with such a name if it doesn't exist. This would
- be a run-time error, not a parse-time error.
- - This last rule may be too restrictive.
- I don't want to get into fancy rules a la perl and file-scope visibility
- etc, I'd like to keep things simple. But how we design this is going
- to be very important.
-
-Unlikely:
-
-- Include a sample rpm spec file in a new packaging subdirectory.
-
-- Patch lexer for @include and @load to make quotes optional.
-
-Done:
-
-- Add AWKLIBPATH with default pointing to ${libexecdir}/$PACKAGE/$VERSION
-
-- Change default shared library extension from ".so" to ".$shlibext"
-
-- Patch build infrastructure so that the current code in the
- extension subdirectory gets built and installed into the default $AWKLIBPATH
- location.
-
-- Implement @load
-
-- Patch ERRNO handling to create a simple API for use by extensions:
- extern void update_ERRNO_int(int)
- enum errno_translate { TRANSLATE, DONT_TRANSLATE };
- extern void update_ERRNO_string(const char *string, enum errno_translate);
- extern void unset_ERRNO(void);
-
-- Add valgrind-noleak target.
-
-- Fix minor bug in fork extension, and add wait function.
-
-- Patch filefuncs extension to read symbolic links more robustly.
-
-- Add shared library tests.
-
-- Delete extension/xreadlink.[ch]
-
-- Add a -i (--include) option.
-
-- Enable default ".awk" search in io.c:find_source(). The simple change
- is to add this code inline in io.c:
- #ifndef DEFAULT_FILETYPE
- #define DEFAULT_FILETYPE ".awk"
- #endif
-
-- The -f flag should not eliminate duplicates.
-
-- Eliminate libtool from the top-level configure.ac. Create a separate
- configure.ac in the extensions subdirectory, and hide all the libtool
- stuff in there.
-
-- Running "make install" should install gawkapi.h in /usr/include.
-
-- Add time extension to the gawk distro. This defines sleep and gettimeofday.
- Renamed existing gettimeofday to getlocaltime.
-
-- Finish implementing new interface using gawkapi.h
- - api_get_curfunc_param not honoring requested type in node_to_awk_value
- - should api_sym_lookup also accept a type request?
- - must update the API do_lint value when changed by set_LINT
- - what is the proper return value for load_ext? It does not matter
- unless called by the "extension" function that nobody uses.
-
-- Hide private parts of IOBUF from extensions.
-
-- Fix extension/rwarray.c.
-
-- Fix lint complaints about shared library functions being called without
- having been defined. For example, try:
- gawk --lint -lordchr 'BEGIN {print chr(65)}'
- gawk: warning: function `chr' called but never defined
- A
- In ext.c, make_builtin needs to call awkgram.y:func_use. If done naively,
- I think this would result in complaints about shared library functions
- defined but not used. So there should probably be an enhancement to func_use
- and ftable to indicate if it's a shared library function.
-
-- Develop a libgawk shared library for use by extensions. Should this
- be hosted in a separate project?
-
- A few existing extensions use a hash API for mapping string
- handles to structures. In xgawk, we had this API inside array.c, but it
- probably belongs in a separate libgawk shared library:
-
- typedef struct _strhash strhash;
- extern strhash *strhash_create P((size_t min_table_size));
- /* Find an entry in the hash table. If it is not found, the insert_if_missing
- argument indicates whether a new entry should be created. The caller
- may set the "data" field to any desired value. If it is a new entry,
- "data" will be initialized to NULL. */
- extern strhash_entry *strhash_get P((strhash *, const char *s, size_t len,
- int insert_if_missing));
- typedef void (*strhash_delete_func)(void *data, void *opaque,
- strhash *, strhash_entry *);
- extern int strhash_delete P((strhash *, const char *s, size_t len,
- strhash_delete_func, void *opaque));
- extern void strhash_destroy P((strhash *, strhash_delete_func, void *opaque));
-
-- Separate projects for major standalone extensions. We need to set up
- hosting for these projects:
-
- - XML
-
- - PostgreSQL
-
- - GD
-
- - MPFR. This is probably not useful now that MPFR support has been
- integrated into gawk. Are there any users who need this extension?
-
-- Review open hook implementation.
- * Mostly done.
- * Still to go: Rework iop_alloc, interaction with open hooks, and
- skipping command line directories.
-
-- Attempting to load the same file with -f and -i (or @include) should
- be a fatal error.
-
-- Consider adding a way to access gawk special vars read only.
-
-- Review macros (force_string etc.)