-
Notifications
You must be signed in to change notification settings - Fork 211
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
i128 intrinsics #133
i128 intrinsics #133
Conversation
Builds fail because they are still on an outdated nightly (in fact, nightly with i128 support is released yet). I'm currently only developing with |
ae515d0
to
d053642
Compare
Now still to do: a) unit tests b) better stage0 support. Then I'm ready for review :) |
c6cc332
to
d3b0497
Compare
Okay, I think adding tests is a little bit complicated, as the tests will only work on 64 bit non windows platforms... Is it okay if this doesn't get quickcheck like tests for now? if yes, r? @japaric |
e9d01fb
to
b78e956
Compare
@japaric I've added quickcheck tests. r? |
src/int/mul.rs
Outdated
let mut overflow = 2; | ||
let r = f(a, b, &mut overflow); | ||
if overflow != 0 && overflow != 1 { | ||
return None |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wouldn't a value different that 0 or 1 indicate a bug in our implementation? I think such case should panic instead of being skipped.
if d == 0 { | ||
None | ||
} else { | ||
// FIXME fix the segfault when the remainder is requested |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you open an issue about this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure!
Thanks, @est31. r=me with with the |
Changed it. Note that travis failed due to bug #136. |
📌 Commit f8a4e3f has been approved by |
i128 intrinsics Adds i128 intrinsics. Note that this PR doesn't do float intrinsics, due to the missing presence of macros, those are however still required in order for rustc to switch to this crate.
💔 Test failed - status-travis |
I have manually cleared the caches. Let's try again. @bors retry |
i128 intrinsics Adds i128 intrinsics. Note that this PR doesn't do float intrinsics, due to the missing presence of macros, those are however still required in order for rustc to switch to this crate.
hmm seems that
and
|
💔 Test failed - status-travis |
Well seems mips does not support i128 integers on clang, which means we should disable it anyway. Will disable all quickcheck tests for mips. |
r? @japaric |
Two reasons: * the C versions __divti3 and __modti3 are apparently broken, at least when used in quickcheck. They change their own arguments. * compiler_rt's support for mips is disabled already on clang [1]. Its desireable to support working "cargo test" on that compiler as well, and not greet the tester with linker errors. [1]: http://llvm.org/viewvc/llvm-project?view=revision&revision=224488
@bors r+ |
📌 Commit 37d3490 has been approved by |
i128 intrinsics Adds i128 intrinsics. Note that this PR doesn't do float intrinsics, due to the missing presence of macros, those are however still required in order for rustc to switch to this crate.
☀️ Test successful - status-appveyor, status-travis |
Adds i128 intrinsics.
Note that this PR doesn't do float intrinsics, due to the missing presence of macros, those are however still required in order for rustc to switch to this crate.