Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
name: Lint
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
with:
components: "clippy, rustfmt"
Expand All @@ -35,7 +35,7 @@ jobs:
toolchain: [1.85.0, stable]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.toolchain }}
Expand All @@ -53,14 +53,14 @@ jobs:
name: cargo-deny
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: EmbarkStudios/cargo-deny-action@v2

publish-check:
name: Publish Check
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- run: cargo fetch
- name: cargo publish check
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

<!-- next-header -->
## [Unreleased] - ReleaseDate
### Changed
- [PR#89](https://github.com/EmbarkStudios/cfg-expr/pull/89) updated the builtin target list to 1.96.0, 1.95.0 was skipped as it had zero changes to the target list.

## [0.20.7] - 2026-03-06
### Changed
- [PR#87](https://github.com/EmbarkStudios/cfg-expr/pull/87) updated the builtin target list to 1.94.0.
Expand Down
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ targets = ["target-lexicon"]

[dependencies]
smallvec = "1.15"
target-lexicon = { version = "=0.13.3", optional = true }
target-lexicon = { version = "=0.13.5", optional = true }

[dev-dependencies]
similar-asserts = "1.7"
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

# `⚙️ cfg-expr`

**A parser and evaluator for Rust `cfg()` expressions. Builtin targets as of [1.94.0] are supported.**
**A parser and evaluator for Rust `cfg()` expressions. Builtin targets as of [1.96.0] are supported.**

[![Build Status](https://github.com/EmbarkStudios/cfg-expr/actions/workflows/ci.yml/badge.svg)](https://github.com/EmbarkStudios/cfg-expr/actions)
[![crates.io](https://img.shields.io/crates/v/cfg-expr.svg)](https://crates.io/crates/cfg-expr)
[![Docs](https://docs.rs/cfg-expr/badge.svg)](https://docs.rs/cfg-expr)
[![Minimum Supported Rust Version](https://img.shields.io/badge/Rust%20MSRV-1.85.0-blue?color=fc8d62&logo=rust)](https://blog.rust-lang.org/2025/02/20/Rust-1.85.0/)
[![Rust Targets](https://img.shields.io/badge/Rust%20Targets-1.94.0-blue.svg)](https://doc.rust-lang.org/rustc/platform-support.html)
[![Rust Targets](https://img.shields.io/badge/Rust%20Targets-1.96.0-blue.svg)](https://doc.rust-lang.org/rustc/platform-support.html)
[![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Embark](https://img.shields.io/badge/embark-open%20source-blueviolet.svg)](https://embark.dev/)
</div>
Expand All @@ -24,7 +24,7 @@

`cfg-expr` is a crate that can be used to parse and evaluate Rust `cfg()` expressions, both as declarable in Rust code itself, as well in Cargo manifests' `[target.'cfg()'.dependencies]` sections.

It contains a list of all builtin targets known to rustc as of [1.94.0] that can be used to determine if a particular cfg expression is satisfiable.
It contains a list of all builtin targets known to rustc as of [1.96.0] that can be used to determine if a particular cfg expression is satisfiable.

```rust
use cfg_expr::{targets::get_builtin_target_by_triple, Expression, Predicate};
Expand Down Expand Up @@ -100,4 +100,4 @@ at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

[1.94.0]: (https://doc.rust-lang.org/rustc/platform-support.html)
[1.96.0]: (https://doc.rust-lang.org/rustc/platform-support.html)
184 changes: 183 additions & 1 deletion src/targets/builtins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

use super::*;

pub(crate) const RUSTC_VERSION: &str = "1.94.0";
pub(crate) const RUSTC_VERSION: &str = "1.96.0";

pub const ALL_BUILTINS: &[TargetInfo] = &[
TargetInfo {
Expand Down Expand Up @@ -611,6 +611,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("aarch64v8r-unknown-none"),
os: None,
abi: None,
arch: Arch::aarch64,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 64,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("aarch64v8r-unknown-none-softfloat"),
os: None,
abi: Some(Abi::softfloat),
arch: Arch::aarch64,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 64,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("amdgcn-amd-amdhsa"),
os: Some(Os::amdhsa),
Expand Down Expand Up @@ -871,6 +897,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("armv6-none-eabi"),
os: None,
abi: Some(Abi::eabi),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("armv6-none-eabihf"),
os: None,
abi: Some(Abi::eabihf),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("armv6-unknown-freebsd"),
os: Some(Os::freebsd),
Expand Down Expand Up @@ -2847,6 +2899,19 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("s390x-unknown-none-softfloat"),
os: None,
abi: Some(Abi::softfloat),
arch: Arch::s390x,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 64,
endian: Endian::big,
has_atomics: HasAtomics::atomic_8_16_32_64_128_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("sparc-unknown-linux-gnu"),
os: Some(Os::linux),
Expand Down Expand Up @@ -2964,6 +3029,19 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::new_const(&[]),
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv6-none-eabi"),
os: None,
abi: Some(Abi::eabi),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv6m-none-eabi"),
os: None,
Expand All @@ -2990,6 +3068,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv7a-none-eabi"),
os: None,
abi: Some(Abi::eabi),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv7a-none-eabihf"),
os: None,
abi: Some(Abi::eabihf),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv7a-nuttx-eabi"),
os: Some(Os::nuttx),
Expand Down Expand Up @@ -3159,6 +3263,32 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("thumbv7r-none-eabi"),
os: None,
abi: Some(Abi::eabi),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv7r-none-eabihf"),
os: None,
abi: Some(Abi::eabihf),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv8m.base-none-eabi"),
os: None,
Expand Down Expand Up @@ -3237,6 +3367,19 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("thumbv8r-none-eabihf"),
os: None,
abi: Some(Abi::eabihf),
arch: Arch::arm,
env: None,
vendor: Some(Vendor::unknown),
families: Families::new_const(&[]),
pointer_width: 32,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::abort,
},
TargetInfo {
triple: Triple::new_const("wasm32-unknown-emscripten"),
os: Some(Os::emscripten),
Expand Down Expand Up @@ -3705,6 +3848,45 @@ pub const ALL_BUILTINS: &[TargetInfo] = &[
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("x86_64-unknown-linux-gnuasan"),
os: Some(Os::linux),
abi: None,
arch: Arch::x86_64,
env: Some(Env::gnu),
vendor: Some(Vendor::unknown),
families: Families::unix,
pointer_width: 64,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("x86_64-unknown-linux-gnumsan"),
os: Some(Os::linux),
abi: None,
arch: Arch::x86_64,
env: Some(Env::gnu),
vendor: Some(Vendor::unknown),
families: Families::unix,
pointer_width: 64,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("x86_64-unknown-linux-gnutsan"),
os: Some(Os::linux),
abi: None,
arch: Arch::x86_64,
env: Some(Env::gnu),
vendor: Some(Vendor::unknown),
families: Families::unix,
pointer_width: 64,
endian: Endian::little,
has_atomics: HasAtomics::atomic_8_16_32_64_ptr,
panic: Panic::unwind,
},
TargetInfo {
triple: Triple::new_const("x86_64-unknown-linux-gnux32"),
os: Some(Os::linux),
Expand Down
2 changes: 2 additions & 0 deletions update/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,8 @@ fn assemble(version: &str, rustc: String) -> Result<String, String> {
"relocation_model"
| "target_has_atomic_equal_alignment"
| "target_has_atomic_load_store"
| "target_has_atomic_primitive_alignment"
| "target_object_format"
| "fmt_debug" => {
//relocation_model = Some(val),
}
Expand Down