Skip to content

Commit 6e0afc0

Browse files
chore: release
1 parent f878724 commit 6e0afc0

File tree

4 files changed

+304
-2
lines changed

4 files changed

+304
-2
lines changed

compiler-builtins/CHANGELOG.md

+12
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.1.156](https://github.com/rust-lang/compiler-builtins/compare/compiler_builtins-v0.1.155...compiler_builtins-v0.1.156) - 2025-04-20
11+
12+
### Other
13+
14+
- Enable icount benchmarks in CI
15+
- Move builtins-test-intrinsics out of the workspace
16+
- Run `cargo fmt` on all projects
17+
- Flatten the `libm/libm` directory
18+
- Update path to libm after the merge
19+
- Remove the libm submodule
20+
- Rename `testcrate` to `builtins-test`
21+
1022
## [0.1.155](https://github.com/rust-lang/compiler-builtins/compare/compiler_builtins-v0.1.154...compiler_builtins-v0.1.155) - 2025-04-17
1123

1224
### Other

compiler-builtins/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
authors = ["Jorge Aparicio <[email protected]>"]
33
name = "compiler_builtins"
4-
version = "0.1.155"
4+
version = "0.1.156"
55
license = "MIT AND Apache-2.0 WITH LLVM-exception AND (MIT OR Apache-2.0)"
66
readme = "../README.md"
77
repository = "https://github.com/rust-lang/compiler-builtins"

libm/CHANGELOG.md

+290
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,296 @@ and this project adheres to
88

99
## [Unreleased]
1010

11+
## [0.2.12](https://github.com/rust-lang/compiler-builtins/compare/libm-v0.2.11...libm-v0.2.12) - 2025-04-20
12+
13+
### Other
14+
15+
- Run `cargo fmt` on all projects
16+
- Add a .rustfmt.toml with style edition 2024
17+
- Flatten the `libm/libm` directory
18+
- Reorganize into compiler-builtins
19+
- Remove compiler-builtins-smoke-test
20+
- Update .git-blame-ignore-revs after the libm merge
21+
- Update submodules after the `libm` merge
22+
- Migrate all crates except `libm` to edition 2024
23+
- Introduce a virtual manifest
24+
- Move the `libm` crate to a subdirectory
25+
- Mark generic functions `#[inline]`
26+
- Combine the source files for `fmod`
27+
- Ensure all public functions are marked `no_panic`
28+
- Account for `PR_NUMBER` being set to an empty string
29+
- Ensure configure.rs changes trigger rebuilds
30+
- Increase the timeout for extensive tests
31+
- Require `ci: allow-many-extensive` if a threshold is exceeded
32+
- Allow skipping extensive tests with `ci: skip-extensive`
33+
- Cancel jobs when a new push happens
34+
- Combine the source files for more generic implementations
35+
- Make `assert_biteq!` not rely on having `Int` in scope
36+
- Add `NEG_NAN` to `Float`
37+
- Correct the normalization of subnormals
38+
- Add regression tests for subnormal issue
39+
- Implement rounding for the hex float parsing and prepare to improve error handling
40+
- Add assembly version of simple operations on aarch64
41+
- Resolve small errors identified by recent clippy
42+
- Replace calls to `core::arch` intrinsics with assembly
43+
- Upgrade all dependencies to the latest
44+
- Gate another assertion behind `compiler-builtins`
45+
- Configure out remaining formatting when `compiler-builtins` is set
46+
- Ignore unused variables when `compiler-builtins` is set
47+
- Resolve monomorphization errors in `compiler-builtins`
48+
- Make the compiler-builtins test more accurately mirror compiler-builtins
49+
- Pin the nightly toolchain for aarch64 jobs
50+
- Use `git ls-files` rather than manually globbing for tidy
51+
- Make `fma` a trait method on `Float`
52+
- fma refactor 3/3: combine `fma` public API with its implementation
53+
- fma refactor 2/3: move math/generic/fma.rs to math/fma.rs
54+
- fma refactor 1/3: remove math/fma.rs
55+
- Scale test iteration count at a later point
56+
- Add a way to print inputs on failure
57+
- Rename `Float::exp` to `Float::ex`
58+
- Check exact values for specified cases
59+
- Add `roundeven{,f,f16,f128}`
60+
- Fix parsing of negative hex float literals in util
61+
- Increase allowed offset from infinity for ynf
62+
- Add `fminimum`, `fmaximum`, `fminimum_num`, and `fmaximum_num`
63+
- Combine `fmin{,f,f16,f128}` and `fmax{,f,f16,128}` into a single file
64+
- Small refactor of bigint tests
65+
- Eliminate the use of `force_eval!` in `ceil`, `floor`, and `trunc`
66+
- Migrate away from nonfunctional `fenv` stubs
67+
- Introduce a trait constant for the minimum positive normal value
68+
- Implement `u256` with two `u128`s rather than `u64`
69+
- Pin the nightly toolchain for i686-pc-windows-gnu
70+
- Increase the tolerance for `jn` and `yn`
71+
- Replace an `assert!` with `debug_assert!` in `u256::shr`
72+
- Change how operators are `black_box`ed
73+
- Add simple icount benchmarks for `u256` operations
74+
- Decrease the allowed error for `cbrt`
75+
- Port the CORE-MATH version of `cbrt`
76+
- Add an enum representation of rounding mode
77+
- Work arouind iai-callgrind apt failures
78+
- Uncomment some hex float tests that should work now
79+
- Convert `fmaf` to a generic implementation
80+
- Remove or reduce the scope of `allow(unused)` where possible
81+
- fix exponent calculation for subnormals
82+
- Check more subnormal values during edge cases tests
83+
- Run standard tests before running integration tests
84+
- Add better edge case testing for `scalbn`
85+
- Add `fmaf128`
86+
- Make it possible to use `hf32!` and similar macros outside of `libm`
87+
- Improve tidy output
88+
- Add an integration test that verifies a list of cases
89+
- Switch `musl` to track `master`
90+
- Ensure zero has the correct sign
91+
- Print the hex float format upon failure
92+
- Commonize the signature for all instances of `get_test_cases`
93+
- Start converting `fma` to a generic function
94+
- Add checks via annotation that lists are sorted or exhaustive
95+
- Do not add `libm_helper.rs` to the sources list
96+
- Add a check in the `shared.rs` that the function list is sorted
97+
- Add `scalbnf16`, `scalbnf128`, `ldexpf16`, and `ldexpf128`
98+
- Fix hex float trait recursion problem
99+
- Rename `EXP_MAX` to `EXP_SAT`
100+
- Specify license as just MIT
101+
- also print the hex float format for outputs
102+
- Introduce a wrapper type for IEEE hex float formatting
103+
- Support parsing NaN and infinities from the `hf*` functions
104+
- Revert "Temporarily pin `indicatif` to 0.17.9"
105+
- Temporarily pin `indicatif` to 0.17.9
106+
- Switch musl from a script download to a submodule
107+
- Ignore specific `atan2` and `sin` tests on i586
108+
- Rework the available Cargo profiles
109+
- Remove remnants of the `checked` feature
110+
- Use `remquo` from Rug
111+
- Use `frexp` from Rug
112+
- Use `az` exported from Rug
113+
- Upgrade all dependencies to the latest version
114+
- Enable missing icount benchmarks
115+
- Add `fmodf128`
116+
- Add way to override the number of iterations for specific tests
117+
- Increase or set CI timeouts
118+
- Add `fmodf16` using the generic implementation
119+
- Add a generic version of `fmod`
120+
- Add `fminf16`, `fmaxf16`, `fminf128`, and `fmaxf128`
121+
- Add a generic version of `fmin` and `fmax`
122+
- Remove an outdated note about precision
123+
- Add `roundf16` and `roundf128`
124+
- Add a generic version of `round`
125+
- Add a generic version of `scalbn`
126+
- Change `from_parts` to take a `u32` exponent rather than `i32`
127+
- Introduce XFAILs that assert failure
128+
- Add `hf16!` and `hf128!`
129+
- Fix the parsing of three-item tuples in `util`
130+
- Add the ability to parse hex, binary, and float hex with util
131+
- Add `rintf16` and `rintf128`
132+
- Add a generic version of `rint`
133+
- Adjust `ceil` style to be more similar to `floor`
134+
- Add `floorf16` and `floorf128`
135+
- Add a generic version of `floor`
136+
- Add `ceilf16` and `ceilf128`
137+
- Add a generic version of `ceil`
138+
- Make `Float::exp` return an unsigned integer
139+
- Shift then mask, rather than mask then shift
140+
- Add `sqrtf16` and `sqrtf128`
141+
- Copy the u256 implementation from compiler_builtins
142+
- Port the most recent version of Musl's `sqrt` as a generic algorithm
143+
- Enable `force-soft-floats` for extensive tests
144+
- Don't set `opt_level` in the musl build script
145+
- Add a retry to the musl download
146+
- Remove trailing whitespace in scripts, run JuliaFormatter
147+
- Ignore files relevant to benchmarking
148+
- Add a way to ignore benchmark regression checks
149+
- Run wall time benchmarks with `--features force-soft-floats`
150+
- Run icount benchmarks once with softfloat and once with hardfloat
151+
- Switch to the arm-linux runner and enable MPFR
152+
- Remove the limit for querying a baseline
153+
- Add an xfail for recent ynf failures
154+
- Reduce the warm up and measurement time for `short-benchmarks`
155+
- Run iai-callgrind benchmarks in CI
156+
- Add benchmarks using iai-callgrind
157+
- Provide a way to override iteration count
158+
- Increase the CI timeout
159+
- Adjust precision and add xfails based on new tests
160+
- Replace `HasDomain` to enable multi-argument edge case and domain tests
161+
- Add an override for a recent failure
162+
- Pass --max-fail to nextest so it doesn't fail fast
163+
- Slightly restructure `ci/calculate-exhaustive-matrix.py`
164+
- Change `.yml` files to the canonical extension `.yaml`
165+
- Use cargo-nextest for running tests in CI
166+
- Simplify and optimize `fdim` ([#442](https://github.com/rust-lang/compiler-builtins/pull/442))
167+
- Reduce indentation in `run.sh` using early return
168+
- Don't set `codegen-units=1` by default in CI
169+
- Add `fdimf16` and `fdimf128`
170+
- Add a generic version of `fdim`
171+
- Format the MPFR manual implementation list
172+
- Disable `util` and `libm-macros` for optimized tests
173+
- Add `truncf16` and `truncf128`
174+
- Add a generic version of `trunc`
175+
- Add a utility crate for quick evaluation
176+
- Enable `build-mpfr` and `build-musl` by default
177+
- Rename the `test-multiprecision` feature to `build-mpfr`
178+
- Introduce arch::aarch64 and use it for rint{,f}
179+
- Use wasm32 arch intrinsics for rint{,f}
180+
- Add a new precision adjustment for i586 `exp2f`
181+
- Add a new precision adjustment for i586 `rint`
182+
- Expose C versions of `libm` functions in the `cb` crate
183+
- Always use the same seed for benchmarking
184+
- Add `biteq` and `exp_unbiased` to `Float`
185+
- Add a `release-checked` profile with debug and overflow assertions
186+
- Remove `ExpInt` from `Float`, always use `i32` instead
187+
- Reorder tests in `run.sh`
188+
- Split `cast` into `cast` and `cast_lossy`
189+
- Use `core::arch::wasm` functions rather than intrinsics
190+
- Add tests against MPFR for `remquo` and `remquof`
191+
- Account for optimization levels other than numbers
192+
- Make extensive tests exhaustive if there are enough iterations available
193+
- Increase the allowed ULP for `tgammaf`
194+
- Replace "intrinsic" config with "arch" config
195+
- Don't use intrinsics abs for `f16` and `f128` on wasm32
196+
- Remove an unused `feature = "force-soft-floats"` gate
197+
- Switch from using `unstable-intrinsics` to `intrinsics_enabled`
198+
- Increase the allowed precision for failing tests on i586
199+
- Enable MPFR tests on i586
200+
- Only update the github ref for pull requests
201+
- Loosen precision on i586 based on new tests
202+
- Add an override for failing ceil/floor tests on i586
203+
- Add domain and edge case tests to musl
204+
- Add test infrastructure for `f16` and `f128`
205+
- Add `fabsf16`, `fabsf128`, `copysignf16`, and `copysignf128`
206+
- Enable `f16` and `f128` when creating the API change list
207+
- Run extensive tests in CI when relevant files change
208+
- Update precision based on failures from extensive tests
209+
- Add extensive and exhaustive tests
210+
- Add more detailed definition output for `update-api-list.py`
211+
- Add tests against MPFR for `ilogb` and `ilogbf`
212+
- Increase the precision for `jn` and `jnf`
213+
- Rename `unstable-test-support` to `unstable-public-internals`
214+
- Update precision based on new test results
215+
- Rewrite the random test generator
216+
- Add an iterator that ensures known size
217+
- Streamline the way that test iteration count is determined
218+
- Add a way for tests to log to a file
219+
- Add tests against MPFR for `scalbn{f}` and `ldexp{f}`
220+
- Add tests against MPFR for `frexp` and `frexpf`
221+
- Add tests against MPFR for `modf` and `modff`
222+
- Clean up integers stored in `MpTy`
223+
- Sort `ilogb` with other precise operations
224+
- Change to exhaustive matching for `default_ulp`
225+
- Use intrinsics for `abs` and `copysign` when available
226+
- Rename generic `abs` to `fabs`
227+
- Always emit `f16_enabled` and `f128_enabled` attributes
228+
- Add missing functions to the macro list
229+
- Use `rustdoc` output to create a list of public API
230+
- Forward the `CI` environment variable when running in Docker
231+
- Remove lossy casting in `logspace`
232+
- Set the allowed FMA ULP to 0
233+
- Don't run `push` CI on anything other than `master`
234+
- Use `CheckCtx` in more places
235+
- Move `CheckBasis` and `CheckCtx` to a new `run_cfg` module
236+
- Add `ALL`, `from_str` and `math_op` to `Identifier`
237+
- Add new trait implementations for `Identifier` and `BaseName`
238+
- Include `shared.rs` in `libm_test::op`
239+
- Move the macro's input function list to a new module `shared`
240+
- Add a way to plot the output from generators
241+
- Update allowed precision to account for new tests
242+
- Add tests for edge cases
243+
- Add interfaces and tests based on function domains
244+
- Introduce a float extension trait and some numerical routines
245+
- Add an 8-bit float type for testing purposes
246+
- Remove an `is_nan` workaround that is no longer needed
247+
- Update and slightly refactor some of the `Float` trait
248+
- Always enable `unstable-float` in CI
249+
- Add `f16` and `f128` configuration from `compiler-builtins`
250+
- Introduce generic `abs` and `copysign`
251+
- Change from `-latest` to named CI images
252+
- Allow Clippy lints in `compiler-builtins-smoke-test`
253+
- Fix new `clippy::precedence` lints
254+
- Replace string function name matching with enums where possible
255+
- Rename associated type helpers, add `OpITy`
256+
- Introduce helper types for accessing trait items
257+
- Fix a bug in `abs_diff`
258+
- Remove tests against system musl
259+
- Use `https:` links in `README.md`
260+
- Move some numeric trait logic to default implementations
261+
- Change the `multiprec_` prefix to `mp_`
262+
- Change default ULP to use enum matching
263+
- Rename `Name` to `Identifier` to avoid some ambiguity of "name"
264+
- Change the `CheckCtx` constructor to take a `Name` enum
265+
- Correct the proc macro to emit `pub` functions
266+
- Rework tests to make use of the new `MathOp` trait
267+
- Introduce a `op` module with struct representations of each routine
268+
- Adjust how the proc macro emits types and add an enum
269+
- Fix clippy lints in `crates/` and enable this on CI
270+
- Resolve clippy errors in `libm` tests and check this in CI
271+
- Add some more basic docstrings ([#352](https://github.com/rust-lang/compiler-builtins/pull/352))
272+
- Introduce `hf32!` and `hf64!` macros for hex float support
273+
- Enable clippy for `libm` in CI
274+
- Fix errors reported by Clippy in `libm`
275+
- Replace `libm_test::{Float, Int}` with `libm::{Float, Int}`
276+
- Expose the `support` module publicly with a test feature
277+
- Update libm `Float` and `Int` with functions from the test traits
278+
- Change prefixes used by the `Float` trait
279+
- Check benchmarks in CI
280+
- Remove `libm-bench`
281+
- Add benchmarks against musl libm
282+
- add support for loongarch64-unknown-linux-gnu
283+
- Rename `canonical_name` to `base_name`
284+
- Add float and integer traits from compiler-builtins
285+
- Move architecture-specific code to `src/math/arch`
286+
- Update `select_implementation` to accept arch configuration
287+
- Add an "arch" Cargo feature that is on by default
288+
- Vendor `cfg_if::cfg_if!`
289+
- Update `libm-test/build.rs` to skip directories
290+
- Rename the `special_case` module to `precision` and move default ULP
291+
- Run tests against MPFR on CI where possible
292+
- Add a test against MPFR using random inputs
293+
- Create interfaces for testing against MPFR
294+
- Combine the WASM CI job with the others
295+
- Make use of `select_implementation`
296+
- Introduce a `select_implementation` macro
297+
- Introduce `math::arch::intrinsics`
298+
- Replace `feature = "unstable-intrinsics"` with `intrinsics_enabled`
299+
- Move the existing "unstable" feature to "unstable-intrinsics"
300+
11301
## [0.2.11](https://github.com/rust-lang/libm/compare/libm-v0.2.10...libm-v0.2.11) - 2024-10-28
12302

13303
### Fixed

libm/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ license = "MIT"
88
name = "libm"
99
readme = "README.md"
1010
repository = "https://github.com/rust-lang/libm"
11-
version = "0.2.11"
11+
version = "0.2.12"
1212
edition = "2021"
1313
rust-version = "1.63"
1414

0 commit comments

Comments
 (0)