Unfortunately, I can't really help out with the code review, but I will 
offer up a few comments/questions/suggestions, based solely on the 
message below.

1) You should remove ident lines now -- you won't be allowed to put them 
back and fix them later.  (Not unless you get some kind of special 
waiver from ON CRT, and I really don't think one should be granted.)

2) As far as your builtins go, I have a couple of concerns, which *may* 
come up at ARC.  So by properly answering these ahead of time (or at 
least knowing the answers), you'll save trouble later at ARC:

    a) Are you 100% certain that the builtins are 100% drop-in 
compatible with the old versions?  (I'm not talking about adding new 
options -- I'm saying no change where the old commands did *not* 
generate an error of some sort.) Note that I suspect for printf at 
least, you'll have some formats which now will be handled differently.  
For example, printf "%z" prints "z", instead of returning an error.  
While it would be insane for anyone to rely on that behavior (and so it 
shouldn't be a problem at ARC), any new format specifiers or 
interpretation would need to be documented in the ARC materials.

    b) The normal perf. concerns.  The effect of your change may be 
positive, but some kind of analysis would be useful.  (And I'm not 
talking about your atypical scientific computing applications.  I'm 
talking about impact to things that folks are already doing.  A good 
perf. test might be building ON -- with *stock* Makefiles.  Just because 
you can tune it for ksh93 doesn't mean everyone will do so, so what I 
want to know is how "untuned" applications will behave.  Boot time 
analysis may be helpful as well.

    c) kill -l change is slight, but seems also to be "arbitrary".  Is 
there a reason that the old SPACE behavior isn't retained?

3) I've not looked at sum, but are you making use of (or later plan to 
make use of) the encryption framework in Solaris?  The Solaris 
encryption framework has highly optimized (CPU-specific!) 
implementations for various ciphers and hash algorithms, as well as 
hardware offload support.  Compare the perf. of digest(1) with your 
implementation of sum, for example.   Run time comparisons against 
builtin sum are important as well, as the old code is probably quite 
heavily used in automated scripts and such.  (Run against a big file... 
I don't care so much about startup overheads in this case, as I do about 
time to sum a 4GB iso file.)

4) Will we finally get open man pages for these commands as well?  "man 
type" is not terribly useful on OpenSolaris 2008.05.

    -- Garrett

Roland Mainz wrote:
> Hi!
>
> ----
>
> <NOTE>Please note the _timeout_ is set to 2008-08-25 since we don't have
> much time left anymore, after that point the code will move to a
> Mercurial tree for final review and integration.</NOTE>
>
> Here comes round "two" of the preliminary code review for the first
> update of the ksh93 integration project: I created a webrevs based on
> today's (2008-08-22) ksh93-integration
> prototype012 Subversion tree which is based on the OS/Net Mercurial HEAD
> version.
>
> The webrev can be found at
> http://cr.opensolaris.org/~gisburn/ksh93_integration/ksh93_update1/webrev_20080821_001/
>
>
> ** Notes/comments:
> * "ident" lines will be removed either later or with a seperate putback
> immediately following this one to avoid constant bitrot in our tree by
> the currently "ident"-lint hunt in OS/Net
>
> * Most of the files cover a simple update but we have lots of new code,
> including:
> - usr/src/cmd/ksh/ now contains a subdirectory builtins/ which handles
> the mapping the commands "alias", "command", "fc", "fg", "getopts",
> "hash", "jobs", "kill", "printf", "read", "rev", "sleep", "sum", "test",
> "type", "ulimit", "umask", "unalias", "wait" (most of them were
> previously mapped to /usr/bin/ksh)
> - usr/src/cmd/shcomp/ contains the ksh93 shell script compiler
> - usr/src/cmd/nsadmin/ksh.kshrc contains a change which provides a
> default "PS1" based on a similar prompt delivered by SuSE. The change
> may be commented out in the final version to simplify the ARC case
> - usr/src/lib/libsum/ contains a new library from AT&T which handles
> cipher hashing method for the ksh93 "sum" builtin
> - usr/src/uts/ contains a new exec kernel module to recognize compiled
> shell scripts (generated by "shcomp" ; this module works in a similar
> way as the "javaexec" exec module)
>
> * The following utilties are affected by the change:
> - /usr/bin/kill's output for the "-l" option now uses newline as
> delimiter for values instead of a SPACE (both standard and the manual
> page explicitly allow both forms)
> - /usr/bin/printf is now mapped to ksh93's builtin command (e.g. another
> piece of closed-source software is gone and we get support for C99/XPG6,
> too... :-) )
> - /usr/bin/sleep is now mapped to ksh93's "sleep" builtin (which finally
> provides sub-second timeouts and C99/XPG6 conformance)
> - /usr/bin/sum is now mapped to ksh93's "sum" builtin (which includes
> lots of new functionality, including selectable ciphers)
> - /usr/bin/test now supports additional options and sub-second
> timestamps for files (ksh88 only supported 1sec granularity)
> - /usr/bin/ulimit's output for the "-a" option has changed, however the
> output is considered "not an interface", e.g. only for informative
> purposes
>
> Thanks in advance for your help!
>
> ----
>
> Bye,
> Roland
>
> P.S.: Rely-To: is set to ksh93-integration-discuss at opensolaris.org
>
>   


Reply via email to