diff --git a/Cargo.toml b/Cargo.toml index 256fa2d..03c1582 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,7 +32,7 @@ fast-legacy-encode = ["fast-hangul-encode", [dependencies] cfg-if = "0.1.0" -packed_simd = { version = "0.3.4", package = "packed_simd_2", optional = true } +packed_simd = { version = "0.3.3", optional = true } serde = { version = "1.0", optional = true } [dev-dependencies] diff --git a/README.md b/README.md index 3665b8a..d6587d5 100644 --- a/README.md +++ b/README.md @@ -144,7 +144,7 @@ There are currently these optional cargo features: ### `simd-accel` -Enables SIMD acceleration using the nightly-dependent `packed_simd` crate. +Enables SIMD acceleration using the nightly-dependent `packed_simd_2` crate. This is an opt-in feature, because enabling this feature _opts out_ of Rust's guarantees of future compilers compiling old code (aka. "stability story"). @@ -165,7 +165,7 @@ feature. _Note!_ If you are compiling for a target that does not have 128-bit SIMD enabled as part of the target definition and you are enabling 128-bit SIMD using `-C target_feature`, you need to enable the `core_arch` Cargo feature -for `packed_simd` to compile a crates.io snapshot of `core_arch` instead of +for `packed_simd_2` to compile a crates.io snapshot of `core_arch` instead of using the standard-library copy of `core::arch`, because the `core::arch` module of the pre-compiled standard library has been compiled with the assumption that the CPU doesn't have 128-bit SIMD. At present this applies @@ -350,16 +350,15 @@ A framework for measuring performance is [available separately][2]. ## Rust Version Compatibility It is a goal to support the latest stable Rust, the latest nightly Rust and -the version of Rust that's used for Firefox Nightly (currently 1.29.0). -These are tested on Travis. +the version of Rust that's used for Firefox Nightly. -Additionally, beta and the oldest known to work Rust version (currently -1.29.0) are tested on Travis. The oldest Rust known to work is tested as -a canary so that when the oldest known to work no longer works, the change -can be documented here. At this time, there is no firm commitment to support -a version older than what's required by Firefox. The oldest supported Rust -is expected to move forward rapidly when `packed_simd` can replace the `simd` -crate without performance regression. +At this time, there is no firm commitment to support a version older than +what's required by Firefox, and there is no commitment to treat MSRV changes +as semver-breaking, because this crate depends on `cfg-if`, which doesn't +appear to treat MSRV changes as semver-breaking, so it would be useless for +this crate to treat MSRV changes as semver-breaking. + +As of 2020-11-02, MSRV appears to be Rust 1.31.0. ## Compatibility with rust-encoding @@ -422,6 +421,11 @@ To regenerate the generated code: ## Release Notes +### 0.8.25 + +* Do pointer alignment checks in a way where intermediate steps aren't defined to be Undefined Behavior. +* Update the `packed_simd` dependency to `packed_simd_2`. + ### 0.8.24 * Avoid computing an intermediate (not dereferenced) pointer value in a manner designated as Undefined Behavior when computing pointer alignment.