about summary refs log tree commit diff
path: root/library
AgeCommit message (Collapse)AuthorLines
2025-04-21Move README.md to compiler-builtins, CONTRIBUTING.md to rootTrevor Gross-1/+1
Do this in a commit so git tracks the move; a new README will be introduced in the root, and CONTRIBUTING will be updated to apply to both crates.
2025-04-21Update licensing information after repository refactoringTrevor Gross-6/+17
In order to disambiguate things now that libm is part of the compiler-builtins repository, do the following: * Mention libm in LICENSE.txt * Clarify the default license for crates other than libm and compiler-builtins * Add an explicit license field to Cargo.toml for all other crates
2025-04-21avr: Provide `abort()`Patryk Wychowaniec-0/+26
2025-04-21Remove `unsafe` from `naked_asm!` blocksTrevor Gross-9/+10
This was changed in a recent nightly so the unsafety is only in the attribute, `#[unsafe(naked)]`.
2025-04-21Solved suggestionsHegui Dai-15/+14
2025-04-21Solved suggestionsHegui Dai-17/+11
2025-04-20Auto merge of #140079 - ChrisDenton:rollup-2h5cg94, r=ChrisDentonbors-6/+6
Rollup of 5 pull requests Successful merges: - #137953 (simd intrinsics with mask: accept unsigned integer masks, and fix some of the errors) - #139990 (transmutability: remove NFA intermediate representation) - #140044 (rustc-dev-guide subtree update) - #140051 (Switch exploit mitigations to mdbook footnotes) - #140054 (docs: fix typo change from inconstants to invariants) r? `@ghost` `@rustbot` modify labels: rollup
2025-04-20Augment `stdarch-test` to parse PPCsayantn-4/+7
- Remove some unused env variables from `run.sh`
2025-04-20Remove `x86_64-unknown-linux-gnu` runsayantn-26/+15
+ Rename `x86_64-unknown-linux-gnu-emulated` run to `x86_64-unknown-linux-gnu`
2025-04-20Add `-Ctarget-feature=+avx512f` run for the emulated runsayantn-5/+12
+ Remove `-Z plt=yes`
2025-04-20Add `test-everything` annotations to more archs to ensure test coverage, and ↵sayantn-21/+53
some small changes to make CI pass - Disable `vsx` tests for `ppc` and `ppc64` - Disable `tme` tests for `aarch64` and `aarch64_be` - Disable `frecipe` tests for `loongarch64` - Add `altivec` run for PPC32 (with `-C target-feature=+vsx` `qemu` gives a nasty error)
2025-04-20Upgrade qemu CPU to `max`sayantn-13/+10
- `ppc32` doesn't have `max` cpu model, so set it to `mpc8610`
2025-04-20Remove `STDARCH_DISABLE_DEDUP_GUARD` as it was unusedsayantn-51/+8
2025-04-20Replace `cfg(stdarch_intel_sde)` with `STDARCH_TEST_SKIP_FUNCTION`sayantn-11/+2
2025-04-20Change test skipping logic a little, separate feature-based and ↵sayantn-31/+27
function-based skipping
2025-04-20Remove `cupid` dependency and `env-override-no-avx` CI runsayantn-182/+3
2025-04-20Add PowerPC64 to CIsayantn-0/+10
2025-04-20Re-enable all conditionally-disabled x86 `assert_instr` testssayantn-341/+101
2025-04-20Upgrade CI OS versionssayantn-30/+30
+ Bump ubuntu to 25.04, windows to `windows-2025`, macos-arm to `macos-15` and macos-x86 to `macos-15-large`
2025-04-20ci: Fix release-plz configurationTrevor Gross-3/+5
2025-04-20std_detect: Remove /proc/cpuinfo-based detectionTaiki Endo-508/+7
2025-04-20Rollup merge of #138870 - beetrees:tier-2-nans, r=RalfJungChris Denton-3/+5
Add target-specific NaN payloads for the missing tier 2 targets This PR adds target-specific NaN payloads for the remaining tier 2 targets: - `arm64ec`: This target is a mix of `x86_64` and `aarch64`, meaning as they both have no extra payloads `arm64ec` also has no extra payloads. - `loongarch64`: Per [LoongArch Reference Manual - Volume 1: Basic Architecture](https://github.com/loongson/LoongArch-Documentation/releases/download/2023.04.20/LoongArch-Vol1-v1.10-EN.pdf) section 3.1.1.3, LoongArch does quieting NaN propagation with the Rust preferred NaN as its default NaN, meaning it has no extra payloads. - `nvptx64`: Per [PTX ISA documentation](https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#floating-point-instructions) section 9.7.3 (and section 9.7.4 for `f16`), all payloads are possible. The documentation explicitly states that `f16` and `f32` operations result in an unspecified NaN payload, while for `f64` it states "NaN payloads are supported" without specifying how or what payload will be generated if there are no input NaNs. - `powerpc` and `powerpc64`: Per [Power Instruction Set Architecture](https://files.openpower.foundation/s/9izgC5Rogi5Ywmm/download/OPF_PowerISA_v3.1C.pdf) Book I section 4.3.2, PowerPC does quieting NaN propagation with the Rust preferred NaN being generated if no there are no input NaNs, meaning it has no extra payloads. - `s390x`: Per [IBM z/Architecture Principles of Operation](https://www.vm.ibm.com/library/other/22783213.pdf#page=965) page 9-3, s390x does quieting NaN propagation with the Rust's preferred NaN as its default NaN, meaning it has no extra payloads. Tracking issue: #128288 cc ``@RalfJung`` ``@rustbot`` label +T-lang Also cc relevant target maintainers of tier 2 targets: - `arm64ec`: ``@dpaoliello`` - `loongarch64`: ``@heiher`` ``@xiangzhai`` ``@zhaixiaojuan`` ``@xen0n`` - `nvptx64`: ``@RDambrosio016`` ``@kjetilkjeka`` - `powerpc`: the only documented maintainer is ``@BKPepe`` for the tier 3 `powerpc-unknown-linux-muslspe`. - `powerpc64`: ``@daltenty`` ``@gilamn5tr`` ``@Gelbpunkt`` ``@famfo`` ``@neuschaefer`` - `s390x`: ``@uweigand`` ``@cuviper``
2025-04-20Use `currently` for futher improvementxizheyin-1/+1
Co-authored-by: Jonas Böttiger <jonasboettiger@icloud.com>
2025-04-20Update `libc` to 0.2.172 for std王宇逸-3/+3
2025-04-20Rollup merge of #140054 - c-git:patch-1, r=joboetChris Denton-1/+1
docs: fix typo change from inconstants to invariants
2025-04-20Rollup merge of #137953 - RalfJung:simd-intrinsic-masks, r=WaffleLapkinChris Denton-5/+5
simd intrinsics with mask: accept unsigned integer masks, and fix some of the errors It's not clear at all why the mask would have to be signed, it is anyway interpreted bitwise. The backend should just make sure that works no matter the surface-level type; our LLVM backend already does this correctly. The note of "the mask may be widened, which only has the correct behavior for signed integers" explains... nothing? Why can't the code do the widening correctly? If necessary, just cast to the signed type first... Also while we are at it, fix the errors. For simd_masked_load/store, the errors talked about the "third argument" but they meant the first argument (the mask is the first argument there). They also used the wrong type for `expected_element`. I have extremely low confidence in the GCC part of this PR. See [discussion on Zulip](https://rust-lang.zulipchat.com/#narrow/channel/257879-project-portable-simd/topic/On.20the.20sign.20of.20masks)
2025-04-20simd intrinsics with mask: accept unsigned integer masksRalf Jung-5/+5
2025-04-20Allow `dangerous_implicit_autorefs` lint in some testsUrgau-1/+1
2025-04-20Implement lint against dangerous implicit autorefsUrgau-1/+1
2025-04-20Add `#[rustc_no_implicit_autorefs]` and apply it to std methodsUrgau-0/+12
2025-04-20Add panic-handler to the workspaceTrevor Gross-0/+1
This crate does not interact with features so there isn't any reason it can't become part of the workspace.
2025-04-20ci: Remove the old libm workflow fileTrevor Gross-324/+0
All jobs are now run as part of `compiler-builtins`.
2025-04-20ci: Configure release-plz to run semver checks on `libm`Trevor Gross-2/+5
2025-04-20ci: Clean up workflow file and docker scriptTrevor Gross-12/+12
2025-04-20ci: Use lowercase for bash locals, fix shellcheckTrevor Gross-5/+7
2025-04-20stabilize `naked_functions`Folkert de Vries-1/+1
2025-04-20Stabilize <[T; N]>::as_mut_slice as constThalia Archibald-1/+1
2025-04-20ci: Add a timeout for all jobsTrevor Gross-0/+3
2025-04-20ci: Skip testing libm in PRs if it did not changeTrevor Gross-37/+66
Many contributions to compiler-builtins don't have any need to touch libm, and could get by with the few minutes of CI for compiler-builtins rather than the ~30 minutes for libm. We already have some scripts that handle changed file detection, so expand its use to skip libm CI if it doesn't need to run.
2025-04-20ci: Add `/cargo/bin` to the path in DockerTrevor Gross-2/+4
This makes it possible to use nextest within the container.
2025-04-20Set the musl submodule to 61399d4b ("loongarch64: add TLSDESC support")Trevor Gross-0/+0
Set the submodule to the same version we had been using in rust-lang/libm. This is a downgrade from the current version but it avoids some new deviations that show up, which can be corrected later.
2025-04-20ci: Enable testing of `libm` cratesTrevor Gross-227/+176
Update `run.sh` to start testing `libm`. Currently this is somewhat inefficient because `builtins-test` gets run more than once on some targets; this can be cleaned up later.
2025-04-20ci: Add extensive tests from rust-lang/libmTrevor Gross-0/+68
2025-04-20std: mention `remove_dir_all` can emit `DirectoryNotEmpty` when concurrently ↵xizheyin-0/+2
written into Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-20ci: Add a libm MSRV checkTrevor Gross-0/+21
Add the job from rust-lang/libm
2025-04-20Fix the libm-test logfile pathTrevor Gross-6/+1
This was broken since the crate's location relative to the target directory had changed.
2025-04-20Enable icount benchmarks in CITrevor Gross-3/+55
2025-04-19Add remaining `libm` crates to the workspaceTrevor Gross-16/+14
These are still not yet covered in CI since we always name explicit packages there, but all crates are now part of the workspace.
2025-04-19Move builtins-test-intrinsics out of the workspaceTrevor Gross-18/+27
This crate doesn't need to be a default member since it requires the opposite settings from everything else. Exclude it from the workspace and run it only when explicitly requested. This also makes `cargo t --no-default-features` work without additional qualifiers. `--no-default-features` still needs to be passed to ensure `#![compiler_builtins]` does not get set. compiler-builtins needs doctests disabled in order for everything to work correctly, since this causes an error running rustdoc that is unrelated to features (our `compiler_builtins` is getting into the crate graph before that from the sysroot, but `#![compiler_builtins]` is not set). We can also remove `test = false` and `doctest = false` in `builtins-test` since these no longer cause issues. This is unlikely to be used but it is better to not quietly skip if anything ever gets added by accident.
2025-04-20Auto merge of #140043 - ChrisDenton:rollup-vwf0s9j, r=ChrisDentonbors-187/+192
Rollup of 8 pull requests Successful merges: - #138934 (support config extensions) - #139091 (Rewrite on_unimplemented format string parser.) - #139753 (Make `#[naked]` an unsafe attribute) - #139762 (Don't assemble non-env/bound candidates if projection is rigid) - #139834 (Don't canonicalize crate paths) - #139868 (Move `pal::env` to `std::sys::env_consts`) - #139978 (Add citool command for generating a test dashboard) - #139995 (Clean UI tests 4 of n) r? `@ghost` `@rustbot` modify labels: rollup