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