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


Reply via email to