Stuart Ballard writes:
 > Andrew Haley <aph <at> redhat.com> writes:
 > > 
 > > This case is totally different: the test case is an illegal Java
 > > program.  In no circumstances should Mauve contain illegal programs!
 > 
 > While I disagree, I take your point, but I do take issue with your
 > terminology.

OK.

 > It's not an "illegal" Java program, it's a Java program with a
 > bug. If that makes it illegal, then every nontrivial Java program
 > is illegal.

No, that's not what I mean by illegal.  It's illegal in the sense that
the specification places requirements on the implementors of
subclasses, and that a subclass which does not meet these requirements
is not a well-defined Java program.

 > My position is that the line between spec and RI is fuzzy,
 > especially in the case of Java (at least to date, and for the next
 > year or so). And while that's a bad thing, it's the reality we live
 > in. There's a lot of code out there that assumes that "Java" means
 > the RI. Until that changes, we need to decide whether our mission
 > is an ideological goal - "implement the spec" - or a practical goal
 > - "provide a way for users to run programs written in Java on a
 > Free system".

Sure, we're in a weird halfway world.  Maybe the famous Sun TCK even
tests for this behaviour.

 > If our goal is the latter, then when a situation like this comes up
 > where lack of bug-compatibility is impacting an actual user's
 > ability to run actual code, then we should provide the
 > bug-compatibility for that situation, and take appropriate steps to
 > ensure that we don't regress on it.

OK.  I don't believe that illegal programs should be checked into
Mauve, and I'm amazed that anyone does.  I won't fight anyone who is
determined to do so.

 > As an aside, there is at least one reason for Mauve to contain
 > illegal programs - the spec may require that a particular kind of
 > illegal program fails to run in a particular way or with a
 > particular exception.

Sure.  But, in that case, we are checking to make sure that it fails,
which is reasonable enough.

 > > It is fully specified now.
 > 
 > I disagree with this point too; a full specification should include
 > a description of how error situations are handled, or state that
 > it's explicitly implementation dependent.

Programs whose behaviour is undefined *are* explicitly implementation-
dependent, surely.  It's not as though there were any doubt about this
one.

Andrew.

Reply via email to