Maybe I can clarify one thing.

strnlen() is one of the "newer" string (and perhaps a few other)
functions that was still in draft status under the Austin group
( http://www.opengroup.org/austin/ ) at the time it was added
which was
PSARC 2006/617, added in build 54 according to
http://hub.opensolaris.org/bin/view/Community+Group+on/51-55

At that time, there was a need for such a function (all the
discussion I can find is merely referenced in a summary
https://www.opensolaris.org/jive/thread.jspa?messageID=64602
so I assume the clearview folks were the ones that needed it).

I'd pointed out that strnlen() was the well-known answer to the
problem, and that many existing implementations (as well as the
Austin group draft description) were compatibly described.  So
it ended up in libc (and I'm told, in the kernel too, because it
was also needed there).

There seemed to be little interest at the time in pursuing all the
rest of the functions in the then-draft standard that weren't
present in Solaris.

And unfortunately, when the standard started to be approved by
various bodies in 2008, no interest in adding all the new stuff
seemed to materialize.

Don Cragun used to be the point man on standards, but at some
point (don't remember when) he left Sun to work elsewhere.  He
still participates here from time to time, but I don't know that
he or anyone ever had much luck being proactive.

I can understand not _integrating_ anything of less that rock-solid
consensus and stability before the standard is approved.  But
IMO, someone should have been keeping track of the new stuff,
and had code ready and a clear understanding of its implications,
so the missing stuff could have been added very quickly.

One strength that Solaris once had that Linux never cared about
nearly as much (given the notion that if both OS and apps are open
source, anyone can patch and recompile) is _standards_.  Unix,
especially the otherwise (before SVR4) pedestrian System V lineage,
was all about standards even before there was POSIX.  The
System V Interface Definition (SVID) formally separated specification
from implementation (even though that specification was based in
large part on the existing man pages, minus some things chosen
for whatever reason to be left out, and plus extra details as needed,
and eventually, plus separate platform ABI definitions as well - in principle,
binaries from various x86 implementations should have been able
to interoperate, although in practice even where it might work,
different shared libs and such made that rare).

That formal separation of spec from code adds immense stability.
The discipline is a very useful practice for understanding a large
set of interfaces, as well.

But app developers want to be able to _assume_ the existence
of the largest possible toolkit.  (laziness is _usually_ a virtue for 
programmers)

So many app developers (those more interested in a single platform than
in making there app as widely used as possible, and those less acquainted
with the practical benefits of standards, or grown cynical because of seeing
the standards or their implementations so far behind) gravitate to the place
that has the largest toolset.

And from their standpoint, it's not Solaris, or even OpenSolaris, that has that
anymore.

At _least_ vigorously tracking released standards is IMO crucial,
because without it, the argument that standards provide a basis
for discipline and portability falls apart.

I would very much like to see someone compare the OpenSolaris section 3*
man pages to The Open Group Base Specifications Issue 7 /
IEEE Std 1003.1™-2008
see what's what's missing, and get busy adding it.

I would even do some of the research and coding myself.  What I won't
do is spend a lot of time arguing about it and jumping through hoops.
-- 
This message posted from opensolaris.org
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code

Reply via email to