[illumos-Developer] webrev: printf

Garrett D'Amore garrett at damore.org
Thu Oct 14 10:56:05 PDT 2010


On Thu, 2010-10-14 at 19:39 +0200, Nicholas George wrote:
> On 14 October 2010 18:33, Garrett D'Amore <garrett at nexenta.com> wrote:
> > On Thu, 2010-10-14 at 18:08 +0200, Nicholas George wrote:
> >> On 14 October 2010 17:55, Garrett D'Amore <garrett at nexenta.com> wrote:
> >> > The new webrev with this change is here:
> >> >
> >> > http://cr.illumos.org/view/kx0342it/
> >>
> >> This will not pass the POSIX 2008 tests.
> >>
> >> Nicholas
> >
> >
> > Please explain further?  Do the tests pass random "-x" options and look
> > for a failure?  How do they know that "-x" isn't a supported option by
> > the implementation?
> 
> The VSC license prohibits distribution of the source but AFAIK
> describing the tests is OK.
> Test 19 passes - followed by [a-zA-Z] as options and probes stdout for
> these strings to show up there. The test fails if >=27 iterations all
> pass the strings in stdout.

I would argue that this test doesn't test what the *standard* says.  The
standard was pretty clear, you have to handle "--", but beyond that, any
option arguments are implementation defined behavior.  What's wrong with
my assertion that the implementation defined behavior for each of these
is to print "-", followed by the option letter itself, and treat the
remaining option data as the format?

> Test 21 passes -\# and -\\ as option. Neither # and \ are portable
> option characters. If both appear in stdout the test fails.

So its verboten to handle any non-portable option characters as part of
your implementation specific behavior?  Where is *that* specified in the
standard?

> 
> As final word to my contribution here: I see you already made the
> commit without waiting for the discussion to conclude. Based on the
> commit and your IRC comment that "pragmatism won here" I assume that
> POSIX and the Single Unix Standard will not play a key role in
> Illumos, which rule out Illumos as viable alternative to Solaris.
> I will recommend my employer, MBDA System Integration, to withdraw
> from Illumos and focus on Oracle Solaris 11 as host for our products.

While that's your choice, I can assure you of this:

	a) illumos' implementation is *no* worse than Oracle Solaris 11's in
this regard (in fact its even better in some respects, not related to
the standard).

	b) the printf implementation I just integrated *can* change, if there
is sufficient cause to do so.  Right now I don't hear sufficient cause.
(Given a choice I'd rather support broken scripts deployed in the field
than broken VSC tests.  One of these directly affects users, the other
does not.)

	c) Oracle probably doesn't care about POSIX in the least.  In fact, I
think Oracle has made it reasonably clear that the only ISV support that
they care about for Solaris 11 is Oracle itself.

That said, go ahead and withdraw from illumos if you feel that's in your
company's best interests.

	- Garrett






More information about the Developer mailing list