-
Notifications
You must be signed in to change notification settings - Fork 498
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
stabilize const_extern_fn
#1596
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ehuss
added
the
S-waiting-on-stabilization
Waiting for a stabilization PR to be merged in the main Rust repository
label
Sep 3, 2024
traviscross
approved these changes
Sep 3, 2024
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.
This looks right. This is pending the stabilization in:
bors
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Sep 14, 2024
…, r=RalfJung stabilize `const_extern_fn` closes rust-lang#64926 tracking issue: rust-lang#64926 reference PR: rust-lang/reference#1596 ## Stabilizaton Report ### Summary Using `const extern "Rust"` and `const extern "C"` was already stabilized (since version 1.62.0, see rust-lang#95346). This PR stabilizes the other calling conventions: it is now possible to write `const unsafe extern "calling-convention" fn` and `const extern "calling-convention" fn` for any supported calling convention: ```rust const extern "C-unwind" fn foo1(val: u8) -> u8 { val + 1} const extern "stdcall" fn foo2(val: u8) -> u8 { val + 1} const unsafe extern "C-unwind" fn bar1(val: bool) -> bool { !val } const unsafe extern "stdcall" fn bar2(val: bool) -> bool { !val } ``` This can be used to const-ify an `extern fn`, or conversely, to make a `const fn` callable from external code. r? T-lang cc `@RalfJung`
ehuss
approved these changes
Sep 15, 2024
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.
Thanks!
github-actions bot
pushed a commit
to rust-lang/miri
that referenced
this pull request
Sep 16, 2024
stabilize `const_extern_fn` closes rust-lang/rust#64926 tracking issue: rust-lang/rust#64926 reference PR: rust-lang/reference#1596 ## Stabilizaton Report ### Summary Using `const extern "Rust"` and `const extern "C"` was already stabilized (since version 1.62.0, see rust-lang/rust#95346). This PR stabilizes the other calling conventions: it is now possible to write `const unsafe extern "calling-convention" fn` and `const extern "calling-convention" fn` for any supported calling convention: ```rust const extern "C-unwind" fn foo1(val: u8) -> u8 { val + 1} const extern "stdcall" fn foo2(val: u8) -> u8 { val + 1} const unsafe extern "C-unwind" fn bar1(val: bool) -> bool { !val } const unsafe extern "stdcall" fn bar2(val: bool) -> bool { !val } ``` This can be used to const-ify an `extern fn`, or conversely, to make a `const fn` callable from external code. r? T-lang cc `@RalfJung`
compiler-errors
added a commit
to compiler-errors/rust
that referenced
this pull request
Sep 24, 2024
Update books ## rust-lang/book 5 commits in e7d217be2a75ef1753f0988d6ccaba4d7e376259..99cf75a5414fa8adbe3974bd0836661ca901708f 2024-09-23 16:18:39 UTC to 2024-09-11 18:38:03 UTC - translations: remove broken link (rust-lang/book#4036) - Update build instructions: include mdbook plugins (rust-lang/book#4032) - Add `cargo init` usage suggestion to 1.3 (rust-lang/book#4025) - Use immutable borrow of `TcpStream` when creating `BufReader` (rust-lang/book#4024) - Upgrade to Rust 1.81 (rust-lang/book#4031) ## rust-lang/edition-guide 1 commits in b3ca7ade0f87d7e3fb538776defc5b2cc4188172..c7ebae25cb4801a31b6f05353f6d85bfa6feedd1 2024-09-22 08:47:02 UTC to 2024-09-22 08:47:02 UTC - Update static_mut_refs now that it is a lint (rust-lang/edition-guide#322) ## rust-lang/reference 10 commits in 687faf9958c52116d003b41dfd29cc1cf44f5311..24fb2687cdbc54fa18ae4acf5d879cfceca77b2c 2024-09-22 09:07:12 UTC to 2024-09-10 19:24:17 UTC - do not talk about the 'address of a constant' (rust-lang/reference#1624) - Add spec identifier syntax to interior-mutability.md (rust-lang/reference#1585) - Add spec identifier syntax to input-format.md (rust-lang/reference#1584) - Document limitations on block doc comments (rust-lang/reference#1602) - Places based on misaligned pointers: also mention 'static's as a possible base for place projections (rust-lang/reference#1606) - type-layout: mention that call ABI compatibility is a separate concern (rust-lang/reference#1608) - stabilize `const_extern_fn` (rust-lang/reference#1596) - const_eval: update for const_mut_refs and const_refs_to_cell stabilization (rust-lang/reference#1590) - fix: unclosed tag `sup` (rust-lang/reference#1612) - Fix improper documentation on casting non_exhaustive enums (rust-lang/reference#1607) ## rust-lang/rustc-dev-guide 13 commits in 0ed9229..555f3de 2024-09-23 12:51:33 UTC to 2024-09-10 07:32:10 UTC - chore: add missing `.` (rust-lang/rustc-dev-guide#2074) - Add remark on required free disk space (rust-lang/rustc-dev-guide#2073) - fix broken links (rust-lang/rustc-dev-guide#2063) - Add advice about submitting potentially hard-to-review PRs (rust-lang/rustc-dev-guide#2036) - Edit a sentence for clarity (rust-lang/rustc-dev-guide#2071) - Emphasize how to run a single tool test (rust-lang/rustc-dev-guide#2070) - Remove chalk is owned by WG-traits (rust-lang/rustc-dev-guide#2068) - Fix conditions lowering text for enums with no fields (rust-lang/rustc-dev-guide#2066) - update proof tree chapter (rust-lang/rustc-dev-guide#2054) - Add docs for JS tests (rust-lang/rustc-dev-guide#2048) - Reflect `x.py test`'s `--rustc-args` option being renamed to `--compiletest-rustc-args` (rust-lang/rustc-dev-guide#2062) - we standardized on this more reliable command (rust-lang/rustc-dev-guide#2061) - Fix Typo and Remove Outdated Line About C Variadics (rust-lang/rustc-dev-guide#2060)
compiler-errors
added a commit
to compiler-errors/rust
that referenced
this pull request
Sep 24, 2024
Update books ## rust-lang/book 5 commits in e7d217be2a75ef1753f0988d6ccaba4d7e376259..99cf75a5414fa8adbe3974bd0836661ca901708f 2024-09-23 16:18:39 UTC to 2024-09-11 18:38:03 UTC - translations: remove broken link (rust-lang/book#4036) - Update build instructions: include mdbook plugins (rust-lang/book#4032) - Add `cargo init` usage suggestion to 1.3 (rust-lang/book#4025) - Use immutable borrow of `TcpStream` when creating `BufReader` (rust-lang/book#4024) - Upgrade to Rust 1.81 (rust-lang/book#4031) ## rust-lang/edition-guide 1 commits in b3ca7ade0f87d7e3fb538776defc5b2cc4188172..c7ebae25cb4801a31b6f05353f6d85bfa6feedd1 2024-09-22 08:47:02 UTC to 2024-09-22 08:47:02 UTC - Update static_mut_refs now that it is a lint (rust-lang/edition-guide#322) ## rust-lang/reference 10 commits in 687faf9958c52116d003b41dfd29cc1cf44f5311..24fb2687cdbc54fa18ae4acf5d879cfceca77b2c 2024-09-22 09:07:12 UTC to 2024-09-10 19:24:17 UTC - do not talk about the 'address of a constant' (rust-lang/reference#1624) - Add spec identifier syntax to interior-mutability.md (rust-lang/reference#1585) - Add spec identifier syntax to input-format.md (rust-lang/reference#1584) - Document limitations on block doc comments (rust-lang/reference#1602) - Places based on misaligned pointers: also mention 'static's as a possible base for place projections (rust-lang/reference#1606) - type-layout: mention that call ABI compatibility is a separate concern (rust-lang/reference#1608) - stabilize `const_extern_fn` (rust-lang/reference#1596) - const_eval: update for const_mut_refs and const_refs_to_cell stabilization (rust-lang/reference#1590) - fix: unclosed tag `sup` (rust-lang/reference#1612) - Fix improper documentation on casting non_exhaustive enums (rust-lang/reference#1607) ## rust-lang/rustc-dev-guide 13 commits in 0ed9229..555f3de 2024-09-23 12:51:33 UTC to 2024-09-10 07:32:10 UTC - chore: add missing `.` (rust-lang/rustc-dev-guide#2074) - Add remark on required free disk space (rust-lang/rustc-dev-guide#2073) - fix broken links (rust-lang/rustc-dev-guide#2063) - Add advice about submitting potentially hard-to-review PRs (rust-lang/rustc-dev-guide#2036) - Edit a sentence for clarity (rust-lang/rustc-dev-guide#2071) - Emphasize how to run a single tool test (rust-lang/rustc-dev-guide#2070) - Remove chalk is owned by WG-traits (rust-lang/rustc-dev-guide#2068) - Fix conditions lowering text for enums with no fields (rust-lang/rustc-dev-guide#2066) - update proof tree chapter (rust-lang/rustc-dev-guide#2054) - Add docs for JS tests (rust-lang/rustc-dev-guide#2048) - Reflect `x.py test`'s `--rustc-args` option being renamed to `--compiletest-rustc-args` (rust-lang/rustc-dev-guide#2062) - we standardized on this more reliable command (rust-lang/rustc-dev-guide#2061) - Fix Typo and Remove Outdated Line About C Variadics (rust-lang/rustc-dev-guide#2060)
rust-timer
added a commit
to rust-lang-ci/rust
that referenced
this pull request
Sep 24, 2024
Rollup merge of rust-lang#130759 - rustbot:docs-update, r=ehuss Update books ## rust-lang/book 5 commits in e7d217be2a75ef1753f0988d6ccaba4d7e376259..99cf75a5414fa8adbe3974bd0836661ca901708f 2024-09-23 16:18:39 UTC to 2024-09-11 18:38:03 UTC - translations: remove broken link (rust-lang/book#4036) - Update build instructions: include mdbook plugins (rust-lang/book#4032) - Add `cargo init` usage suggestion to 1.3 (rust-lang/book#4025) - Use immutable borrow of `TcpStream` when creating `BufReader` (rust-lang/book#4024) - Upgrade to Rust 1.81 (rust-lang/book#4031) ## rust-lang/edition-guide 1 commits in b3ca7ade0f87d7e3fb538776defc5b2cc4188172..c7ebae25cb4801a31b6f05353f6d85bfa6feedd1 2024-09-22 08:47:02 UTC to 2024-09-22 08:47:02 UTC - Update static_mut_refs now that it is a lint (rust-lang/edition-guide#322) ## rust-lang/reference 10 commits in 687faf9958c52116d003b41dfd29cc1cf44f5311..24fb2687cdbc54fa18ae4acf5d879cfceca77b2c 2024-09-22 09:07:12 UTC to 2024-09-10 19:24:17 UTC - do not talk about the 'address of a constant' (rust-lang/reference#1624) - Add spec identifier syntax to interior-mutability.md (rust-lang/reference#1585) - Add spec identifier syntax to input-format.md (rust-lang/reference#1584) - Document limitations on block doc comments (rust-lang/reference#1602) - Places based on misaligned pointers: also mention 'static's as a possible base for place projections (rust-lang/reference#1606) - type-layout: mention that call ABI compatibility is a separate concern (rust-lang/reference#1608) - stabilize `const_extern_fn` (rust-lang/reference#1596) - const_eval: update for const_mut_refs and const_refs_to_cell stabilization (rust-lang/reference#1590) - fix: unclosed tag `sup` (rust-lang/reference#1612) - Fix improper documentation on casting non_exhaustive enums (rust-lang/reference#1607) ## rust-lang/rustc-dev-guide 13 commits in 0ed9229..555f3de 2024-09-23 12:51:33 UTC to 2024-09-10 07:32:10 UTC - chore: add missing `.` (rust-lang/rustc-dev-guide#2074) - Add remark on required free disk space (rust-lang/rustc-dev-guide#2073) - fix broken links (rust-lang/rustc-dev-guide#2063) - Add advice about submitting potentially hard-to-review PRs (rust-lang/rustc-dev-guide#2036) - Edit a sentence for clarity (rust-lang/rustc-dev-guide#2071) - Emphasize how to run a single tool test (rust-lang/rustc-dev-guide#2070) - Remove chalk is owned by WG-traits (rust-lang/rustc-dev-guide#2068) - Fix conditions lowering text for enums with no fields (rust-lang/rustc-dev-guide#2066) - update proof tree chapter (rust-lang/rustc-dev-guide#2054) - Add docs for JS tests (rust-lang/rustc-dev-guide#2048) - Reflect `x.py test`'s `--rustc-args` option being renamed to `--compiletest-rustc-args` (rust-lang/rustc-dev-guide#2062) - we standardized on this more reliable command (rust-lang/rustc-dev-guide#2061) - Fix Typo and Remove Outdated Line About C Variadics (rust-lang/rustc-dev-guide#2060)
github-actions bot
pushed a commit
to rust-lang/miri
that referenced
this pull request
Sep 25, 2024
Update books ## rust-lang/book 5 commits in e7d217be2a75ef1753f0988d6ccaba4d7e376259..99cf75a5414fa8adbe3974bd0836661ca901708f 2024-09-23 16:18:39 UTC to 2024-09-11 18:38:03 UTC - translations: remove broken link (rust-lang/book#4036) - Update build instructions: include mdbook plugins (rust-lang/book#4032) - Add `cargo init` usage suggestion to 1.3 (rust-lang/book#4025) - Use immutable borrow of `TcpStream` when creating `BufReader` (rust-lang/book#4024) - Upgrade to Rust 1.81 (rust-lang/book#4031) ## rust-lang/edition-guide 1 commits in b3ca7ade0f87d7e3fb538776defc5b2cc4188172..c7ebae25cb4801a31b6f05353f6d85bfa6feedd1 2024-09-22 08:47:02 UTC to 2024-09-22 08:47:02 UTC - Update static_mut_refs now that it is a lint (rust-lang/edition-guide#322) ## rust-lang/reference 10 commits in 687faf9958c52116d003b41dfd29cc1cf44f5311..24fb2687cdbc54fa18ae4acf5d879cfceca77b2c 2024-09-22 09:07:12 UTC to 2024-09-10 19:24:17 UTC - do not talk about the 'address of a constant' (rust-lang/reference#1624) - Add spec identifier syntax to interior-mutability.md (rust-lang/reference#1585) - Add spec identifier syntax to input-format.md (rust-lang/reference#1584) - Document limitations on block doc comments (rust-lang/reference#1602) - Places based on misaligned pointers: also mention 'static's as a possible base for place projections (rust-lang/reference#1606) - type-layout: mention that call ABI compatibility is a separate concern (rust-lang/reference#1608) - stabilize `const_extern_fn` (rust-lang/reference#1596) - const_eval: update for const_mut_refs and const_refs_to_cell stabilization (rust-lang/reference#1590) - fix: unclosed tag `sup` (rust-lang/reference#1612) - Fix improper documentation on casting non_exhaustive enums (rust-lang/reference#1607) ## rust-lang/rustc-dev-guide 13 commits in 0ed9229f5b6f7824b333beabd7e3d5ba4b9bd971..555f3de2fa0d61c4294b74d245f1cbad6fcbf589 2024-09-23 12:51:33 UTC to 2024-09-10 07:32:10 UTC - chore: add missing `.` (rust-lang/rustc-dev-guide#2074) - Add remark on required free disk space (rust-lang/rustc-dev-guide#2073) - fix broken links (rust-lang/rustc-dev-guide#2063) - Add advice about submitting potentially hard-to-review PRs (rust-lang/rustc-dev-guide#2036) - Edit a sentence for clarity (rust-lang/rustc-dev-guide#2071) - Emphasize how to run a single tool test (rust-lang/rustc-dev-guide#2070) - Remove chalk is owned by WG-traits (rust-lang/rustc-dev-guide#2068) - Fix conditions lowering text for enums with no fields (rust-lang/rustc-dev-guide#2066) - update proof tree chapter (rust-lang/rustc-dev-guide#2054) - Add docs for JS tests (rust-lang/rustc-dev-guide#2048) - Reflect `x.py test`'s `--rustc-args` option being renamed to `--compiletest-rustc-args` (rust-lang/rustc-dev-guide#2062) - we standardized on this more reliable command (rust-lang/rustc-dev-guide#2061) - Fix Typo and Remove Outdated Line About C Variadics (rust-lang/rustc-dev-guide#2060)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
S-waiting-on-stabilization
Waiting for a stabilization PR to be merged in the main Rust repository
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
to stabilize rust-lang/rust#64926.
This feels a little bare-bones, but I guess that is sort of what the spec is for: just factual statements.