On Sat, Jan 06 2018, Klemens Nanni <k...@posteo.org> wrote:
> Looking at the CVS log one can see that other legacies such as ChangeLog
> have already been zapped. NOTES and PROJECTS have seen sporadic minor
> updates since import and still list valid topics, but they lack other
> long overdue correcttions. For example:
> - support for POSIX character class globbing was done in 2009
> - EASY and COMPLEX history code got zapped in 2004
> - `time' has a -p option since pdksh-5.2.14 from 1999
> Documentation is nice but wrong/outdated documentation sucks, so should
> NOTES and PROJECTS be further maintained or removed as well?
> I prefer keeping them as of now since they're quite informative when
> digging deeper into the sources. On the other hand, maintenance requires
> history and knowledge of other shells when it comes to differences
> between them - I'm clearly out here and cannot judge the amount of work
> on that part.
> What do you think? Feedback is greatly appreciated.

NOTES is quite dense indeed, I think it can have value.

> If NOTES and PROJECTS stay, I'd be happy to remove/update some of the
> topics.

Here's a first diff to kill the most obvious entries in PROJECTS.  The
next steps will probably take more time.

RCS file: /d/cvs/src/bin/ksh/PROJECTS,v
retrieving revision 1.8
diff -u -p -r1.8 PROJECTS
--- PROJECTS    14 Sep 2015 09:42:33 -0000      1.8
+++ PROJECTS    8 Jan 2018 01:12:43 -0000
@@ -22,31 +22,11 @@ Things to be done in pdksh (see also the
       (ulimit also needs to be examined to check that it fits the posix style)
-    * test suite
-      Ideally, as the builtin utilities are being POSIXized, short tests
-      should be written to be used in regression testing.  The tests
-      directory contains some tests, but many more need to be written.
-    * internationalization
-      Need to handle with the LANG and LC_* environment variables.  This
-      involves changes to ensure <ctype.h> macros are being used (currently
-      uses its own macros in many places), figuring out how to deal with
-      bases (for integer arithmetic, eg, 12#1A), and (the nasty one) doing
-      string look ups for error messages, etc..  It probably isn't worth
-      translating strings to other languages yet as the code is likely
-      to change a lot in the near future, but it would be good to have the
-      code set up so string tables can be used.
     * trap code
        * add the DEBUG trap.
        * fix up signal handling code.  In particular, fatal vs tty signals,
          have signal routine to call to check for pending/fatal traps, etc.
-    * parsing
-       * the time keyword needs to be hacked to accept options (!) since
-         POSIX says it shall accept the -p option and must skip a -- argument
-         (end of options).  Yuck.
     * lexing
       the lexing may need a re-write since it currently doesn't parse $( .. ),
       $(( .. )), (( ... )) properly.
@@ -68,30 +48,10 @@ Things to be done in pdksh (see also the
       in general, treatment of OPTIND/OPTARG,
     * history
-      There are two versions of the history code, COMPLEX_HISTORY and
-      EASY_HISTORY, which need to be merged.  COMPLEX does at&t style history
-      where the history file is written after each command and checked when
-      ever looking through the history (in case another shell has added
-      something).  EASY simply reads the history file at startup and writes
-      it before exiting.
-       * re-write the COMPLEX_HISTORY code so mmap() not needed (currently
-         can't be used on machines without mmap()).
-       * Add multiline knowledge to COMPLEX_HISTORY (see EASY_HISTORY
-         stuff).
-       * change COMPLEX_HISTORY code so concurrent history files are
-         controlled by an option (set -o history-concurrent?).  Delete
-         the EASY_HISTORY code.
+       * Add multiline knowledge
        * bring history code up to POSIX standards (see POSIX description
          of fc, etc.).
-    * documentation
-      Some sort of tutorial with examples would be good.  Texinfo is probably
-      the best medium for this.  Also, the man page could be converted to
-      texinfo (if the tutorial and man page  are put in the same texinfo
-      page, they should be somewhat distinct - i.e., the tutorial should
-      be a separate thread - but there should be cross references between the
-      two).
     * miscellaneous
        * POSIX specifies what happens when various kinds of errors occur
          in special built-ins commands vs regular commands (builtin or
@@ -104,8 +64,3 @@ Things to be done in pdksh (see also the
        * merge the emacs and vi code (should reduce the size of the shell and
          make maintenance easier); handle SIGWINCH while editing a line.
          [John Rochester is working on the merge]
-       * add POSIX globbing (eg, [[:alnum:]]), see POSIX.2:
-       * teach shf_vfprintf() about long long's (%lld); also make %p use
-         long longs if appropriate.

jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to