+1. - Garrett
Alan Hargreaves wrote: > I'm sponsoring this fast-track request on behalf of the > ksh93-integration project. > > Please note that this is an *open* case. > > Template Version: @(#)sac_nextcase %I% %G% SMI > This information is Copyright 2009 Sun Microsystems > 1. Introduction > 1.1. Project/Component Working Name: > ksh93 update 2 > 1.2. Name of Document Author/Supplier: > Author: Alan Hargreaves > 1.3 Date of This Document: > 01 February, 2009 > 4. Technical Description > > The release binding is the same as with the previous ksh93 project: a > patch/micro release of Solaris delivering through OS/Net. Stability > levels are as described below. > > Additional materials (man pages and diffs) can be found in the > 'materials' subdirectory. > > This project is an amendment to the Korn Shell 93 Integration project > (PSARC/2006/550, PSARC/2006/587, PSARC/2007/035 and PSARC/2008/344) > specifying the following additional interfaces: > > 1) Update of ksh93 interfaces > 1.1) New "typeset" variable type qualifier ("-C") to declare compound > variables > 1.2) New "typeset" option "-m" to rename/move a variable > 1.3) New "read" option "-C" to read a variable as compound variable > 1.4) New "print" option "-C" to print compound variables as a > single line > 1.5) New ksh93 math functions "log10", "j0", "j1", "jn", "y0", > "y1", "yn" > 1.6) Interface stability change of the POSIX shell command language > parts of the ksh93 language > > 2) An enhanced version of the "cmp" utility and an identical ksh93 > built-in command > > 3) An enhanced version of the "cut" utility and an identical ksh93 > built-in command > > 4) An enhanced version of the "comm" utility and an identical ksh93 > built-in command > > 5) An enhanced version of the "paste" utility and an identical ksh93 > built-in command > > 6) The addition of /usr/bin/print > > 7) An enhanced version of the "uniq" utility and an identical ksh93 > built-in command > > 8) An enhanced version of the "wc" utility and an identical ksh93 > built-in command > > 9) Addition of /usr/share/doc/ksh/ for ksh93 documentation. > > 10) Enable "globstar" mode for interactive shells via /etc/ksh.kshrc > > > Bug/RFE Number(s): > > 6793744 RFE: Add /usr/share/doc/ksh/ for ksh93 documentation > 6793763 RFE: Update /usr/bin/ksh93 to ast-ksh.2009-01-14 > 6793722 RFE: Update /usr/bin/cmp to AT&T AST "cmp" > 6793714 RFE: Update /usr/bin/comm to AT&T AST "comm" > 6793719 RFE: Update /usr/bin/cut to AT&T AST "cut" > 6793721 RFE: Update /usr/bin/paste to AT&T AST "paste" > 6793747 RFE: Provide "print" builtin as /usr/bin/print for external > applications > 6793726 RFE: Update /usr/bin/uniq to AT&T AST "uniq" > 6793735 RFE: Update /usr/bin/wc to AT&T AST "wc" > 6794952 RFE: Enable "globstar" option in /etc/ksh.kshrc > > > Interface Stability Description > > --------- --------- ----------- > <POSIX Shell Command Language Commited <IEEE Std 1003.1-2008 > part of the ksh93 language> Shell Command > Language> > /usr/bin/cmp Commited cmp command > /usr/bin/comm Commited comm command > /usr/bin/cut Commited cut command > /usr/bin/paste Commited paste command > /usr/bin/print Uncommited print command > /usr/bin/uniq Commited uniq command > /usr/bin/wc Commited wc command > <new C99 math function "log10"> Commited C99 math functions > <new C99 math function "j0"> Commited C99 math functions > <new C99 math function "j1"> Commited C99 math functions > <new C99 math function "jn"> Commited C99 math functions > <new C99 math function "y0"> Commited C99 math functions > <new C99 math function "y1"> Commited C99 math functions > <new C99 math function "yn"> Commited C99 math functions > > Detail > ====== > > 1. Update of ksh93 interfaces > ----------------------------- > > 1.1 New "typeset" variable type qualifier ("-C") to declare compound > variables > > The "typeset" builtin has a new option "-C" (previously declared as > "reserved for future usage") to declare a variable as a compound > variable. If value names a compound variable it will be copied to name. > Otherwise if the variable already exists, it will first be unset. This > replaces the previous implicit declaration on assignment (e.g. > $ typeset -C foo # instead of $ foo=() #). > > 1.2 New "typeset" option "-m" to rename/move a variable > > The "typeset" builtin has a new option "-m" to rename/move a variable. > This is useful to split/merge variable trees or move parts of variable > trees around. > > 1.3 New "read" option "-C" to read a variable as compound variable > > The "read" builtin has a new option "-C" to read the input into a > compound variable (this can be used to construct "record-oriented" > pipes). > > 1.4 New "print" option "-C" to print compound variables as a single line > > The "print" builtin has a new option "-C" to print compound variables > as a single line (the existing $ print -v varname # and > $ printf '%B\n' varname # prints a multiline, human-friendly output), > equivalent to $ printf "%#B\n" varname #. > > The idea is to allow compound variables to be filtered in pipelines, e.g. > $ ... ; while ... ; do print -C myvar done | \ > egrep -v '.*=hasfish.*' | \ > while read -C filtered_vars ; do \ > ... > done > > 1.5 New ksh93 math functions "log10", "j0", "j1", "jn", "y0", "y1", "yn" > > Function name | Prototype | see manual page > ---------------+--------------------------------------+----------------- > log10 | float log10(float) | log10(3m) > j0 | float j0(float) | j0(3m) > j1 | float j1(float) | j1(3m) > jn | float jn(float) | jn(3m) > y0 | float y0(float) | y0(3m) > y1 | float y1(float) | y1(3m) > yn | float yn(float) | yn(3m) > > > (note: the datatypes "integer" and "float" refer to the "integer" and > "float" datatypes in ksh93 scripts, not those in the "C" language) > > 1.6 Interface stability change of the POSIX shell command language parts > of the ksh93 language > > The interface stabilty of POSIX shell command language parts of the > ksh93 language are updated from "Uncommited" to "Commited" (the > ksh93-specific language parts not defined in "IEEE Std 1003.1-2008 > Shell Command Language" remain "Uncommited"). > > The POSIX shell command language is described in > http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html > > 2. Enhancement of /usr/bin/cmp > ------------------------------ > > The second part of this project specifies an enhancement to > /usr/bin/cmp and based on the AT&T AST "cmp" command. > > The AT&T AST version of the "cmp" utility provides support for the > following additional options found commonly in other implementations > such as GNU and BSD: > > -c, --print-chars > -i, --ignore-initial=skip > --verbose (same as existing -l) > -s, --quiet|silent > --man, --html, --nroff, --help, --version > > The stability of the "/usr/bin/cmp" command and built-in command-line > interface (including the new options) is "Committed". > > For further information/specifications see the materials directory. > > 3. Enhancement of /usr/bin/cut > ------------------------------ > > The third part of this project specifies an enhancement to /usr/bin/cut > and based on the AT&T AST "cut" command. > > The AT&T AST version of the "cut" utility provides support for the > following additional options found commonly in other implementations > such as GNU and BSD: > > --bytes=list (same as existing -b) > --characters=list (same as existing -c) > --delimiter=delim (same as existing -d) > --fields=list (same as existing -f) > --nosplit (same as existing -n) > -R|r, --reclen=reclen > -D, --line-delimeter|output-delimiter=ldelim > -N, --nonewline > --suppress|only-delimited (same as existing -s) > --man, --html, --nroff, --help, --version > > The stability of the "/usr/bin/cut" command and built-in command-line > interface (including the new options) is "Committed". > > For further information/specifications see the materials directory. > > 4. Enhancement of /usr/bin/comm > ------------------------------- > > The fourth part of this project specifies an enhancement to > /usr/bin/comm and based on the AT&T AST "comm" command. > > The AT&T AST version of the "comm" utility provides support for the > following additional options found commonly in other implementations > such as GNU and BSD: > > --man, --html, --nroff, --help, --version > > The stability of the "/usr/bin/comm" command and built-in command-line > interface (including the new options) is "Committed". > > For further information/specifications see the materials directory. > > 5. Enhancement of /usr/bin/paste > -------------------------------- > > The fifth part of this project specifies an enhancement to > /usr/bin/paste and based on the AT&T AST "paste" command. > > The AT&T AST version of the "paste" utility provides support for the > following additional options found commonly in other implementations > such as GNU and BSD: > > --serial (same as existing -s) > --delimiters=list (same as existing -d) > --man, --html, --nroff, --help, --version > > The stability of the "/usr/bin/paste" command and built-in command-line > interface (including the new options) is "Committed". > > For further information/specifications see the materials directory. > > 6. The addition of /usr/bin/print > --------------------------------- > > The sixth part of this project specifies a new utility called > "/usr/bin/print" which exposes the ksh93 builtin command "print" as > interface for other scripts/utilities. > > Unlike other built-in commands named in PSARC/2006/550, the "print" > built-in in ksh93 will _not_ be bound to the /usr/bin/ pathname to > ensure backwards-compatiblity to existing ksh93 scripts (for example > scripts running in "restricted" shell mode expect that some shell > builtins are available independently from the value of ${PATH}). > > The stability of the "/usr/bin/print" command and built-in command-line > interface and the system variables documented in print(1) is > "Uncommitted". > > For further information/specifications see the materials directory. > > 7. Enhancement of /usr/bin/uniq > ------------------------------- > > The seventh part of this project specifies an enhancement to > /usr/bin/uniq and based on the AT&T AST "uniq" command. > > The AT&T AST version of the "uniq" utility provides support for the > following additional options found commonly in other implementations > such as GNU and BSD: > > --count (same as existing -c) > --repeated|duplicates (same as existing -d) > -D, --all-repeated[=delimit] > --skip-fields=fields (same as existing -f) > -i, --ignore-case > --skip-chars=chars (same as existing -s) > --unique (same as existing -u) > -w, --check-chars=chars > --man, --html, --nroff, --help, --version > > The stability of the "/usr/bin/uniq" command and built-in command-line > interface (including the new options) is "Committed". > > For further information/specifications see the materials directory. > > 8. Enhancement of /usr/bin/wc > ----------------------------- > > The eighth part of this project specifies an enhancement to /usr/bin/wc > and based on the AT&T AST "wc" command. > > The AT&T AST version of the "wc" utility provides support for the > following additional options found commonly in other implementations > such as GNU and BSD: > > --lines (same as existing -l) > --words (same as existing -w) > --bytes|chars (same as existing -c) > --multibyte-chars (same as existing -m/-C) > -L, --longest-line|max-line-length > --man, --html, --nroff, --help, --version > > The stability of the "/usr/bin/wc" command and built-in command-line > interface (including the new options) is "Committed". > > For further information/specifications see the materials directory. > > 9. Addition of /usr/share/doc/ksh/ > ---------------------------------- > > The ninth part of this project specifies a new directory to store ksh's > documentation. > > 10. Enable "globstar" mode for interactive shells > ------------------------------------------------- > > The tenth portion of this project specifies to enable the > "globstar"([1]) mode in "/etc/ksh.kshrc" for interactive ksh93 shell > sessions to improve end-user usabilty, similar to the default > configuration found on SuSE Linux and the default of bash version 3.x. > > [1]=The "globstar" mode (enabled via $ set -o globstar #) causes ** by > itself to also match all sub-directories during pathname expansion. > > > 6. Resources and Schedule > 6.4. Steering Committee requested information > 6.4.1. Consolidation C-team Name: > ON > 6.5. ARC review type: FastTrack > 6.6. ARC Exposure: open > >