| Age | Commit message (Collapse) | Author | Lines |
|
Add tracing to data race functions
|
|
compiler & tools dependencies:
Locking 28 packages to latest compatible versions
Updating anyhow v1.0.98 -> v1.0.99
Updating bitflags v2.9.1 -> v2.9.2
Updating clap v4.5.43 -> v4.5.45
Updating clap_builder v4.5.43 -> v4.5.44
Updating clap_derive v4.5.41 -> v4.5.45
Updating curl v0.4.48 -> v0.4.49
Updating curl-sys v0.4.82+curl-8.14.1 -> v0.4.83+curl-8.15.0
Updating cxx v1.0.166 -> v1.0.168
Updating cxx-build v1.0.166 -> v1.0.168
Updating cxxbridge-cmd v1.0.166 -> v1.0.168
Updating cxxbridge-flags v1.0.166 -> v1.0.168
Updating cxxbridge-macro v1.0.166 -> v1.0.168
Updating glob v0.3.2 -> v0.3.3
Updating object v0.37.2 -> v0.37.3
Updating proc-macro2 v1.0.95 -> v1.0.101
Updating rayon v1.10.0 -> v1.11.0
Updating rayon-core v1.12.1 -> v1.13.0
Updating serde-untagged v0.1.7 -> v0.1.8
Updating socket2 v0.5.10 -> v0.6.0
Updating syn v2.0.104 -> v2.0.106
Updating thiserror v2.0.12 -> v2.0.15
Updating thiserror-impl v2.0.12 -> v2.0.15
Updating uuid v1.17.0 -> v1.18.0
Updating wasm-encoder v0.236.0 -> v0.236.1
Updating wasmparser v0.236.0 -> v0.236.1
Updating wast v236.0.0 -> v236.0.1
Updating wat v1.236.0 -> v1.236.1
note: pass `--verbose` to see 35 unchanged dependencies behind latest
library dependencies:
Locking 2 packages to latest compatible versions
Updating libc v0.2.174 -> v0.2.175
Updating object v0.37.2 -> v0.37.3
note: pass `--verbose` to see 2 unchanged dependencies behind latest
rustbook dependencies:
Locking 13 packages to latest compatible versions
Updating anyhow v1.0.98 -> v1.0.99
Updating bitflags v2.9.1 -> v2.9.2
Updating cc v1.2.32 -> v1.2.33
Updating clap v4.5.43 -> v4.5.45
Updating clap_builder v4.5.43 -> v4.5.44
Updating clap_complete v4.5.56 -> v4.5.57
Updating clap_derive v4.5.41 -> v4.5.45
Updating proc-macro2 v1.0.95 -> v1.0.101
Updating syn v2.0.104 -> v2.0.106
Updating terminal_size v0.4.2 -> v0.4.3
Updating thiserror v2.0.12 -> v2.0.15
Updating thiserror-impl v2.0.12 -> v2.0.15
|
|
To avoid backwards compatibility problems.
|
|
Rollup of 10 pull requests
Successful merges:
- rust-lang/rust#144838 (Fix outdated doc comment)
- rust-lang/rust#145206 (Port `#[custom_mir(..)]` to the new attribute system)
- rust-lang/rust#145208 (Implement declarative (`macro_rules!`) derive macros (RFC 3698))
- rust-lang/rust#145309 (Fix `-Zregparm` for LLVM builtins)
- rust-lang/rust#145355 (Add codegen test for issue 122734)
- rust-lang/rust#145420 (cg_llvm: Use LLVM-C bindings for `LLVMSetTailCallKind`, `LLVMGetTypeKind`)
- rust-lang/rust#145451 (Add static glibc to the nix dev shell)
- rust-lang/rust#145460 (Speedup `copy_src_dirs` in bootstrap)
- rust-lang/rust#145476 (Fix typo in doc for library/std/src/fs.rs#set_permissions)
- rust-lang/rust#145485 (Fix deprecation attributes on foreign statics)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|
|
Implement the accepted ACP for methods that find the index of the least
significant (lowest) and most significant (highest) set bit in an
integer for signed, unsigned, and NonZero types.
Also add unit tests for all these types.
|
|
|
|
|
|
|
|
This removes the #[no_sanitize] attribute, which was behind an unstable
feature named no_sanitize. Instead, we introduce the sanitize attribute
which is more powerful and allows to be extended in the future (instead
of just focusing on turning sanitizers off).
This also makes sanitize(kernel_address = ..) attribute work with
-Zsanitize=address
To do it the same as how clang disables address sanitizer, we now
disable ASAN on sanitize(kernel_address = "off") and KASAN on
sanitize(address = "off").
The same was added to clang in https://reviews.llvm.org/D44981.
|
|
This change implements the #[sanitize(..)] attribute, which opts to
replace the currently unstable #[no_sanitize]. Essentially the new
attribute works similar as #[no_sanitize], just with more flexible
options regarding where it is applied. E.g. it is possible to turn
a certain sanitizer either on or off:
`#[sanitize(address = "on|off")]`
This attribute now also applies to more places, e.g. it is possible
to turn off a sanitizer for an entire module or impl block:
```rust
\#[sanitize(address = "off")]
mod foo {
fn unsanitized(..) {}
#[sanitize(address = "on")]
fn sanitized(..) {}
}
\#[sanitize(thread = "off")]
impl MyTrait for () {
...
}
```
This attribute is enabled behind the unstable `sanitize` feature.
|
|
|
|
Automatic Rustup
|
|
|
|
|
|
Rustc pull update
|
|
|
|
r=jdonszelmann
Fix deprecation attributes on foreign statics
r? ````````@jdonszelmann````````
Fixes https://github.com/rust-lang/rust/issues/145437
|
|
Fix typo in doc for library/std/src/fs.rs#set_permissions
"privalage" -> "privilege".
Was reading the docs and have noticed this.
|
|
Speedup `copy_src_dirs` in bootstrap
I was kinda offended by how slow it was. Just the `copy_src_dirs` part took ~3s locally in the `x dist rustc-src` step. In release mode it was just 1s, but that's kind of cheating (I wonder if we should build bootstrap in release mode on CI though...).
Did some basic optimizations to bring it down to ~1s also in debug mode.
Maybe it's overkill, due to https://github.com/rust-lang/rust/pull/145455. Up to you whether we should merge it or close it :)
r? `````````@jieyouxu`````````
|
|
Add static glibc to the nix dev shell
This fixes `tests/ui/process/nofile-limit.rs` which fails to link on nixos for me without this change.
|
|
cg_llvm: Use LLVM-C bindings for `LLVMSetTailCallKind`, `LLVMGetTypeKind`
This PR replaces two existing `LLVMRust` bindings with equivalent calls to the LLVM-C API.
For `LLVMGetTypeKind`, we avoid the UB hazard by declaring the foreign function to return `RawEnum<TypeKind>` (which is a wrapper around `u32`), and then perform checked conversion from `u32` to `TypeKind`.
|
|
Add codegen test for issue 122734
Closes rust-lang/rust#122734
|
|
Fix `-Zregparm` for LLVM builtins
This fixes the issue where `-Zregparm=N` was not working correctly when calling LLVM intrinsics
By default on `x86-32`, arguments are passed on the stack. The `-Zregparm=N` flag allows the first `N` arguments to be passed in registers instead.
When calling intrinsics like `memset`, LLVM still passes parameters on the stack, which prevents optimizations like tail calls.
As proposed by ````@tgross35,```` I fixed this by setting the `NumRegisterParameters` LLVM module flag to `N` when the `-Zregparm=N` is set.
```rust
// compiler/rust_codegen_llvm/src/context.rs#375-382
if let Some(regparm_count) = sess.opts.unstable_opts.regparm {
llvm::add_module_flag_u32(
llmod,
llvm::ModuleFlagMergeBehavior::Error,
"NumRegisterParameters",
regparm_count,
);
}
```
[Here](https://rust.godbolt.org/z/YMezreo48) is a before/after compiler explorer.
Here is the final result for the code snippet in the original issue:
```asm
entrypoint:
push esi
mov esi, eax
mov eax, ecx
mov ecx, esi
pop esi
jmp memset ; Tail call parameters in registers
```
Fixes: https://github.com/rust-lang/rust/issues/145271
|
|
Implement declarative (`macro_rules!`) derive macros (RFC 3698)
This is a draft for review, and should not be merged yet.
This is layered atop https://github.com/rust-lang/rust/pull/145153 , and has
only two additional commits atop that. The first handles parsing and provides a
test for various parse errors. The second implements expansion and handles
application.
This implements RFC 3698, "Declarative (`macro_rules!`) derive macros".
Tracking issue: https://github.com/rust-lang/rust/issues/143549
This has one remaining issue, which I could use some help debugging: in
`tests/ui/macros/macro-rules-derive-error.rs`, the diagnostics for
`derive(fn_only)` (for a `fn_only` with no `derive` rules) and
`derive(ForwardReferencedDerive)` both get emitted twice, as a duplicate
diagnostic.
From what I can tell via adding some debugging code,
`unresolved_macro_suggestions` is getting called twice from
`finalize_macro_resolutions` for each of them, because
`self.single_segment_macro_resolutions` has two entries for the macro, with two
different `parent_scope` values. I'm not clear on why that happened; it doesn't
happen with the equivalent code using attrs.
I'd welcome any suggestions for fixing this.
|
|
Port `#[custom_mir(..)]` to the new attribute system
r? ``````````@jdonszelmann``````````
|
|
Fix outdated doc comment
This updates the documentation comment for `Type::is_doc_subtype_of` to more accurately describe its purpose as a subtyping check, rather than equality
fixes rust-lang/rust#138572
r? ````````````@tgross35````````````
|
|
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0
Filtered ref: 7e955d5a6c676a099595bdfaec0705d3703e7a3c
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
This updates the rust-version file to 425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0.
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0
Filtered ref: 26b9fd24259f4fc5fd7634a99dd6dda2821fb2d0
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
This updates the rust-version file to 425a9c0a0e365c0b8c6cfd00c2ded83a73bed9a0.
|
|
|
|
|
|
|
|
|
|
|
|
previous code was perfectly sound because of MaybeUninit,
but it did waste cycles on copying memory that is
known to be uninitialized.
|
|
|
|
|
|
|
|
|
|
changelog: none
|
|
This is intended to be used for Linux kernel RETPOLINE builds.
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
|
|
|
|
|
|
|
|
|