"Fossies" - the Fresh Open Source Software Archive

Member "gawk-5.1.0/TODO" (18 Mar 2020, 5111 Bytes) of package /linux/misc/gawk-5.1.0.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "TODO": 5.0.1_vs_5.1.0.

    1 Wed Mar 18 22:05:22 IST 2020
    2 ============================
    3 
    4 There were too many files tracking different thoughts and ideas for
    5 things to do, or consider doing.  This file merges them into one. As
    6 tasks are completed, they should be removed.
    7 
    8 This file should exist only in the master branch or branches based off
    9 of it for development, but not in the stable branch. This may require some
   10 careful work with Git.
   11 
   12 TODO
   13 ====
   14 
   15 Minor Cleanups and Code Improvements
   16 ------------------------------------
   17 
   18 	Allow SYMTAB and FUNCTAB as arguments to asort/asorti if a
   19 	destination array is provided.
   20 
   21 	API:
   22 		??? #if !defined(GAWK) && !defined(GAWK_OMIT_CONVENIENCE_MACROS)
   23 
   24 	?? Add debugger commands to reference card
   25 
   26 	Look at function order within files.
   27 
   28 	Consider removing use of and/or need for the protos.h file.
   29 
   30 	Fully synchronize whitespace tests (for \s, \S in Unicode
   31 	environment) with those of GNU grep.
   32 
   33 	See if something like  b = a "" can be optimized to not do
   34 	a concatenation, but instead just set STRCUR on a.
   35 
   36 	Message cleanup:
   37 	* Messages in debug.c start with capital letters, but not in
   38 	  other files.
   39 
   40 	* Messages are inconsistent about final punctuation (periods etc.)
   41 
   42 Minor New Features
   43 ------------------
   44 
   45 	Enable command line source text in the debugger.
   46 
   47 	Enhance extension/fork.c waitpid to allow the caller to specify
   48 	the options.  And add an optional array argument to wait and
   49 	waitpid in which to return exit status information.
   50 
   51 	Consider relaxing the strictness of --posix.
   52 
   53 	Enhance --lint=invalid to apply in more places.
   54 
   55 	? Add an optional base to strtonum, allowing 2-36.
   56 
   57 	? Optional third argument for index indicating where to start the
   58 	search.
   59 
   60 	Suggested by Jannick:
   61 	* It is possible to make gawk look for a file with extension name
   62 	plus API version number(s) in case a shared lib with the expected
   63 	basename cannot be found?  This would help have extension versions
   64 	compiled against different API versions in one single directory
   65 	and make gawk pick the extension with the right API version.
   66 
   67 Major New Features
   68 ------------------
   69 
   70 	Think about how to generalize indirect access. Manuel Collado
   71 	suggests things like
   72 
   73 		foo = 5
   74 		@"foo" += 4
   75 
   76 	Also needed:
   77 
   78 		Indirect through array elements, not just scalar variables
   79 
   80 	Add ability to do decimal arithmetic.
   81 
   82 	Rework management of array index storage. (Partially DONE.)
   83 
   84 	Consider using an atom table for all string array indices.
   85 
   86 	DBM storage of awk arrays. Try to allow multiple dbm packages.
   87 
   88 	?? A RECLEN variable for fixed-length record input. PROCINFO["RS"]
   89 	would be "RS" or "RECLEN" depending upon what's in use.
   90 	*** Could this be done as an extension?
   91 
   92 	?? Use a new or improved dfa and/or regex library.
   93 
   94 	Rewrite in C++.
   95 
   96 Things To Think About That May Never Happen
   97 -------------------------------------------
   98 
   99 	Consider making shadowed variables a warning and not
  100 	a fatal warning when --lint=fatal.
  101 
  102 	Similar for extra parameters in a function call.
  103 
  104 	Look at code coverage tools, like S2E: https://s2e.epfl.ch/
  105 	
  106 	Try running with diehard. See http://www.diehard-software.org,
  107 	https://github.com/emeryberger/DieHard
  108 
  109 	Include a sample rpm spec file in a new packaging subdirectory.
  110 	(Really needed?)
  111 
  112 	Patch lexer for @include and @load to make quotes optional.
  113 	(Really needed?)
  114 
  115 	Add a lint check if the return value of a function is used but
  116 	the function did not supply a value.
  117 
  118 	Consider making gawk output +nan for NaN values so that it
  119 	will accept its own output as input.
  120 		NOTE: Investigated this.  GLIBC formats NaN as '-nan'
  121 		and -NaN as 'nan'.  Dealing with this is not simple.
  122 
  123 	Review the bash source script for working with shared libraries in
  124 	order to nuke the use of libtool. [ Partially started in the
  125 	dead-branches/nolibtool branch. ]
  126 
  127 Things That We Decided We Will Never Do
  128 =======================================
  129 
  130 	Consider moving var_value info into Node_var itself to reduce
  131 	memory usage. This would break all uses of get_lhs in the
  132 	code. It's too sweeping a change.
  133 
  134 	Add macros for working with flags instead of using & and |
  135 	directly.
  136 
  137 	FIX regular field splitting to use FPAT algorithm.
  138 		Note: Looked at this. Not sure it's with the trouble:
  139 		If it ain't broke...
  140 
  141 	Scope IDs for IPv6 addresses
  142 
  143 	Gnulib
  144 
  145 	Make FIELDWIDTHS be an array?
  146 
  147 	"Do an optimization pass over parse tree?"
  148 	This isn't relevant now that we are using a byte code engine.
  149 
  150 	"Consider integrating Fred Fish's DBUG library into gawk."
  151 	I did this once as an experiment. But I don't see a lot of value
  152 	to this at this stage of the development. Stepping through things
  153 	in a debugger is generally enough. Also, I would have to try to
  154 	track down the latest version of this.
  155 
  156 	"Make 	awk '/foo/' files...	run at egrep speeds" (How?)
  157 	This has been on the list since the early days (gawk 1.x or early
  158 	2.x).  But I am not sure how to really do this, nor have I done
  159 	timings, nor does there seem to be any real demand for this.
  160 
  161 	Change from dlopen to using the libltdl library (i.e. lt_dlopen).
  162 	This may support more platforms.  If we move off of libtool
  163 	then this is the wrong direction.