gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, master, updated. 926ec51aed30a7c0091ad74


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. 926ec51aed30a7c0091ad7433332898371b0b418
Date: Sat, 24 Nov 2012 18:18:33 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  926ec51aed30a7c0091ad7433332898371b0b418 (commit)
       via  72c4c0c07b3276ea59498af9c4d7d21492382b28 (commit)
      from  5045e46ea4200ddc4aa825974b1f51eac72c93aa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=926ec51aed30a7c0091ad7433332898371b0b418

commit 926ec51aed30a7c0091ad7433332898371b0b418
Author: Arnold D. Robbins <address@hidden>
Date:   Sat Nov 24 20:18:05 2012 +0200

    Merged various files into one TODO.

diff --git a/FUTURES b/FUTURES
deleted file mode 100644
index 861cf50..0000000
--- a/FUTURES
+++ /dev/null
@@ -1,95 +0,0 @@
-  Copyright (C) 2005, 2006, 2010, 2011, 2012 Free Software Foundation, Inc.
-  
-  Copying and distribution of this file, with or without modification,
-  are permitted in any medium without royalty provided the copyright
-  notice and this notice are preserved.
-
-This file lists future projects and enhancements for gawk.  Items are listed
-in roughly the order they will be done for a given release.  This file is
-mainly for use by the developers to help keep themselves on track, please
-don't bug us too much about schedules or what all this really means.
-
-For 4.1
-=======
-       DONE: Merge gawk/pgawk/dgawk into one executable
-
-       DONE: Merge xmlgawk -l feature
-
-       DONE: Merge xmlgawk XML extensions (via source forge project that
-             works with new API)
-
-       DONE: Integrate MPFR to provide high precision arithmetic.
-
-       DONE: Implement designed API for loadable modules
-
-       DONE: Redo the loadable modules interface from the awk level.
-
-       DONE: Consider really implementing BWK awk SYMTAB for seeing what
-       global variables are defined.
-
-       Continue code reviews / code cleanup
-               - Nuking overly deep macros...
-
-       Consider making shadowed variables a warning and not
-       a fatal warning when -lint=fatal
-
-For 4.2
-=======
-       Think about how to generalize indirect access. Manuel Collado
-       suggests things like
-
-               foo = 5
-               @"foo" += 4
-
-       Also needed:
-
-               indirect calls of built-ins
-               indirect calls of extension functions
-               indirect through array elements, not just scalar variables
-
-       Consider relaxing the strictness of --posix.
-
-       Consider removing use of and/or need for the protos.h file.
-
-       Consider moving var_value info into Node_var itself
-       to reduce memory usage.
-
-       Rework management of array index storage. (Partially DONE.)
-
-       DBM storage of awk arrays. Try to allow multiple dbm packages.
-
-       ? Add an optional base to strtonum, allowing 2-36.
-
-       ? Optional third argument for index indicating where to start the
-       search.
-
-       ?? A RECLEN variable for fixed-length record input. PROCINFO["RS"]
-       would be "RS" or "RECLEN" depending upon what's in use.
-       *** Could be done as an extension.
-
-       ?? Use a new or improved dfa and/or regex library.
-
-       ??? Gnulib
-
-Probably never:
-===============
-       Do an optimization pass over parse tree?
-
-       Consider integrating Fred Fish's DBUG library into gawk.
-
-       Make    awk '/foo/' files...    run at egrep speeds (how?)
-
-       ? Have strftime() pay attention to the value of ENVIRON["TZ"]
-
-       Add a lint check if the return value of a function is used but
-       the function did not supply a value.
-
-       Consider making gawk output +nan for NaN values so that it
-       will accept its own output as input.
-               NOTE: Investigated this.  GLIBC formats NaN as '-nan'
-               and -NaN as 'nan'.  Dealing with this is not simple.
-
-       Enhance FIELDWIDTHS with some way to indicate "the rest of the record".
-       E.g., a length of 0 or -1 or something.  May be "n"?
-
-       Make FIELDWIDTHS be an array?
diff --git a/TODO b/TODO
index aaf2331..f62f02f 100644
--- a/TODO
+++ b/TODO
@@ -1,27 +1,145 @@
-Add debugger commands to reference card  ??
-Review all FIXME and TODO comments
+Sat Nov 24 20:09:56 IST 2012
+============================
 
-FIX regular field splitting to use FPAT algorithm.
+There were too many files tracking different thoughts and ideas for
+things to do, or consider doing.  This file merges them into one. As
+tasks are completed, they should be moved to the DONE section, below,
+or simply removed.
 
-Look at function order within files.
+Upon creation of a release (major or patch release), items from the
+previous release should be removed.
 
-regex.h - remove underscores in param names (for 4.1)
+TODO
+====
 
-Really make failure to open a socket a non-fatal error (for 4.1).
+Minor Cleanups and Code Improvements
+------------------------------------
+       ?? Add debugger commands to reference card
 
-?? Scope IDs for IPv6 addresses ??
+       FIX regular field splitting to use FPAT algorithm.
 
-DONE: Merge the chapter and the appendix on floating-point math (for 4.1).
+       Look at function order within files.
 
-Look at code coverage tools, like S2E: https://s2e.epfl.ch/
+       regex.h - remove underscores in param names
 
-From Andy: Review the following test cases that they work with make diffout.
-These look suspicious: mmap8k, fmtspcl (the mpfr case), clobber, getlnbuf,
-rtlenmb, profile1, rand (mpfr case).
+       From Andy: Review the following test cases that they work with make 
diffout.
+       These look suspicious: mmap8k, fmtspcl (the mpfr case), clobber, 
getlnbuf,
+       rtlenmb, profile1, rand (mpfr case).
 
-------
+       Add tests for patches in emails (?? - not sure now what this referred 
to)
 
-Code Review:
+       In gawkapi.c - review switch statements and use of default.
+
+       Consider removing use of and/or need for the protos.h file.
+
+       Consider moving var_value info into Node_var itself
+       to reduce memory usage.
+
+       Add macros for working with flags instead of using & and | directly.
+
+       Review the bash source script for working with shared libraries in
+       order to nuke the use of libtool.
+
+Minor New Features
+------------------
+
+       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.
+
+       Consider relaxing the strictness of --posix.
+
+       ? Add an optional base to strtonum, allowing 2-36.
+
+       ? Optional third argument for index indicating where to start the
+       search.
+
+Major New Features
+------------------
+       Think about how to generalize indirect access. Manuel Collado
+       suggests things like
+
+               foo = 5
+               @"foo" += 4
+
+       Also needed:
+
+               indirect calls of built-ins
+               indirect calls of extension functions
+               indirect through array elements, not just scalar variables
+
+       Rebase and integration of array_iface branch.
+
+       Rework management of array index storage. (Partially DONE.)
+
+       Consider using an atom table for all string array indices.
+
+       DBM storage of awk arrays. Try to allow multiple dbm packages.
+
+       ?? A RECLEN variable for fixed-length record input. PROCINFO["RS"]
+       would be "RS" or "RECLEN" depending upon what's in use.
+       *** Could be done as an extension?
+
+       ?? Use a new or improved dfa and/or regex library.
+
+Things To Think About That May Never Happen
+-------------------------------------------
+       ?? Scope IDs for IPv6 addresses ??
+
+       ??? Gnulib
+
+       Consider making shadowed variables a warning and not
+       a fatal warning when -lint=fatal.
+
+       Similar for extra parameters in a function call.
+
+       Look at code coverage tools, like S2E: https://s2e.epfl.ch/
+
+       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.
+
+       Include a sample rpm spec file in a new packaging subdirectory.
+
+       Patch lexer for @include and @load to make quotes optional.
+
+       Do an optimization pass over parse tree?
+
+       Consider integrating Fred Fish's DBUG library into gawk.
+
+       Make    awk '/foo/' files...    run at egrep speeds (how?)
+
+       ? Have strftime() pay attention to the value of ENVIRON["TZ"]
+
+       Add a lint check if the return value of a function is used but
+       the function did not supply a value.
+
+       Consider making gawk output +nan for NaN values so that it
+       will accept its own output as input.
+               NOTE: Investigated this.  GLIBC formats NaN as '-nan'
+               and -NaN as 'nan'.  Dealing with this is not simple.
+
+       Enhance FIELDWIDTHS with some way to indicate "the rest of the record".
+       E.g., a length of 0 or -1 or something.  Maybe "n"?
+
+       Make FIELDWIDTHS be an array?
+
+Code Review
+-----------
 awkgram.y
 debug.c
 eval.c
@@ -33,7 +151,51 @@ gawkmisc.c
 profile.c
 protos.h
 
-DONE:
+DONE
+====
+
+Minor Cleanups and Code Improvements
+------------------------------------
+Done in 4.1:
+
+       Review all FIXME and TODO comments
+
+Minor New Features
+------------------
+Done in 4.1:
+
+       Merge the chapter and the appendix on floating-point math (for 4.1).
+
+Major New Features
+------------------
+Done in 4.1:
+
+       DONE: Design and implement I/O plugin API.
+
+       DONE: Implement designed API for loadable modules
+
+       DONE: Redo the loadable modules interface from the awk level.
+
+       DONE: xgawk features (@load, -l, others)
+
+       DONE: Merge gawk/pgawk/dgawk into one executable
+
+       DONE: Merge xmlgawk XML extensions (via source forge project that
+             works with new API)
+
+       DONE: Integrate MPFR to provide high precision arithmetic.
+
+       DONE: Consider really implementing BWK awk SYMTAB for seeing what
+       global variables are defined.
+
+Things To Think About That May Never Happen
+-------------------------------------------
+
+Things That We Decided We Will Never Do
+---------------------------------------
+
+Code Review
+-----------
 array.c
 awk.h
 builtin.c
@@ -50,15 +212,3 @@ re.c
 replace.c
 version.c
 xalloc.h
-
-------
-
-DONE: Add in gawk/mp
-
-DONE: Design and implement I/O plugin API.
-
-DONE: Implement C function call API per man pages
-
-DONE: xgawk features (@load, -l, others)
-
-Add tests for patches in emails
diff --git a/TODO.xgawk b/TODO.xgawk
deleted file mode 100644
index 55c5371..0000000
--- 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.)
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 0cb342b..53b5904 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-24         Arnold D. Robbins     <address@hidden>
+
+       * gawk.texi (Future Extensions): Point to TODO file in the
+       gawk dist.
+
 2012-11-22         Arnold D. Robbins     <address@hidden>
 
        * gawk.texi: In API chapter, document the full list of include
diff --git a/doc/gawk.info b/doc/gawk.info
index c7f6098..8c5b435 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -26926,40 +26926,11 @@ C.3 Probable Future Extensions
      Hey!
      Larry Wall
 
-   This minor node briefly lists extensions and possible improvements
-that indicate the directions we are currently considering for `gawk'.
-The file `FUTURES' in the `gawk' distribution lists these extensions as
-well.
-
-   Following is a list of probable future changes visible at the `awk'
-language level:
-
-Databases
-     It may be possible to map a GDBM/NDBM/SDBM file into an `awk'
-     array.
-
-`RECLEN' variable for fixed-length records
-     Along with `FIELDWIDTHS', this would speed up the processing of
-     fixed-length records.  `PROCINFO["RS"]' would be `"RS"' or
-     `"RECLEN"', depending upon which kind of record processing is in
-     effect.
-
-More `lint' warnings
-     There are more things that could be checked for portability.
-
-   Following is a list of probable improvements that will make `gawk''s
-source code easier to work with:
-
-Better array subscript management
-     `gawk''s management of array subscript storage could use revamping,
-     so that using the same value to index multiple arrays only stores
-     one copy of the index value.
-
-   Finally, the programs in the test suite could use documenting in
-this Info file.
-
-   *Note Additions::, if you are interested in tackling any of these
-projects.
+   The `TODO' file in the `gawk' distribution lists possible future
+enhancements.  Some of these relate to the source code, and others to
+possible new features.  Please see that file for the list.  *Note
+Additions::, if you are interested in tackling any of the projects
+listed there.
 
 
 File: gawk.info,  Node: Basic Concepts,  Next: Glossary,  Prev: Notes,  Up: Top
@@ -32252,15 +32223,15 @@ Ref: Derived Files-Footnote-11083803
 Ref: Derived Files-Footnote-21083837
 Ref: Derived Files-Footnote-31084437
 Node: Future Extensions1084535
-Node: Basic Concepts1086022
-Node: Basic High Level1086703
-Ref: figure-general-flow1086974
-Ref: figure-process-flow1087573
-Ref: Basic High Level-Footnote-11090802
-Node: Basic Data Typing1090987
-Node: Glossary1094342
-Node: Copying1119653
-Node: GNU Free Documentation License1157210
-Node: Index1182347
+Node: Basic Concepts1085079
+Node: Basic High Level1085760
+Ref: figure-general-flow1086031
+Ref: figure-process-flow1086630
+Ref: Basic High Level-Footnote-11089859
+Node: Basic Data Typing1090044
+Node: Glossary1093399
+Node: Copying1118710
+Node: GNU Free Documentation License1156267
+Node: Index1181404
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 92d1de4..0e83b26 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -34874,44 +34874,11 @@ Arnold Robbins
 Larry Wall
 @end quotation
 
-This @value{SECTION} briefly lists extensions and possible improvements
-that indicate the directions we are
-currently considering for @command{gawk}.  The file @file{FUTURES} in the
address@hidden distribution lists these extensions as well.
-
-Following is a list of probable future changes visible at the
address@hidden language level:
-
address@hidden these are ordered by likelihood
address@hidden @asis
address@hidden Databases
-It may be possible to map a GDBM/NDBM/SDBM file into an @command{awk} array.
-
address@hidden @code{RECLEN} variable for fixed-length records
-Along with @code{FIELDWIDTHS}, this would speed up the processing of
-fixed-length records.
address@hidden"RS"]} would be @code{"RS"} or @code{"RECLEN"},
-depending upon which kind of record processing is in effect.
-
address@hidden More @code{lint} warnings
-There are more things that could be checked for portability.
address@hidden table
-
-Following is a list of probable improvements that will make @command{gawk}'s
-source code easier to work with:
-
address@hidden @asis
address@hidden Better array subscript management
address@hidden's management of array subscript storage could use revamping,
-so that using the same value to index multiple arrays only
-stores one copy of the index value.
address@hidden table
-
-Finally,
-the programs in the test suite could use documenting in this @value{DOCUMENT}.
-
+The @file{TODO} file in the @command{gawk} distribution lists possible
+future enhancements.  Some of these relate to the source code, and others
+to possible new features.  Please see that file for the list.
 @xref{Additions},
-if you are interested in tackling any of these projects.
+if you are interested in tackling any of the projects listed there.
 @c ENDOFRANGE impis
 @c ENDOFRANGE gawii
 
@@ -37255,5 +37222,5 @@ Suggestions:
 ------------
 % Next edition:
 %      1. Standardize the error messages from the functions and programs
-%         in Chapters 12 and 13.
+%         in the two sample code chapters.
 %      2. Nuke the BBS stuff and use something that won't be obsolete

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=72c4c0c07b3276ea59498af9c4d7d21492382b28

commit 72c4c0c07b3276ea59498af9c4d7d21492382b28
Author: Arnold D. Robbins <address@hidden>
Date:   Sat Nov 24 20:13:30 2012 +0200

    Update TODO.xgawk.

diff --git a/TODO.xgawk b/TODO.xgawk
index 164f4f5..55c5371 100644
--- a/TODO.xgawk
+++ b/TODO.xgawk
@@ -1,7 +1,5 @@
 To-do list for xgawk enhancements:
 
-- Review macros (force_string etc.)
-
 - In gawkapi.c - review switch statements and use of default.
 
 Low priority:
@@ -146,3 +144,5 @@ Done:
   be a fatal error.
 
 - Consider adding a way to access gawk special vars read only.
+
+- Review macros (force_string etc.)

-----------------------------------------------------------------------

Summary of changes:
 FUTURES       |   95 --------------------------
 TODO          |  204 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 TODO.xgawk    |  148 -----------------------------------------
 doc/ChangeLog |    5 ++
 doc/gawk.info |   59 ++++------------
 doc/gawk.texi |   43 ++-----------
 6 files changed, 202 insertions(+), 352 deletions(-)
 delete mode 100644 FUTURES
 delete mode 100644 TODO.xgawk


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]