mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-07 20:57:21 +00:00

The x86 code contains several macros that following this pattern: ```rust macro_rules! expr { () => { true; } } fn bar(_val: bool) {} fn main() { bar(expr!()); } ``` Here, we have a macro `expr!` that expands to tokens sequence with a trailing semicolon. Currently, the trailing semicolon is ignored when the macro is invoked in expression position, due to https://github.com/rust-lang/rust/issues/33953 If this behavior is changed, then a large number of macro invocations in `stdarch` will stop compiling. Regardless of whether nor not this change is made, removing the semicolon more clearly expresses the intent of the code - these macros are designed to expand to the result of a function call, not ignore its results (as the `;` would suggest).
stdarch - Rust's standard library SIMD components
Crates
This repository contains two main crates:
-
core_arch
implementscore::arch
- Rust's core library architecture-specific intrinsics, and -
std_detect
implementsstd::detect
- Rust's standard library run-time CPU feature detection.
The std::simd
component now lives in the
packed_simd
crate.
How to do a release
To do a release of the core_arch
and std_detect
crates,
- bump up the version appropriately,
- comment out the
dev-dependencies
in theirCargo.toml
files (due to https://github.com/rust-lang/cargo/issues/4242), - publish the crates.