| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
Update `compiler-builtins` to 0.1.151
This enables `f16` builtins for loongarch [1] and adds support for Cygwin [2].
[1]: https://github.com/rust-lang/compiler-builtins/pull/770
[2]: https://github.com/rust-lang/compiler-builtins/pull/774
try-job: dist-loongarch64-linux
try-job: dist-loongarch64-musl
|
|
Do not require that unsafe fields lack drop glue
Instead, we adopt the position that introducing an `unsafe` field itself carries a safety invariant: that if you assign an invariant to that field weaker than what the field's destructor requires, you must ensure that field is in a droppable state in your destructor.
See:
- https://github.com/rust-lang/rfcs/pull/3458#discussion_r1971676100
- https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/unsafe.20fields.20RFC/near/502113897
Tracking Issue: #132922
|
|
Fix char count in `Display` for `ByteStr`
`ByteStr as Display` performs a byte count when a char count is required.
r? ```````````@joshtriplett```````````
|
|
r=lcnr
Ensure that negative auto impls are always applicable
r? lcnr (or reassign if you dont want to review)
https://github.com/rust-lang/rust/issues/68318#issuecomment-2689265030
|
|
Undeprecate env::home_dir
#132515 fixed the implementation of `env::home_dir`, but didn't remove the deprecation.
Based on [this comment](https://github.com/rust-lang/rust/pull/132515#discussion_r1829715262), libs-api decided to undeprecate in the next release. Let's do that!
cc #132650
|
|
Pattern types: Avoid having to handle an Option for range ends in the type system or the HIR
Instead,
1. during hir_ty_lowering, we now generate constants for the min/max when the range doesn't have a start/end specified.
2. in a later commit we generate those constants during ast lowering, simplifying everything further by not having to handle the range end inclusivity anymore in the type system (and thus avoiding any issues of `0..5` being different from `0..=4`
I think it makes all the type system code simpler, and the cost of the extra `ConstKind::Value` processing seems negligible.
r? `@BoxyUwU`
cc `@joshtriplett` `@scottmcm`
|
|
Document workings of successors more clearly
This is an attempt to fix #135087 together with https://github.com/rust-lang/rust/pull/135886, but I am not sure if I've succeeded in adding much clarity here, so don't be shy with your comments.
|
|
Replaced the outdated link to https://github.com/rust-lang/miri/blob/master/src/shims/intrinsics with the correct link https://github.com/rust-lang/miri/tree/master/src/intrinsics in the library/core/src/intrinsics/mod.rs file.
|
|
Stabilizes `copy_from_slice` method on `[T]`
|
|
|
|
|
|
Includes `extern` -> `unsafe extern` blocks and formatting updates.
|
|
|
|
|
|
Remove unsizing coercions for tuples
See https://github.com/rust-lang/rust/issues/42877#issuecomment-2686010847 and below comments for justification.
Tracking issue: #42877
Fixes: #135217
|
|
Various coretests improvements
The first commit is not yet strictly necessary as directly testing libcore works though useless work, but will be necessary once https://github.com/rust-lang/rust/pull/136642 migrates the liballoc tests into a separate package. The second commit fixes https://github.com/rust-lang/rust/issues/137478 and ensures that coretests actually gets tested on all CI job. The third commit fixes an error that didn't get caught because coretests doesn't run on the wasm32 CI job.
|
|
Stabilize `string_extend_from_within`
FCP'd here: https://github.com/rust-lang/rust/issues/103806#issuecomment-2674989531.
Closes #103806.
|
|
uefi: Add Service Binding Protocol abstraction
- Some UEFI protocols such as TCP4, TCP6, UDP4, UDP6, etc are managed by service binding protocol.
- A new instance of such protocols is created and destroyed using the corresponding service binding protocol.
- This PR adds abstractions to make using such protocols simpler using Rust Drop trait.
- The reason to add these abstractions in a seperate PR from TCP4 Protocol is to make review easier.
[EFI_SERVICE_BINDING_PROTCOL](https://uefi.org/specs/UEFI/2.11/11_Protocols_UEFI_Driver_Model.html#efi-service-binding-protocol)
cc ````@nicholasbishop````
|
|
[illumos] attempt to use posix_spawn to spawn processes
illumos has `posix_spawn`, and the very newest versions also have `_addchdir`, so use that. POSIX standardized this function so I also added a weak symbol lookup for the non `_np` version. (illumos has both.)
This probably also works on Solaris, but I don't have access to an installation to validate this so I decided to focus on illumos instead.
This is a nice ~4x performance improvement for process creation. My go-to as usual is nextest against the clap repo, which acts as a stress test for process creation -- with [this commit]:
```console
$ cargo nextest run -E 'not test(ui_tests) and not test(example_tests)'
before: Summary [ 1.747s] 879 tests run: 879 passed, 2 skipped
after: Summary [ 0.445s] 879 tests run: 879 passed, 2 skipped
```
[this commit]: https://github.com/clap-rs/clap/commit/fde45f9aea766fb8de46e3d46e6575f393c3b6b9
|
|
Slightly reformat `std::fs::remove_dir_all` error docs
To make the error cases easier to spot on a quick glance, as I've been bitten by this a couple of times already 💀
cc #137230.
|
|
Added documentation for flushing per #74348
Resolves #74348
|
|
Count char width at most once in `Formatter::pad`
When both width and precision flags are specified, then `Formatter::pad` counts the character width twice. Instead, record the character width when truncating it to the precision, so it does not need to be recomputed. Simplify control flow so the cases are more clear.
Related:
- 6c9e708f4be (`fmt::Formatter::pad`: don't call chars().count() more than one time, 2021-09-01): Reduce counting chars from thrice to twice in worst case
- ede39aeb331 (feat: reinterpret `precision` field for strings, 2016-06-29): Change meaning of precision for strings
- b820748ff5a (Implement formatting arguments for strings and integers, 2013-08-10): Implement `Formatter::pad`
|
|
dec2flt: Clean up float parsing modules
This is the first portion of my work adding support for parsing and printing `f16`. Changes in `float.rs` replace the magic constants with expressions and add some use of generics to better support the new float types. Everything else is related to documentation or naming; there are no functional changes in this PR.
This can be reviewed by commit.
|
|
Rollup of 15 pull requests
Successful merges:
- #137829 (Stabilize [T]::split_off... methods)
- #137850 (Stabilize `box_uninit_write`)
- #137912 (Do not recover missing lifetime with random in-scope lifetime)
- #137913 (Allow struct field default values to reference struct's generics)
- #137923 (Simplify `<Postorder as Iterator>::size_hint`)
- #137949 (Update MSVC INSTALL.md instructions to recommend VS 2022 + recent Windows 10/11 SDK)
- #137963 (Add ``dyn`` keyword to `E0373` examples)
- #137975 (Remove unused `PpMode::needs_hir`)
- #137981 (rustdoc search: increase strictness of typechecking)
- #137986 (Fix some typos)
- #137991 (Add `avr-none` to SUMMARY.md and platform-support.md)
- #137993 (Remove obsolete comment from DeduceReadOnly)
- #137996 (Revert "compiler/rustc_data_structures/src/sync/worker_local.rs: delete "unsafe impl Sync"")
- #138019 (Pretty-print `#[deprecated]` attribute in HIR.)
- #138026 (Make CrateItem::body() function return an option)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
This turned out to not be useful, so remove it.
This reverts commit b7b93103fb9293c0c502dc1ae34e2ad5c871bc39.
|
|
This enables `f16` builtins for loongarch [1] and adds support for
Cygwin [2].
[1]: https://github.com/rust-lang/compiler-builtins/pull/770
[2]: https://github.com/rust-lang/compiler-builtins/pull/774
|
|
|
|
Co-authored-by: Ookiineko <chiisaineko@protonmail.com>
|
|
[ the configured-out tests should be re-enabled once we have the symbols
in nightly - Trevor ]
|
|
Fix some typos
Fix some typos
|
|
Stabilize `box_uninit_write`
Closes: https://github.com/rust-lang/rust/issues/129397.
|
|
Stabilize [T]::split_off... methods
This was previously known as the slice_take feature.
Closes #62280
|
|
The fix to this issue was synced in [1] so we should no longer need to
keep aarch64 pinned.
This reverts commit b2bcfc838e2a4b72fa62b333e3eb91f250aa4539.
[1]: https://github.com/rust-lang/rust/pull/137661
|
|
Some targets do not provide these symbols since they always use
__extendhfsf and __truncsfhf. Add a configuration option for this.
|
|
Since we have a handful of different float-related configuration in
testcrate, track a list of which are implied by others rather than
repeating the config.
|
|
Update `compiler-builtins` to 0.1.149
Includes a change to make a subset of math symbols available on all platforms [1], and disables `f16` on aarch64 without neon [2].
[1]: https://github.com/rust-lang/compiler-builtins/pull/763
[2]: https://github.com/rust-lang/compiler-builtins/pull/775
try-job: aarch64-gnu
try-job: aarch64-gnu-debug
try-job: armhf-gnu
try-job: dist-various-1
try-job: dist-various-2
try-job: dist-aarch64-linux
try-job: dist-arm-linux
try-job: dist-armv7-linux
try-job: dist-x86_64-linux
try-job: test-various
|
|
LLVM doesn't seem to emit this intrinsic but it probably should, in some
cases it lowers f16->f64 conversions as f16->f32->f64 with two libcalls.
GCC provides this intrinsic so it is good to have anyway.
Additionally, add a test for f64->f16 which was missing.
[1]: https://rust.godbolt.org/z/xezM9PEnz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|