-
Notifications
You must be signed in to change notification settings - Fork 551
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
IRIX longdouble Infinity issues #14993
Comments
From @jhi(blead as of 033a6f7) Looks like IRIX long double (which happens to be big-endian double-double, but not using PPC as usual, but instead MIPS), has some issues with infinities. (1) If infinities are involved, multiplication is producing garbage bytes in the second double of the double-double. If I add byte hexdumps for the NV in Perl_do_ncmp (which is called by pp_eq) I can see for example: ./perl -wle '"Inf"*1 == "Inf"+0' ./perl -wle '"Inf"*"Inf" == "Inf"+0' The "7f f0" prefix is correct, and all that is needed for an infinity, the rest of the bytes should be zeros. The "3f f0" and "7f ef ff ... ff" after the midpoint (the second double of double-double) are unexpected garbage. (2) Then comparison of infinities (pp_eq, the last branch which compares NVs) seems to have issues: if e.g. the above bogus infinity 7f f0 00 00 00 00 00 00 3f f0 00 00 00 00 00 00 is compared with the true infinity, the bogus one is deemed to be "greater than", presumably because of the non-zero bytes. Because of these together, the following t/op/infnan.t tests are failing: not ok 14 - twice Inf is Inf Note that this is all with long doubles: with normal doubles, no problems in IRIX. |
From @jhiOn Sun Oct 18 19:31:02 2015, jhi wrote:
Resolved in http://perl5.git.perl.org/perl.git/commit/3ec400f5ce53ea1a56d283bc6bf59e75762df058 |
@jhi - Status changed from 'new' to 'resolved' |
Migrated from rt.perl.org#126396 (status was 'resolved')
Searchable as RT126396$
The text was updated successfully, but these errors were encountered: