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. Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI This information is Copyright 2008 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: ksh93 Integration Update 1 Amendments 1 1.2. Name of Document Author/Supplier: Author: Roland Mainz 1.3 Date of This Document: 27 May, 2008 4. Technical Description 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 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.5) New reserved builtin "enum" 2) Project-private location for shell function library 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 <see below> <new C99 math function "ceil"> 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.). ## 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.5: New reserved builtin "enum" The builtin command "enum" is hereby reserved for future usage. ### Part 2: Project-private location for shell function library /usr/lib/shell/ is reserved as project private location, mainly to build a (platform/architecture-specific) library of dynamically loadable shell functions in a similar form as java packages. For example the opensolaris.org networking team might store HTTP protocol handling functions under "/usr/lib/shell/sh/funclib/org/opensolaris/net/http/" (e.g. /usr/lib/shell/sh/... for is for POSIX shells, /usr/lib/shell/zsh/... for modules which use "zsh" syntax, /usr/lib/shell/bash/ for modules which use "bash" syntax etc.) and the shell would access modules in this directory via adding this path to the "function path", e.g. FPATH+=":/usr/lib/shell/ksh/funclib/org/opensolaris/net/http/" (note that shell functions loaded via this way will be _bound_ to this FPATH element (the same way as ksh93 binds builtin commands to specific PATH elements) only be visible as long as FPATH contains a matching path entry - removing the FPATH entry will disable the functions (but not unload them), re-adding the same path will make the functions accessible again (this allows that multiple groups/organisations may use the same function/module names without having namespace collisions)). The interfaces and modules provided by this API will be offered for ARC contracts and later (after some "soaking" period) opened-up on case-by-case basis. ### Manpage diffs: --- typeset.1.txt Fri May 23 23:03:15 2008 +++ typeset.1.txt Fri May 23 23:03:15 2008 @@ -45,7 +45,9 @@ expansion occurs on value. OPTIONS -a[type] Indexed array. This is the default. If [type] is specified, each subscript is interpreted as a value of type type. The option value may be omitted. -b Each name may contain binary data. Its value is the mime base64 encoding of the data. It can be used with -Z, to specify fixed sized fields. + -C Reserved for future usage. @@ -92,6 +94,18 @@ If the -Z attribute is also specified, then zeros will be used as the fill character. Otherwise, spaces are used. The option value may be omitted. + -X[n] Floating point number represented in hexadecimal notation. n + specifies the number of significant figures when the value is + expanded. The option value may be omitted. The default value + is 10. + -h Reserved for future usage. + -S When used inside a + function defined with the function reserved word, the + specified variables will have function static scope. + -T Reserved for future usage. -Z[n] Zero fill. If n is given it represents the field width. The option value may be omitted. 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