-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
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 |
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: