I've just discovered the first unit test that executes with different output
on two machines. Specifically, the vec-badly-typed test emits diagnostics
with different type variable names on 32-bit F13 than it does on 64-bit F11.
I haven't yet tried other 32-bit platforms.

This is a fairly major nuisance. I can canonicalize the type variable names
shown during error diagnostics, but that weakens the diagnostics a fair bit.
Alternatively, I can gin up an output comparison tool that compares the
reference output and the actual output up to alpha renaming of type
variables for regression checking purposes.

Not clear what to do here. On the one hand, the internal names of temporary
type variables certainly aren't part of the output specification, but on the
other, it's disturbing that the execution on this input does not seem to be
deterministic between the two platforms. It should be, and that raises the
possibility of a latent 32-bit/64-bit issue. All the other tests generate
consistent output.

Anybody want to take a look a this? The vec-badly-typed unit test is
expected to fail, but the expected stderr output is known and checked. If
you get a dump of expected vs. actual output when you run "make
vec-badly-typed.test" in tests/unit/, you're reproducing the issue.


shap
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to