Thanks to the tireless efforts of OpenSolaris contributor
Roland Mainz, the Korn Shell 93 project has completed its
initial integration into build 72.
The putback of:
PSARC/2006/550 Korn Shell 93 Integration
PSARC/2006/587 /etc/ksh.kshrc for ksh93
PSARC/2007/035 ksh93 Amendments
6437624 RFE: Add ksh93 (as /usr/bin/ksh93) and libshell.so
to OS/Net
6505835 AST tools and library (libpp) required for creating
l10n messages for ksh93
adds ksh93 as /usr/bin/ksh93 to OpenSolaris. The putback is
"self contained" and should affect nothing else beyond
adding ksh93.
Notes
-----
* This putback is only the first of a longer serious of putbacks
which will introduce ksh93 and related features incrementally into
OpenSolaris.
* The putback introduces an _alpha_ version of ksh93s+ (which means
"ksh" based on spec from 1993, version "s+") which has some minor
bugs which are going to be fixed with the follow-up putbacks
(See
http://mail.opensolaris.org/pipermail/ksh93-integration-discuss/2007-June/005485
.html
for a list of known bugs.).
* /usr/bin/ksh93 comes in 32-bit and 64-bit flavors; an appropriate
variant will be selected automatically via "isaexec".
* Usability:
- This putback enables the "gmacs" editor/input mode by default,
e.g. cursor keys, <TAB><TAB> filename/variable completion etc.
should work "out of the box" (see PSARC/2006/587 for further
information about standards conformance). Additionally a
<number><TAB> after <TAB><TAB> will select item <number> from
the list of choices generated by <TAB><TAB> (assuming there were
multiple choices).
- <ctrl-l> will refresh the current edit line, <esc><ctrl-l> will
clear the terminal screen (like /usr/bin/clear or bash's <ctrl-l>).
- "Multiline" editor mode may be enabled using $ set -o multiline #
but may not work on all platforms (like SPARC).
- For more information consult the manual page.
* The ksh93(1) manual page will be integrated into a subsequent Nevada
build. If you have the source, you may look at
usr/src/lib/libshell/common/sh.1 or use the man page from the original
ARC case (see
http://www.opensolaris.org/os/community/arc/caselog/2006/550/materials/manpages/
ksh93-1-new/).
* The build has a switch to install ksh93 as /usr/bin/ksh. Building
OS/Net using
$ export ON_BUILD_KSH93_AS_BINKSH=1
$ make setup
$ dmake install
will install ksh93 as /usr/bin/ksh and adjust libc.so.1 to use a
ksh93-compatible version of |libc::wordexp()|.
WARNING: Please contact the project team for more information if you
are a distribution maintainer and wish to use this feature.
* Demo code/"Easter-eggs":
- PacMan clone:
$ ksh93 /usr/demo/ksh/fun/gnaw
- Mandelbrot demo:
$ ksh93 /usr/demo/ksh/fun/mandelbrotset1
- Analog tty clock:
$ ksh93 /usr/demo/ksh/fun/termclock
- Extra builtin commands (poll, open, close, dup, tmpfile, stat,
rewind) can be enabled. The --man option to the builtin command
will produce manpage documentation.
For example, for the "poll" builtin:
$ builtin -f libshell.so.1 poll
$ poll --man
* Further information and notes can be found on the ksh93-integration
project homepage at http://www.opensolaris.org/os/project/ksh93-integration/
Reporting bugs/problems/rants
-----------------------------
If you encounter any difficulties which you believe may be related to
this putback, please direct all rants/flames in Roland's
(roland.mainz at nrubsig.org) or April's (april.chin at sun.com) direction,
the ksh93-integration mailinglist (see
http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss ;
please subscribe before posting), or http://bugs.opensolaris.org/
(Product/Category/Subcategory "solaris/shell/korn93").