On 10/26/12 6:45 PM, H. S. Teoh wrote:
http://d.puremagic.com/issues/show_bug.cgi?id=8900

:-(

(The code there is called cartesianProd but it's the reduced code, so it
doesn't really compute the cartesian product. But that's where it's
from.)

So far, the outstanding blockers for cartesianProduct are:
1) Compiler bug which causes unittest failure:

        std/range.d(4629): Error: variable lower used before set
        std/range.d(4630): Error: variable upper used before set

(Jonathan had a pull request with a Phobos workaround for this, which I
_think_ is already merged, but the autotester is still failing at this
point. :-/)

2) Issue 8542 (crosstalk between template instantiations)

3) And now, issue 8900 (zip fails to compile with repeat(char[]))

So there's still no joy for cartesianProduct. :-(

Often when there are many issues caused by a specific artifact, there are only a couple of compiler bugs manifesting themselves in various unpredictable ways.

I'm getting a bit frustrated with the Phobos bugs related to ranges and
std.algorithm. I think we need to increase the number of unittests. And
by that I mean, GREATLY increase the number of unittests.

I don't think that's the best way. Walter and I have had a lasting disagreement about this as he firmly believes unittests are the way to make sure the compiler works well. In my opinion the psychological effect has been negative because this outlook has caused incompletely-defined features to get implemented (in a latent expectation that unittests will cause any issues to be detected).


Andrei

Reply via email to