The diag() debate raged on in pdx tonight.  Of course, the sides are 
roughly in agreement about most things, but with differing priorities 
and ideas about particulars of the implementation.

Perhaps it's time to collect the issues and do some thinking.

Fundamentals:

1.  Anything on STDERR cannot be meaningful to a tap consumer.

Facts:

1.  STDERR has historically been used for (non-parsable) failure
    messages.

2.  Completely synchronizing two filehandles is not possible at the
    harness level (unless the harness is the kernel, then *maybe*.)

3.  Merging STDOUT and STDERR breaks starting with `warn "ok";`

Wants:

1.  Identifiable (tagged) error messages as a formal part of TAP.

  ~1.5 Display errors synchronously in relation to failing tests.

2.  Backwards parser/producer compatibility (mostly with expectations
    created by fact 1.)

Please correct and clarify as needed.  I've tried to cook this down into 
the essentials.  If there is a significant fact or want which is not a 
subset of the above, then I have completely misunderstood.  If I've got 
the fundamentals wrong, then I'm done -- stick a fork in me.  If I've 
got the facts wrong, correct me; otherwise, they're uh... facts.

At the moment, what I'm seeing is differences in priorities placed on 
wants #1 and #2 and/or how much of "which want" you're willing to give 
up for the other.

Forget for a moment about 'Undefined variable' and such warnings (except 
to remember that they exist and can ruin your day if the protocol gets 
in their way (I think that's the "cannot be meaningful" part of the 
fundamental.))

--Eric
-- 
"Beware of bugs in the above code; I have only proved it correct, not
tried it."
--Donald Knuth
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to