Hi!

----

The ksh93-integration update2 ARC case is now running (originally we
forgot to CC: ksh93-integration-discuss at opensolaris.org but any
following replies should go to the list, too) ...

-------- Original Message --------
Subject: ksh93 update 2 [PSARC/2009/063 FastTrack timeout 02/09/2009]
Date: Sun, 01 Feb 2009 17:28:55 -0800 (PST)
From: Alan Hargreaves <ah89...@sac.sfbay.sun.com>
To: PSARC-ext at sun.com

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

_______________________________________________
opensolaris-arc mailing list
opensolaris-arc at opensolaris.org

Reply via email to