-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test failure in i686 #749
Comments
Thank you for reporting. It's not obvious to me what's happening here but I wouldn't be shocked if something 32-bit-related has snuck in. A good first step would be adding a CI build that reproduces the problem. This can be a bit annoying to do for Tectonic since we rely on external libraries, so you can't use a bare-bones cross-compilation environment, but for a platform like i686 there shouldn't be anything tricky to do, just a matter of getting the pieces together. |
This gives us an environment to test for 32-bit systems. Cf: tectonic-typesetting/tectonic#749
Hopefully this will help us catch any errors relating to 32-bit environments. Cf. tectonic-typesetting#749.
Using dviasm, I can get an analysis of the differences between the expected XDV file and the observed result on i686. Some of the differences seem to involve a reordering of commands:
Others seem to involve small floating-point differences (ruh roh):
Note that most of the test cases work, but not |
On my machine the following minimal testcase causes a difference between x86_64 and i686 output that looks like a floating-point rounding issue:
Leads to the following difference:
If the root cause really is different floating-point behavior, this might be unfixable; ... but note that the original test currently passes on a good selection of non-x86 platforms. The difference in the XDV files here is a single bit difference in the setglyphs width. |
I've identified at least one place that seems to introduce the possibility of floating-point roundoff errors differing between i686 and x86_64. In
The definition of
Evaluating the above testcase on 64-bit, I get output that includes:
On 32-bit in the same place I get:
The difference is minor, but big enough that I could imagine a roundoff error accumulating and resulting in a difference that emerges into the fixed-point code. |
OK, I think this will be fixed in #758. |
Yay, that's great :) I will be glad to see CI completely green next time we update the package! Thanks 😊 |
Looks like I need to figure out some new Windows failure that has popped up before I can merge #758, but we're almost there. Unfortunately I don't have a convenient way to debug the Windows stuff but I'll figure something out. |
Test failure on i686 reported upstream: tectonic-typesetting/tectonic#749
Test failure on i686 reported upstream: tectonic-typesetting/tectonic#749
The new Windows failure seems to have magically gone away with the latest Rust release, so I was able to merge the fix! I'll take it. This issue won't be truly fixed until I release a new version of the |
No worries! Thanks a lot :D Feel free to close the issue, unless you want to track it. |
Test failure on i686 reported upstream: tectonic-typesetting/tectonic#749
This should be fixed as of the 0.5.0 release. |
Hi, as part of packaging
tectonic
for Void Linux, we run testuites for the package, which led us to notice an issue with the testuite on i686 (glibc, so nothing out of the ordinary):This happens only with i686, x86_64 is fine. Could be i686 only, or could be 32-bit related.
The text was updated successfully, but these errors were encountered: