-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Consider using an embedded libm #10774
Comments
Unless there are objections, I plan on using openlibm. |
I don't know enough about it to make any comment, but I do think it would be awesome if the libm functionality was rewritten in Rust. But this might be reasonable in the short term. cc. @jensnockert |
I think we should support alternate math libraries, but I don't think we should be embedding any more libraries. |
There was also a discussion on IRC; I'm convinced that this is a bad idea. |
I'm re-opening this, because I think it's going to be necessary if we want to keep using the LLVM math intrinsics. These intrinsics assume |
I'm pulling a massive triage effort to get us ready for 1.0. As part of this, I'm moving stuff that's wishlist-like to the RFCs repo, as that's where major new things should get discussed/prioritized. This issue has been moved to the RFCs repo: rust-lang/rfcs#711 |
[significant_drop_tightening] Fix rust-lang#10413 Fix rust-lang#10413 This is quite a rewrite that unfortunately took a large amount of time. I tried my best to comment what is going on to easy review but feel free to ask any question. The problem basically is that the current algorithm is only taking into consideration single blocks which means that things like the following don't work or show unpredictable results. ```rust let mutex = Mutex::new(1); { let lock = mutex.lock().unwrap(); { let _ = *lock; } } ``` The solve the issue, each path that refers a lock is now being tracked individually. ``` changelog: [`significant_drop_tightening`]: Lift the restriction of only considerate single blocks ```
For performance and consistency reasons, we might want to bundle our own libm. It further reduces our dependency on system libraries, opens the potential for LTO, and gives us something we can control and define.
A good candidate is openlibm, which has a long history.
See #5702, #1222
The text was updated successfully, but these errors were encountered: