I think it is time for an updated spec/issue roll up.

Here is where I think things stand - please correct any misunderstandings:

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.6) New reserved builtin "enum"
    2) Project-private location for shell function library

    (Details: 
http://www.opensolaris.org/os/community/arc/caselog/2008/344/onepager/)

There are 3 issues with the existing proposal: New keywords, release
taxonomy and /usr/lib/shell.

I think they all have been mostly resolved:

   1) Introduction of hexfloat, enum and ceil into reserved namespace

      Commentary:
        hexfloat is simply a new argument to the typeset command.
        ceil is a math function that can't conflict with shell
            variables or function names.
        This leaves enum as the only potential name conflict.

        My judgment call is that this is OK.  Why?

         Doing it now is better than either later or never.  Impact on
         users at this point is zero - ksh93 is new to Nevada, it does
         not ship with S10.  In addition, the upstream project team has
        a history of being extremely compatible - this is the first
        such addition in a dozen years, and it appears that no more
        additions are planned, so this should not turn into a chronic
        issue.

      Resolution:
        Not a problem.

   2) Relationship of "t-, t, t+" versioning scheme and C-Team
      integration rules.

      Commentary:
        The upstream convention seems to be "no incompatible changes",
        "run API conformance test suites rigorously to ensure no
        regressions" and "moderate new feature additions based on
        [- +] release state"

        The boogie man is whether or not incompatible changes would show
        up in a "-" release, or if bugs would show up there that would
        cause equivalent breakage.  Given the external team's almost
        obsessive focus on compatibility, I for one am not concerned
        about this at all.

      Resolution:
        Not a problem.

   3) Creation of /usr/lib/shell as Project Private

      Commentary:
        The desire is to create a place to experiment with creating an
        environment for POSIX compatible shells to place and share
        middleware "library" code.  This implies a whole bunch of stuff,
        most of which is non-obvious and not appropriate for Project
        Private classification.

        POSIX shells are usually the ones called "sh" - usually linked
        to include bash, korn, ash, dash, etc.  The level of conformity
        to the official    POSIX shell spec varies significantly between
        all these shells.

      Resolution (from Roland):

         Create /usr/lib/shell as a Volatile playground with the
         following initial expectations:

         A place to bundle shell function libraries _toegether_ in
         one common base directory, have them share functions
         via ${BASEDIR}/sh/ if the functions are in the POSIX
         shell syntax and in interpreter-specfic (e.g.
         ${BASEDIR}/zsh/..., ${BASEDIR}/ksh/...) if they use
         extended syntax... and handle the modules (one module
         may contain multiple functions) and functions in a
         DNS-like hieracy and allow pattern to be used as
         selectors.

         The intent is that shells will contain a builtin
        variable which points to the base directory so that
        consuming shell scripts do not need to know the
        absolute location where the library files are stored.



   -John


Reply via email to