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. Index: PROJECTS =================================================================== 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:184.108.40.206. - - * 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