Commit graph

467 commits

Author SHA1 Message Date
Trevor Gross
5fc3068762 Add a script for downloading musl 2024-10-28 12:59:38 -05:00
Trevor Gross
36b52c7d1b Introduce musl-math-sys for bindings to musl math symbols
This crate builds math symbols from a musl checkout and provides a Rust
interface. The intent is that we will be able to compare our
implementations against musl on more than just linux (which are the only
currently the only targets we run `*-musl` targets against for
comparison).

Musl libc can't compile on anything other than Linux; however, the
routines in `src/math` are cross platform enough to build on MacOS and
windows-gnu with only minor adjustments. We take advantage of this and
build only needed files using `cc`.

The build script also performs remapping (via defines) so that e.g.
`cos` gets defined as `musl_cos`. This gives us more certainty that we
are actually testing against the intended symbol; without it, it is easy
to unknowingly link to system libraries or even Rust's `libm` itself and
wind up with an ineffective test. There is also a small procedure to
verify remapping worked correctly by checking symbols in object files.
2024-10-28 12:59:38 -05:00
quaternic
750027cbbe fix type of constants in ported sincosf (#331)
* fix type of constants in ported sincosf
2024-10-28 12:59:21 -05:00
Johanna Sörngård
db55857a73 Add basic docstrings to some functions (#337)
* Add docstring to Bessel functions
* Add docstrings to logarithm functions
* Add docstrings to pow functions
* Specify argument bit-size of the Bessel functions
* Specify argument bit-size for pow functions
* Specify argument bit-size for logarithms
* Add docstrings to sin, cos, sincos and sinh functions
* Add docstrings to sqrt
* Add docstrings to tan and tanh functions
* Add an inline link to https://en.wikipedia.org/wiki/Bessel_function to the docstrings of all Bessel functions.
2024-10-28 12:12:45 -05:00
Trevor Gross
31facc09f1 Merge pull request rust-lang/libm#334 from tgross35/ci-cleanup
ci: `rustup --no-self-update` and reuqire MSRV checks
2024-10-27 23:45:55 -05:00
Trevor Gross
a3fd7732f0 ci: rustup --no-self-update and reuqire MSRV checks
Pass `--no-self-update` to `rustup`, which is typical for CI. Also add
the MSRV job to `success` so GitHub won't merge without it passing.
2024-10-27 23:41:29 -05:00
Trevor Gross
99b8dfad4f Merge pull request rust-lang/libm#333 from tgross35/msrv-ignore-warnings
Don't deny warnings when checking MSRV
2024-10-27 23:30:58 -05:00
Trevor Gross
b49ef8c510 Don't deny warnings when checking MSRV
1.63 reports some false positive lints that we don't need to worry
about. Make sure we don't fail CI for this.
2024-10-27 23:28:24 -05:00
Trevor Gross
773d121a20 Merge pull request rust-lang/libm#328 from rust-lang/release-plz-2024-10-27T01-33-20Z
chore: release v0.2.10
2024-10-27 22:53:12 -05:00
github-actions[bot]
476585d6a0 chore: release v0.2.10 2024-10-27 22:51:02 -05:00
Trevor Gross
bc84f02bae Merge pull request rust-lang/libm#332 from tgross35/msrv-test
Set the MSRV to 1.63
2024-10-27 22:49:17 -05:00
Trevor Gross
3541e834df Set the MSRV to 1.63 and document it as such
Fixes: https://github.com/rust-lang/libm/issues/330
2024-10-27 22:47:06 -05:00
Trevor Gross
3180b04aa3 Change build.rs to use the older : rather than ::
This allows supporting Rust < 1.77.
2024-10-27 22:46:17 -05:00
Trevor Gross
9bcefbac1f Merge pull request rust-lang/libm#329 from tgross35/ci-check-stable
Add a CI test that the crate builds on stable
2024-10-27 01:12:42 -05:00
Trevor Gross
4d6aeca6b3 Add a CI test that the crate builds on stable
Currently everything we have runs with nightly Rust. Add a stable test
to make sure we don't accidentally make use of behavior that isn't yet
stable without gating it.
2024-10-27 01:10:26 -05:00
Trevor Gross
fee2b9699f Merge pull request rust-lang/libm#327 from tgross35/config-rustfmt
Add a rustfmt.toml file matching rust-lang/rust
2024-10-26 20:32:52 -05:00
Trevor Gross
79f065ab24 Add a .git-blame-ignore-revs file
Include the recent formatting commit.
2024-10-26 20:30:41 -05:00
Trevor Gross
ab0c8e84fb Run cargo fmt with new settings
Apply the changes from the `.rustfmt.toml` file added in the previous
commit.
2024-10-26 20:28:28 -05:00
Trevor Gross
710ca6e38e Add a rustfmt.toml file matching rust-lang/rust
Duplicate the settings from rust-lang/rust to this repository. This is
mostly for consistency, but `use_small_heuristics = "Max"` does make a
large difference with lookup tables.

Also apply the needed CI changes to run nightly rustfmt.
2024-10-26 20:28:28 -05:00
Trevor Gross
84e5e10a68 Merge pull request rust-lang/libm#325 from rust-lang/release-plz-2024-10-26T23-04-45Z
chore: release v0.2.9
2024-10-26 18:12:44 -05:00
github-actions[bot]
4f3418a4d7 chore: release v0.2.9 2024-10-26 18:10:21 -05:00
Trevor Gross
84cf96172d Merge pull request rust-lang/libm#324 from tgross35/release-plz-fix
Fix release-plz workflow configuration
2024-10-26 18:04:14 -05:00
Trevor Gross
0433caa0ba Fix release-plz workflow configuration 2024-10-26 18:01:56 -05:00
Trevor Gross
91f9201a86 Merge pull request rust-lang/libm#323 from tgross35/release-plz
Add release-plz for automated releases
2024-10-26 18:00:28 -05:00
Trevor Gross
47961340db Add release-plz for automated releases 2024-10-26 17:58:38 -05:00
Trevor Gross
a2fc8fe534 Merge pull request rust-lang/libm#317 from tgross35/update-licensing
Update licensing to MIT AND (MIT OR Apache-2.0)
2024-10-26 17:11:50 -05:00
Trevor Gross
bd82e67afc Update licensing to MIT AND (MIT OR Apache-2.0)
Currently both Cargo.toml and the license files indicate that this
library may be used under either MIT or Apache-2.0. However, this is not
accurate; since portions of this library were derived from musl libc,
which is available under the MIT license, this terms of use for this
library must also include use under the MIT license. That is, it is not
correct that this library may be used under only the Apache-2.0 license.

Update the SPDX license identifier to `MIT OR (MIT AND Apache-2.0)` to
indicate that use must include the MIT license, but to clarify that
contributions are made under `MIT OR Apache-2.0`. This is compatible
with the current state of this repository since it has always contained
both license files, and the `Cargo.toml` license field has indicated
`MIT OR Apache-2.0` since it was added.

In accordance with the above, replace the two license files with a
combined LICENSE.txt that makes these terms clear and gives attribution
to works from which this library is derived.

Fixes: https://github.com/rust-lang/libm/issues/215
Link: https://rust-lang.zulipchat.com/#narrow/channel/335408-foundation/topic/Request.20for.20legal.20team.20input.20on.20crate.20licensing
Link: https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT
2024-10-26 17:09:57 -05:00
Trevor Gross
81b40cfc11 Merge pull request rust-lang/libm#321 from tgross35/deny-only-in-ci
Don't deny warnings in lib.rs
2024-10-26 00:59:22 -05:00
Trevor Gross
79bf4fe1f2 Don't deny warnings in lib.rs
Having `#![deny(warnings)]` for the entire crate is a bit of a
development annoyance. We already run CI with `RUSTFLAGS=-Dwarnings` so
there isn't much of a reason to check this locally. Thus, remove the
attribute.

Additionally, sort the clippy allows.
2024-10-26 00:54:26 -05:00
Trevor Gross
bfd37cae5d Merge pull request rust-lang/libm#319 from tgross35/test-feature
Rename the `musl-bitwise-tests` feature to `test-musl-serialized`
2024-10-25 20:00:47 -05:00
Trevor Gross
a68516ed6a Rename the musl-bitwise-tests feature to test-musl-serialized
We will have more test features in the near future, and it would be nice
for them all to have a common `test-` prefix. Reverse the existing
feature so this is the case.
2024-10-25 20:57:19 -04:00
Trevor Gross
c2d3f93869 Merge pull request rust-lang/libm#308 from tgross35/bump-edition
Set edition to 2021 for all crates
2024-10-07 01:24:32 -04:00
Trevor Gross
d3943b1863 Set edition to 2021 for all crates 2024-10-07 00:22:14 -05:00
Trevor Gross
217baa6196 Merge pull request rust-lang/libm#307 from tgross35/shellcheck-fixes
Fix shellcheck warnings in scripts
2024-10-06 14:47:49 -04:00
Trevor Gross
d82eb88722 Fix shellcheck warnings in scripts 2024-10-06 13:44:25 -05:00
Trevor Gross
c5ad409e01 Merge pull request rust-lang/libm#306 from tgross35/update-docker
Set target-specific `AR` and `CC` arguments
2024-10-06 01:20:05 -04:00
Trevor Gross
d0f1dd6010 Set target-specific AR and CC arguments
The Rust `cc` crate reads these, so make sure they are set for when we
start making use of `cc`.
2024-10-06 00:18:00 -05:00
Trevor Gross
eba725918d Merge pull request rust-lang/libm#305 from tgross35/update-docker
Update Ubuntu images to 24.04
2024-10-06 01:12:40 -04:00
Trevor Gross
0be441d5ad Update Ubuntu images to 24.04
We don't have any specific reason to stay on 18.04, so upgrade to the
latest LTS version.
2024-10-06 00:10:12 -05:00
Trevor Gross
42683081e5 Merge pull request rust-lang/libm#304 from tgross35/upgrade-deps
Upgrade all dependencies
2024-10-05 23:31:06 -04:00
Trevor Gross
d8c234b959 Do library updates necessary with dependency upgrades 2024-10-05 22:28:38 -05:00
Trevor Gross
cb305df194 Upgrade all dependencies
None of these affect the distributed library.
2024-10-05 22:24:14 -05:00
Trevor Gross
c5b4cac021 Merge pull request rust-lang/libm#303 from tgross35/rename-test-feature
Rename the `musl-reference-tests` feature to `musl-bitwise-tests`
2024-10-05 22:46:01 -04:00
Trevor Gross
c236051681 Rename the musl-reference-tests feature to musl-bitwise-tests
The plan is to add more test related features that could be considered
"reference tests". Rename the feature here to avoid future confusion.
2024-10-05 21:42:28 -05:00
Trevor Gross
7896ad8bfe Merge pull request rust-lang/libm#301 from tgross35/move-libm-test
Move `musl-reference-tests` to a new `libm-test` crate
2024-10-05 16:57:28 -04:00
Trevor Gross
f59dd82cca Move musl-reference-tests to a new libm-test crate
There isn't any reason for this feature to be exposed or part of the
build script. Move it to a separate crate.

We will also want more tests that require some support functions; this
will create a place for them.
2024-10-05 15:54:39 -05:00
Trevor Gross
d8e66f8027 Merge pull request rust-lang/libm#299 from tgross35/ci-success
Add a `success` job to CI
2024-08-23 02:28:42 -05:00
Trevor Gross
a1ba7445d4 Add a success job to CI
This will allow us to enable auto merge once CI completes.
2024-08-22 03:43:13 -05:00
Amanieu d'Antras
195e2b4153 Merge pull request rust-lang/libm#297 from GuillaumeGomez/only-soft-floats 2024-08-08 11:13:08 +01:00
Guillaume Gomez
7bc2291ac5 Rename only-soft-floats feature into force-soft-floats 2024-08-07 11:29:47 +02:00