Roland Mainz writes:
> James Carlson wrote:
> > April Chin writes:
> > > In particular, we're looking for code reviewers who can take a look at
> > > the non-Makefile files in
> > >       http://cr.grommit.com/~chin/ksh93-webrev-jul9/jul9-nonattfiles
[...]
> >   - The usual way for handling non-working lint targets is to make
[...]
> >     The current scheme works, but could be better.
> 
> The current scheme tries to avoid that people run into trouble when they
> manually walk through the directories and do a "make lint" (see "perl"
> build for a precedent) and then start to cleanup the lint warnings (see
> earlier comments about a "lint [warning cleanup] party" ...

OK.  There are issues here other than lint, though.  Someone could
decide to do a "printf cleanup party" or a "spelling fix party" and
run into exactly the same problem.  The generic issue is that we have
some sources where changes need to be fed upstream -- not just lint.

> >   - It'd be nice (though not required) to have helper scripts to do
> >     the grunt work required during the build process.  In particular,
> >     $SRC/cmd/kes/Makefile.testshell is pretty hard to read,
> 
> Why ? It's only one extra layer of esacping rules (for example
> Imakefiles have at least two layers) ... :-)

It's just the "ick" factor.  It's hard to read and thus hard to
maintain properly.

We could also transliterate it into Korean, but that probably wouldn't
help much, either.  :->

> >     with a
> >     bunch of escapes that are complicated by the fact that it's coded
> >     in the middle of a makefile.  Two or three lines are ok, but 58
> >     lines seems like a lot.
> 
> Erm... the problem is that it needs _lots_ of variables from the main
> Makefile

Yes, I see that.  It needs "several."

> and an external script would still require access to all those
> makefiles, e.g. you won't save much by replacing the current
> "in-Makefile" script with a giant list of variables passed to a script.
> And the script has 58 lines but around ~~18 extra lines are needed to
> squish the script into the 80-column format... ;-(
> ... but: If we switch SHELL=/usr/bin/ksh over to SHELL=/usr/bin/ksh93 at
> least ~~8-12 lines can be removed (e.g. all the "egrep" usage, the
> weired "while read ; print $REPLY ..."-loop etc.)

Still, when possible, I prefer to see largish scripts delivered
separately from the makefile.

> Anyway... for now I would prefer the current implementation (= without a
> seperate script) because it is IMO easier (at least for me (and we
> already put the rules into a seperate Makefile include to avoid that
> normal engieers die from looking at it by accident... =:-) )) ...

OK.

> >   - $SRC/cmd/sgs/libelf/Makefile.targ: why is a .WAIT needed before
> >     $(ROOTDEMODIRS)?  It looks like it should go with the rest of the
> >     directory targets.  (Probably just a nit.)
> 
> Erm... the ".WAIT" rule should make sure that the directories really
> exist before creating files into it, e.g. first create dirs, then
> populate it.

I don't follow.

$(ROOTDEMODIRS) is itself delivering a directory, and nothing else.
Does that directory depend on any of the directories that appear
before it in the list?  I don't think that it does.

I'm asking about the .WAIT that is *before* the $(ROOTDEMODIRS), and
not the one after.

> >   - The private libc buried in libast (unlinted, no less)
> 
> We're working on the lint part right now (and I still own David an email
> with feedback and I have to file a bug against Sun Studio 11's "lint"
> for reporting bogus warnings in C99 mode... ;-( ) ...

OK.

> >     is still
> >     frightening.  Not an issue to hold up integration, but I hope that
> >     something better will be done in the future.  Supporting more than
> >     one libc in ON seems like a hazard.
> 
> Well, there are at least four items why this part is there:

Yes; I'm well aware.  But in giving final comments, I still feel
I'd be remiss if I didn't mention that I think this kind of
duplication is a mistake, no matter what the intent.

> - Solaris libc functions not conforming to POSIX/XPG standards (this is

If you find any standards conformance problems, please do file bugs.

> - Historical limitations of the libc implementation (for example the

Also, file bugs.

> Solaris libc stdio implementation where is no way to integrate the AST
> stdio functionality without breaking backwards compatibilty (which is a
> _pain_ because the AST stdio implementation is much more flexible and
> _FASTER_). In theory there is the option to provide a build-time switch
> and build all new applications with an all-new stdio implementation...
> but I don't even dare to imagine how the matching ARC case would look
> like (war ? bloodbath ?) ...)

Having two of them seems like the worse answer.  I'd like to have one.
If moving some or all libast things into libc is the answer that
solves the duplication, then it sounds like a possible future way
forward to me.

I don't see why you're assuming there'd be a "war" here.  I don't get
it.

> - libast's functions have lots of extensions, for example the regular
> expression functions support more pattern matching modes (e.g.
> perl+shell expressions are currently supported and more may be added
> later). In theory this could be moved over to libc (and likely very
> welcomed by the community) but ARC'ing will be tricky because of some
> problematic restrictions in the libc code (which could be avoided by
> leaving the old code alone and only enable the extensions in >= XPG6
> mode... but I am not sure whether the standards people at Sun would be

Ick.  It'd be better to have extensions for all.  I understand if it's
just impossible, but I'm less understanding if it's merely
"problematic."

In any event, this sounds like detail for a future project, not
something to resolve here.

> happy to have "extensions" in the "XPG6 standard mode")

We've done it in other areas.  XPG _allows_ extensions.

> - Someone has to maintain the code. libast is maintained by David, Glenn
> and the AST community, including further development. If we put the
> functions into Solaris libc - who would do the syncing with upstream
> and/or doing further enhancements ?

Actually, you're putting libast into ON.  Someone has to pull changes
from the AST community and get them into ON.  That doesn't happen
"automatically," and it's not done by the AST people.  That same
someone who updates ON can very likely deal with things if the same
files are in different locations.

I don't see that as a substantial issue.

> >   - No changes were made to these files:
> >         $SRC/lib/libcmd/amd64/Makefile
> >         $SRC/lib/libcmd/i386/Makefile
> >         $SRC/lib/libcmd/sparc/Makefile
> >         $SRC/lib/libcmd/sparcv9/Makefile
> >     Don't deliver unchanged files.
> 
> What do you mean ?

Take a look at the diffs -- there are no changes to those files.  They
need to be removed from the workspace and reverted to the original in
the gate.

> >   - $SRC/pkgdefs/Makefile: looks like a missed merge.  (Not a code
> >     review issue, but you'll want to clean it up before going for
> >     RTI.)
> 
> Erm... what do you mean ?

Just a construction error in building the webrev.  April needs to make
a new one.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to