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
14 changes: 11 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,21 @@ Subheadings to categorize changes are `added, changed, deprecated, removed, fixe

-->

The latest published Fearless SIMD release is [0.7.0](#070-2026-08-11) which was released on 2026-08-11.
You can find its changes [documented below](#070-2026-08-11).
The latest published Fearless SIMD release is [1.0.0](#100-2026-09-21) which was released on 2026-09-21,
alongside `fearless_simd_macros` 0.1.0.
You can find their changes [documented below](#100-2026-09-21).

## [Unreleased]

This release has an [MSRV][] of 1.89.

## [1.0.0][] (2026-09-21)

This release has an [MSRV][] of 1.89.

### Added

- Added the optional `#[simd]` attribute in `fearless_simd_macros` 0.1.0 to annotate SIMD-generic functions. The first argument can be a SIMD token, vector, mask, reference, or user-defined wrapper implementing `ExtractToken`. The core library does not depend on the macro crate. ([#347][], [#383][] by [@Shnatsel][])
- Added `Native<S>` to `SimdFloatElement` and `SimdIntElement` to select native-width vectors in scalar-generic code ([#378][] by [@Shnatsel][]).
- Added the public `ExtractToken` trait for SIMD tokens, vectors, masks, references, and user-defined wrappers.
- Added `reverse` for all SIMD vector and mask types. ([#356][] by [@Shnatsel][])
Expand Down Expand Up @@ -407,8 +413,10 @@ No changelog was kept for this release.
[#371]: https://github.com/linebender/fearless_simd/pull/371
[#377]: https://github.com/linebender/fearless_simd/pull/377
[#378]: https://github.com/linebender/fearless_simd/pull/378
[#383]: https://github.com/linebender/fearless_simd/pull/383

[Unreleased]: https://github.com/linebender/fearless_simd/compare/v0.7.0...HEAD
[Unreleased]: https://github.com/linebender/fearless_simd/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/linebender/fearless_simd/compare/v0.7.0...v1.0.0
[0.7.0]: https://github.com/linebender/fearless_simd/compare/v0.6.0...v0.7.0
[0.6.0]: https://github.com/linebender/fearless_simd/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/linebender/fearless_simd/compare/v0.4.1...v0.5.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.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -77,9 +77,9 @@ clippy.wildcard_dependencies = "warn"
clippy.uninlined_format_args = "allow"

[workspace.dependencies]
fearless_simd = { path = "fearless_simd", version = "1.0.0-rc.2", default-features = false }
fearless_simd = { path = "fearless_simd", version = "1.0.0", default-features = false }
fearless_simd_dev_macros = { path = "fearless_simd_dev_macros" }
fearless_simd_macros = { path = "fearless_simd_macros", version = "0.1.0-rc.1" }
fearless_simd_macros = { path = "fearless_simd_macros", version = "0.1.0" }
proc-macro2 = "1.0.95"
syn = { version = "3.0.4", default-features = false, features = [
"full",
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,10 @@ It benefited from conversations with Luca Versari, though he is not responsible

This version of Fearless SIMD has been verified to compile with **Rust 1.89** and later.

Future versions of Fearless SIMD might increase the Rust version requirement.
It will not be treated as a breaking change and as such can even happen with small patch releases.
Future versions of Fearless SIMD might increase the Rust version requirement. This will be accompanied by a minor version bump.

If you require a fixed MSRV, we recommend using Cargo's [MSRV-aware resolver](https://doc.rust-lang.org/edition-guide/rust-2024/cargo-resolver.html) which will not select a version that fails to build.
We will provide [security backports](fearless_simd/SECURITY.md) to older Rust versions released within the last 3 years.

## Community

Expand Down
2 changes: 1 addition & 1 deletion fearless_simd/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fearless_simd"
version = "1.0.0-rc.2"
version = "1.0.0"
license.workspace = true
edition.workspace = true
repository.workspace = true
Expand Down
10 changes: 10 additions & 0 deletions fearless_simd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ The core crate has zero dependencies, safe public APIs, and
[very little](https://shnatsel.github.io/safe-simd-in-rust-even-on-the-inside/)
`unsafe` under the hood.

## Usage

Add the core library and optional `#[simd]` macro to your `Cargo.toml`:

```toml
[dependencies]
fearless_simd = "1.0"
fearless_simd_macros = "0.1"
```

## Automatic vectorization

The easiest way to define a SIMD-generic function is the
Expand Down
10 changes: 10 additions & 0 deletions fearless_simd/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@
//! [very little](https://shnatsel.github.io/safe-simd-in-rust-even-on-the-inside/)
//! `unsafe` under the hood.
//!
//! # Usage
//!
//! Add the core library and optional `#[simd]` macro to your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! fearless_simd = "1.0"
//! fearless_simd_macros = "0.1"
//! ```
//!
//! # Automatic vectorization
//!
//! The easiest way to define a SIMD-generic function is the
Expand Down
2 changes: 1 addition & 1 deletion fearless_simd_macros/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fearless_simd_macros"
version = "0.1.0-rc.1"
version = "0.1.0"
license.workspace = true
edition.workspace = true
repository.workspace = true
Expand Down
6 changes: 3 additions & 3 deletions fearless_simd_macros/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ Add both packages from crates.io to your `Cargo.toml`:

```toml
[dependencies]
fearless_simd = "1.0.0-rc.2"
fearless_simd_macros = "0.1.0-rc.1"
fearless_simd = "1.0"
fearless_simd_macros = "0.1"
```

The library must be in scope as `fearless_simd` in the module containing the
annotated function. The dependency declaration above makes that name available
automatically. `fearless_simd` 1.0.0-rc.2 or later is required.
automatically. `fearless_simd` 1.0 or later is required.

Apply `#[simd]` to a function whose first argument carries its SIMD token:

Expand Down
Loading