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
