-
-
Notifications
You must be signed in to change notification settings - Fork 450
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
Supported target_pointer_width: 32, 64-bit only? #1468
Comments
Value-portability: we make some effort to make results like sequence shuffling reproducible across 32- and 64-bit platforms (for lists up to |
As a library author (for It seems to me that the primary rationale is a combination of the targets being tier 3 and making seeded randomness the same across platforms? I'm not urging you to reconsider, but I do wish to express my frustration that these changes have brought about. Frankly, I'm seriously considering simply not supporting rand 0.9 because of it; it's not worth the hassle on my end. |
Is there some particular 16-bit target you want to support? As far as I can tell, the only listed Rust target which is not 32- or 64-bit is AVR and this is stale and broken. The AVR-Rust appears to be abandoned. And honestly, I'm not surprised. 16-bit targets are very memory constrained and Rust binaries are typically not that small, while the low complexity limit due to this memory constraint means that most of the advantages that a complex language like Rust has over C are lost. And 32-bit CPUs are cheap and ubiquitous today. So is there actually a 16-bit target worth trying to support? (And can we have a CI test which at least builds for that target and isn't prone to breaking frequently?) Regarding But, honestly, I'd suggest you simply drop support for |
There is no particular platform that I wish to support beyond being able to do so in principle. I'm not an embedded nerd...Raspberry Pis are good enough for me. Regarding |
I have no problem with supporting an actual target in principle, but from what I can tell there is no maintained 16-bit Rust target. |
All tier 1 and tier 2 platforms supported by Rust are 32- or 64-bit.
#1144 is the only issue I see regarding 16-bit support. Apparently this worked, but has been disabled since (#1269). Attempting to compile now:
As far as I can tell, these are the only 16-bit Tier 3 targets, and the first fails to build the core library while
zerocopy
fails to build the second (@josephlr).I don't see Rust support for any other pointer width.
Summary: our code can assume that the pointer width is 32 or 64 bits.
We should make this assumption explicit where code depends on this, e.g.:
(I'm working on a related PR.)
If anyone wishes to revive 16-bit support, then first we need a functional test platform (including dependencies). It may make sense to limit support to a small subset of
rand
. It will be considered at best a second-class platform, and tests will be disabled if they become problematic again.The text was updated successfully, but these errors were encountered: