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 previous ksh93-integration 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 update 1 ARC case (PSARC/2008/094) specifying the following additional interfaces: 1) Update of ksh93 from upstream release ast-ksh.2007-12-15 to ast-ksh-2008-05-22 1.1) Update of ksh93 1.2) New "typeset" variable storage qualifier for function-static variables ("typeset -S varname") 1.3) New floating-point datatype "hexfloat" ("typeset -X varname) 1.4) New reserved options for "typeset". 1.5) New ksh93 math functions "ceil": 1.6) New reserved builtin "enum" Bug/RFE Number(s): 6619428 RFE: Update ksh93 in Solaris to ast-ksh.2007-10-15 (or higher) 6601968 RFE: Add /usr/lib/shell/ksh/ as a place to store loadable shell functions Interface Stability Description --------- --------- ----------- /usr/lib/shell/ Project private Commited C99 math functions ### Part 1: Update of ksh93 from upstream release ast-ksh.2007-12-15 to ast-ksh-2008-05-22 ## Part 1.1: Update of ksh93 The 1.1 portion of this project is the update of ksh93 from ast-ksh.2007-12-15 to ast-ksh-2008-05-22 which marks the update from ksh93 version 's+' to version 't-' (AST/ksh93 uses the (latin) alphabet for its version number, e.g. version 'a', version 'b' etc. ; the '+'/'-' means the stabilty status, e.g. '-' means its "alpha", no suffix means its "stable" (e.g. ready for production usage) and '+' means its a bugfixed stable version etc.). Note that the team has invested _significant_ amounts of time to ensure the quality requirements for Solaris, doing both manual and automated testing, e.g. testing ksh93 using it's own test suite (47 tests) in 53 different locales, one time as plain script and one time as compiled script (resulting in 4982 test runs), improving the test suite, enabling libast-internal memory corruption checking (similar to what libumem does), developing own additions to the test suite and running the standards test suites agains it, too. Manual testing includes basic usability exists covering languages like Japanese and Chinese (UTF-8 and GB18030), testing whether the generated binaries work as /sbin/sh and /usr/bin/ksh in the Indiana distribution and whether the binaries can be used to build OS/Net. ## Part 1.2: New "typeset" variable storage qualifier for function static variables ("typeset -S varname") The "typeset" builtin has a new option "-S" to declare a variable as "static", similar to |static| variables in a ISO C/C++ code. ## Part 1.3: New floating-point datatype "hexfloat" ("typeset -X varname") The "typeset" builtin has a new option "-X" to define a floating-point variable which uses the same floating-point representation as printf "%a" (hexadecimal floating point representation). The option is intended to be used in cases where the values should be permanently stored or passed to other applications without suffering the loss in precision caused by a base2--->base10--->base2 conversion chain. All shell facilities and C99/XPG6 conformant applications which accept floating-point values accept the hexfloat format. ## Part 1.4: New reserved options for "typeset". The typeset options "-T", "-h" and "-C" are reserved for future usage. ## Part 1.5: New ksh93 math functions "ceil": Function name | Prototype | see manual page ---------------+--------------------------------------+----------------- ceil | float ceil(float) | ceil(3m) (note: the datatypes "integer" and "float" refer to the "integer" and "float" datatypes in ksh93 scripts, not those in the "C" language) ## Part 1.6: New reserved builtin "enum" The builtin command "enum" is hereby reserved for future usage. A note will be added to the ksh93(1) manual page to suggest that shell script authors should choose shell function outside the namespace used by reserved keywords of the ISO C99/C++/JAVA languages to avoid collisions with future enhancements to ksh93.