Template Version: @(#)sac_nextcase 1.69 02/15/10 SMI This information is Copyright 2010 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: More ksh93 builtins 1.2. Name of Document Author/Supplier: Author: Olga Kryzhanovska 1.3 Date of This Document: 18 March, 2010 4. Technical Description
I'm sponsoring this fast-track request on behalf of the ksh93-integration project. Please note that this is an *open* case. The release binding is the same as with the ksh93 project: a patch/micro release of Solaris delivering through ON Stability levels are as described below. This project is an amendment to the Korn Shell 93 Integration project (PSARC/2006/550 and PSARC/2007/035, PSARC/2008/094, PSARC/2008/344 and PSARC/2008/589) specifying the following additional interfaces: Addition of /usr/gnu/bin, /usr/xpg4/bin and /usr/bin built in mappings in ksh93 Bug/RFE Number(s): 6935110 ksh93 needs (more) XPG, GNU built ins This case proposes to deliver the following features as a set of independent putbacks as they become available. Each feature is self contained and independent of the others, so out of order and partial putbacks at this granularity should have no adverse impact on the functionality and behavior of the system as a whole. Part 1: ksh93 built in mappings for /usr/gnu/bin utilities ---------------------------------------------------------- The case proposes to enable the following mappings to ksh93 built in commands for utilities in /usr/gnu/bin. When the utility is called using it's command name, and not the full path, the ksh93 builtin will be used instead of executing the /usr/gnu/bin binary. Interface Stability Description --------- --------- ----------- ksh93 '/usr/gnu/bin/basename' built in Uncommitted basename utility with GNU extensions ksh93 '/usr/gnu/bin/cksum' built in Uncommitted cksum utility with GNU extensions ksh93 '/usr/gnu/bin/comm' built in Uncommitted comm utility with GNU extensions ksh93 '/usr/gnu/bin/cut' built in Uncommitted cut utility with GNU extensions ksh93 '/usr/gnu/bin/dirname' built in Uncommitted dirname utility with GNU extensions ksh93 '/usr/gnu/bin/expr' built in Uncommitted expr utility with GNU extensions ksh93 '/usr/gnu/bin/fold' built in Uncommitted fold utility with GNU extensions ksh93 '/usr/gnu/bin/join' built in Uncommitted join utility with GNU extensions ksh93 '/usr/gnu/bin/logname' built in Uncommitted logname utility with GNU extensions ksh93 '/usr/gnu/bin/mkdir' built in Uncommitted mkdir utility with GNU extensions ksh93 '/usr/gnu/bin/mkfifo' built in Uncommitted mkfifo utility with GNU extensions ksh93 '/usr/gnu/bin/mktemp' built in Uncommitted mktemp utility with GNU extensions ksh93 '/usr/gnu/bin/pathchk' built in Uncommitted pathchk utility with GNU extensions ksh93 '/usr/gnu/bin/paste' built in Uncommitted paste utility with GNU extensions ksh93 '/usr/gnu/bin/sleep' built in Uncommitted sleep utility with GNU extensions ksh93 '/usr/gnu/bin/sync' built in Uncommitted sync utility with GNU extensions ksh93 '/usr/gnu/bin/tee' built in Uncommitted tee utility with GNU extensions ksh93 '/usr/gnu/bin/tty' built in Uncommitted tty utility with GNU extensions ksh93 '/usr/gnu/bin/uniq' built in Uncommitted uniq utility with GNU extensions ksh93 '/usr/gnu/bin/rmdir' built in Uncommitted rmdir utility with GNU extensions ksh93 '/usr/gnu/bin/wc' built in Uncommitted wc utility with GNU extensions Notes ----- Compatibility of AT&T AST ksh93 built in utilities and GNU coreutils implementations: Modulo correction bugs in the implementation, we believe that the ksh93 built in utilities act as a 100% compatible drop in for the GNU programs sans wording of --help, --version and error message output (error messages are Not-An-Interface). Compatibility between ksh93 built in utility implementation and GNU coreutils implementation: Should a future ARC case will add new features to the GNU coreutils utilities the project team will update the corresponding ksh93 built in utility. Should this not be possible the ksh93 project team will remove the mapping. Part 2: ksh93 built in mappings for /usr/xpg4/bin utilities ---------------------------------------------------------- The case proposes to enable the following mappings to ksh93 built in commands for utilities in /usr/xpg4/bin. When the utility is called using it's command name, and not the full path, the ksh93 builtin will be used instead of executing the /usr/xpg4/bin binary. Interface Stability Description --------- --------- ----------- ksh93 '/usr/xpg4/bin/basename' built in Committed POSIX basename utility ksh93 '/usr/xpg4/bin/egrep' built in Committed POSIX egrep utility ksh93 '/usr/xpg4/bin/fgrep' built in Committed POSIX fgrep utility ksh93 '/usr/xpg4/bin/grep' built in Committed POSIX grep utility ksh93 '/usr/xpg4/bin/id' built in Committed POSIX id utility ksh93 '/usr/xpg4/bin/rm' built in Committed POSIX rm utility Part 3: ksh93 built in mappings for /usr/bin utilities ---------------------------------------------------------- The case proposes to enable the following mappings to ksh93 built in commands for utilities in /usr/bin. When the utility is called using it's command name, and not the full path, the ksh93 builtin will be used instead of executing the /usr/xpg4/bin binary. Interface Stability Description --------- --------- ----------- ksh93 '/usr/bin/dirname' built in Committed POSIX dirname utility General comments ---------------- This case heavily builds on PSARC/2006/550 which was the first PSARC case to introduce the concept of shell built ins bound to a path. Future development ------------------ The shell project team will file separate ARC case to add the same shell built ins to bash4, reusing the same code as ksh93 (libcmd.so.1). The shell project will provide an API within libcmd.so.1 for other shells (e.g. bash4) and applications to call the built ins directly. This API will be available as contracted API until sufficient experience has been collected and then opened as Committed interface. 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