about summary refs log tree commit diff
path: root/library/std_detect
AgeCommit message (Collapse)AuthorLines
2025-09-13std_detect Darwin AArch64: synchronize featuresLaine Taffin Altman-0/+11
Brings the list of checkable features up to date with the initial release of macOS 26 "Tahoe".
2025-09-13std_detect Darwin AArch64: re-alphabetizeLaine Taffin Altman-3/+3
2025-09-13std_detect Darwin AArch64: add new-style detection for FEAT_CRC32Laine Taffin Altman-2/+3
Now that this feature has a standard identifier, Darwin has started exposing it accordingly, in addition to the existing less-standard way. Check both, and enable the `crc` feature if either identifier for it is present to ensure backwards and forwards compatibility.
2025-09-12fix typo in commentFang He-1/+1
2025-09-08fix typos in commentFang He-2/+2
2025-09-08add some comments to clarify the fixFang He-0/+6
2025-09-08check before test for hardware capabilites in bits 32~63 of usizeFang He-33/+38
2025-08-21Rollup merge of #145415 - a4lg:riscv-implication-to-c, r=AmanieuJacob Pratt-1/+21
std_detect: RISC-V: implement implication to "C" Just like we implemented relatively complex rules to imply other extensions **from** "C" (and some others), this commit implements implication **to** the "C" extension from others, complying the following text in the ISA Manual (although there's no direct imply/depend references). > The C extension is the superset of the following extensions: > > - Zca > - Zcf if F is specified (RV32 only) > - Zcd if D is specified This is formally verified so that no other extension combinations (*not* in this implementation) can (currently) imply the "C" extension. Note: this is a `std_detect` change and not main target feature handling.
2025-08-20Rollup merge of #145619 - joshtriplett:use-the-right-core, r=tgross35Jacob Pratt-2/+2
`std_detect`: Use `rustc-std-workspace-*` to pull in `compiler-builtins` https://github.com/rust-lang/rust/pull/145489 changed `std_detect` to no longer depend on `cfg-if`, which meant it no longer indirectly pulled in `rustc-std-workspace-core` via `cfg-if`. That caused it to no longer depend on `compiler-builtins`. Change `std_detect` to use `rustc-std-workspace-core` and `rustc-std-workspace-alloc`, to integrate with the rustc workspace. This also pulls in `compiler-builtins` via `rustc-std-workspace-core`. Closes: https://github.com/rust-lang/rust/issues/145594
2025-08-20Rollup merge of #145531 - sayantn:detect-apxf-avx10, r=AmanieuJacob Pratt-25/+47
Add runtime detection for APX-F and AVX10 This was missed in rust-lang/rust#139534 and rust-lang/rust#139675 `@rustbot` label O-x86_64 O-x86_32 A-target-feature r? `@Amanieu`
2025-08-20Rollup merge of #145417 - a4lg:riscv-arch-platform-guide-ch2, r=AmanieuJacob Pratt-83/+114
std_detect: RISC-V platform guide documentation This is practically a revert of a revert, making the commit e907456b2e10622ccd854a3bba8d02ce170b5dbb on `stdarch` come around again with minor fixes, enhancements and adjustments. An excerpt from the original commit message follows: Since there's no architectural feature detection on RISC-V (unlike `CPUID` on x86 architectures and some system registers on Arm/AArch64), runtime feature detection entirely depends on the platform-specific facility. As a result, availability of each feature heavily depends on the platform and its version. To help users make a decision for feature checking on a RISC-V system, this commit adds a platform guide with minimum supported platform versions.
2025-08-19`std_detect`: Use `rustc-std-workspace-*` to pull in `compiler-builtins`Josh Triplett-2/+2
https://github.com/rust-lang/rust/pull/145489 changed `std_detect` to no longer depend on `cfg-if`, which meant it no longer indirectly pulled in `rustc-std-workspace-core` via `cfg-if`. That caused it to no longer depend on `compiler-builtins`. Change `std_detect` to use `rustc-std-workspace-core` and `rustc-std-workspace-alloc`, to integrate with the rustc workspace. This also pulls in `compiler-builtins` via `rustc-std-workspace-core`. Closes: https://github.com/rust-lang/rust/issues/145594
2025-08-19Rollup merge of #145099 - heiher:loong-32s, r=folkertdev许杰友 Jieyou Xu (Joe)-7/+11
rustc_target: Add the `32s` target feature for LoongArch LLVM: https://github.com/llvm/llvm-project/pull/139695
2025-08-19std_detect: RISC-V: implement implication to "C"Tsukasa OI-1/+21
Just like we implemented relatively complex rules to imply other extensions **from** "C" (and some others), this commit implements implication **to** the "C" extension from others, complying the following text in the ISA Manual (although there's no direct imply/depend references). > The C extension is the superset of the following extensions: > > - Zca > - Zcf if F is specified (RV32 only) > - Zcd if D is specified This is formally verified so that no other extension combinations (*not* in this implementation) can (currently) imply the "C" extension.
2025-08-17Add runtime detection for APX-F and AVX10sayantn-25/+47
2025-08-16library: Migrate from `cfg_if` to `cfg_select`Josh Triplett-59/+85
Migrate the standard library from using the external `cfg_if` crate to using the now-built-in `cfg_select` macro. This does not yet eliminate the dependency from `library/std/Cargo.toml`, because while the standard library itself no longer uses `cfg_if`, it also incorporates the `backtrace` crate, which does. Migration assisted by the following vim command (after selecting the full `cfg_if!` invocation): ``` '<,'>s/\(cfg_if::\)\?cfg_if/cfg_select/ | '<,'>s/^\( *\)} else {/\1}\r\1_ => {/c | '<,'>s/^\( *\)} else if #\[cfg(\(.*\))\] /\1}\r\1\2 => /e | '<,'>s/if #\[cfg(\(.*\))\] {/\1 => {/e ``` This is imperfect, but substantially accelerated the process. This prompts for confirmation on the `} else {` since that can also appear inside one of the arms. This also requires manual intervention to handle any multi-line conditions.
2025-08-15std_detect: RISC-V platform guide documentationTsukasa OI-83/+114
This is practically a revert of a revert, making the commit e907456b2e10622ccd854a3bba8d02ce170b5dbb on `stdarch` come around again with minor fixes, enhancements and adjustments. An excerpt from the original commit message follows: Since there's no architectural feature detection on RISC-V (unlike `CPUID` on x86 architectures and some system registers on Arm/AArch64), runtime feature detection entirely depends on the platform-specific facility. As a result, availability of each feature heavily depends on the platform and its version. To help users make a decision for feature checking on a RISC-V system, this commit adds a platform guide with minimum supported platform versions.
2025-08-09rustc_target: Add the `32s` target feature for LoongArchWANG Rui-7/+11
2025-07-31std_detect: Linux 6.16 support for RISC-VTsukasa OI-4/+10
It adds feature detection of 1 extension (new in std_detect). New RISC-V Extension: 1. "Zabha"
2025-07-24std_detect testing improvementsbjorn3-3/+3
* Fix riscv testing. Previously the mod tests; would be looking for src/detect/os/tests.rs. * Replace a test with an unnamed const item. It is testing that no warnings are emitted. It doesn't contain any checks that need to run at runtime. Replacing the test allows removing the tidy:skip directive for test locations.
2025-07-22Embed auxv files directly into the test binaryJakub Beránek-12/+10
2025-07-22Improve error messages of auxv loadingJakub Beránek-10/+17
2025-07-22Remove licenses from std-detectJakub Beránek-226/+0
They are subsumed by the main repo licenses.
2025-07-22Fix warningJakub Beránek-0/+10
2025-07-22Move tests around to appease `tidy`Jakub Beránek-261/+256
2025-07-22Reformat `std_detect`Jakub Beránek-182/+54
2025-07-22Make `std_detect` a direct dependency of `std`Jakub Beránek-9/+3
2025-07-22Move `std_detect` from `library/stdarch` to `library`Jakub Beránek-0/+5427