Sorry, one more set of questions:

>
> 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"
>
>   

As you now have created a new keyword and function name, ("ceil" and 
"enum"), what will happen to scripts that may already have used these words?

Have the upstream providers given thought to dealing with changes like 
this and their impact on already-deployed scripts?  (Maybe there aren't 
any that we care about yet, since our ksh93 is still so new.)

I'm concerned, going forward, as ksh93 syntax becomes more prevalent, 
that bringing in changes like the above may have unintended consequences 
in scripts or even ON delivered components, which we cannot easily find 
or test.

It would be nice (and maybe this is advice to send upstream) if there 
was a way for script authors to be sure that their namespace was not 
going to change underneath them.   As one possible solution (and this is 
just for illustrative), imagine a flag for ksh, -N2008.05.28, which 
script authors could put in their #!/usr/bin/ksh line which ksh would 
take to mean that only the language features available in ksh version 
2008.05.28 should be exported.

Another solution, might be to reserve some portion of the namespace 
(e.g. with a prefix identifier such as an underscore) for either new 
names in the language, or to reserve it for script author use (e.g. 
names with a certain prefix are guaranteed to be "safe".)

    -- Garrett


Reply via email to