-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Tracking issue for integer_atomics #99069
Comments
Updates rust-lang#32976. Updates rust-lang#99069.
…fJung Update integer_atomics tracking issue Updates rust-lang#32976. Updates rust-lang#99069. r? `@RalfJung`
…fJung Update integer_atomics tracking issue Updates rust-lang#32976. Updates rust-lang#99069. r? ``@RalfJung``
It'd be good to list the APIs that are covered by this tracking issue, and copy any open questions that have been noted in the RFC of the previous tracking issue. |
Updates rust-lang#32976. Updates rust-lang#99069.
…fJung Update integer_atomics tracking issue Updates rust-lang#32976. Updates rust-lang#99069. r? ``@RalfJung``
The unstable |
The standard library docs for |
What do you mean? Interestingly, in the online documentation the types don't show up at all, whereas they do show up in my local copy ( |
Apologies, I must have accidentally followed a link to somebody else's stale docs. |
the trait bound |
…=Amanieu remove the unstable `core::sync::atomic::ATOMIC_*_INIT` constants Tracking issue: rust-lang#99069 It would be weird to ever stabilise these as they are already deprecated.
Now that #120820 has been merged, there are multiple T1 targets that support 128-bit atomics: as well as a few lower-tier targets such as |
This will stabilize @rfcbot fcp merge |
Team member @Amanieu has proposed to merge this. The next step is review by the rest of the tagged team members: No concerns currently listed. Once a majority of reviewers approve (and at most 2 approvals are outstanding), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for info about what commands tagged team members can give me. |
@Amanieu Is this serving as a precedent for APIs that only work on a subset of targets? To be clear, I'm all for exposing target-specific APIs wherever appropriate. I want to make sure we apply the policy this FCP is implying consistently. :) |
Atomic types are already target-specific: |
🔔 This is now entering its final comment period, as per the review above. 🔔 |
That's disappointing. Where can I learn more about this constraint and/or ideas for resolving it? |
IIRC, the issue is that the Linux kernel, unlike Mac and Windows, does not require |
The final comment period, with a disposition to merge, as per the review above, is now complete. As the automated representative of the governance process, I would like to thank the author for their work and everyone else who contributed. This will be merged soon. |
As for the correctness of the current implementations:
As for future 128-bit atomic support on other targets (not stabilization blockers):
Footnotes
|
Reported as #130474 |
I'm updating the minimum to LLVM 18 in #130487. We can try updating the s390x target spec separately though, after we make sure it's not also broken. :) |
Support 128-bit atomics on s390x Since LLVM 18 (llvm/llvm-project@c568927), 128-bit atomics are fully supported on s390x. And the current minimum external LLVM version is now 18 (rust-lang#130487). s390x 128-bit atomic instructions (lpq,stpq,cdsg) has been present since [the First Edition of the Principles of Operation](https://publibfp.dhe.ibm.com/epubs/pdf/dz9zr000.pdf). (LLVM's minimal supported architecture level [is z10 (the Eighth Edition of the PoP)](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZProcessors.td#L16-L17).) cc rust-lang#99069 r? `@cuviper`
Rollup merge of rust-lang#130558 - taiki-e:s390x-atomic-128, r=cuviper Support 128-bit atomics on s390x Since LLVM 18 (llvm/llvm-project@c568927), 128-bit atomics are fully supported on s390x. And the current minimum external LLVM version is now 18 (rust-lang#130487). s390x 128-bit atomic instructions (lpq,stpq,cdsg) has been present since [the First Edition of the Principles of Operation](https://publibfp.dhe.ibm.com/epubs/pdf/dz9zr000.pdf). (LLVM's minimal supported architecture level [is z10 (the Eighth Edition of the PoP)](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZProcessors.td#L16-L17).) cc rust-lang#99069 r? `@cuviper`
Since generic |
I think it should be possible to enable the AtomicU128 cfg depending on whether the |
Tracking rust-lang/rfcs#1543.
Seems related to #56071. See also #57425 which stabilized other atomic integer widths.
The text was updated successfully, but these errors were encountered: