Commit graph

14582 commits

Author SHA1 Message Date
Ralf Jung
fb7bcd1baa
Merge pull request #3987 from TDecking/vpclmul
Implement LLVM x86 vpclmulqdq intrinsics
2024-10-27 20:54:15 +00:00
Oli Scherer
ca0e5df0a6
Merge pull request #3995 from RalfJung/readdir_r
fix error returned from readdir_r when isolation is enabled, and uses of raw_os_error
2024-10-26 16:01:50 +00:00
Tobias Decking
05530b6e10
Adjust the vpclmulqdq test case 2024-10-26 13:58:59 +02:00
Tobias Decking
9622a79378
Implement LLVM x86 vpclmulqdq intrinsics 2024-10-26 12:55:05 +02:00
Ralf Jung
4a34e2784b do not set the file type to an error code 2024-10-26 09:10:11 +02:00
Ralf Jung
3f763c776e do not use host 'raw_os_error' to compute target error code 2024-10-26 09:10:11 +02:00
Ralf Jung
72664f7760 fix error returned from readdir_r when isolation is enabled 2024-10-26 08:58:48 +02:00
Ralf Jung
d1530f0ed9
Merge pull request #3993 from RalfJung/dir-entry-drop-explicit
indicate more explicitly where we close host file/dir handles
2024-10-26 06:55:21 +00:00
Ralf Jung
3ff01dd908 automatic PR: explain how to trigger CI 2024-10-26 07:23:51 +02:00
Ralf Jung
df9829c64d indicate more explicitly where we close host file/dir handles 2024-10-26 07:21:40 +02:00
Ralf Jung
3432b91bbc
Merge pull request #3989 from RalfJung/ci
CI workflow: tweak conclusion job
2024-10-25 14:50:10 +00:00
Ralf Jung
2350ba7276 some more opportunities for set_last_error_and_return 2024-10-25 16:10:48 +02:00
Ralf Jung
82b041e356 get rid of fd_not_found; improve error handling in FileMetadata 2024-10-25 16:06:03 +02:00
Ralf Jung
e5d32b6757 CI workflow: tweak conclusion job 2024-10-25 15:26:44 +02:00
Noah Bright
c1004ff861 Clear more eval_libc errors from unix shims 2024-10-25 08:42:23 -04:00
Marco Ieni
340d2f7847
Merge pull request #3981 from Kobzol/ci-merge-queue
Switch CI to merge queues
2024-10-22 11:03:36 +00:00
Jakub Beránek
615822d0da
Switch CI to merge queues 2024-10-22 12:38:10 +02:00
bors
f8448f9e0c Auto merge of #3982 - RalfJung:epoll_ctl, r=RalfJung
epoll_ctl: throw unsupported error on unsupported opcode

`@tiif` this is a somewhat suspicious "return -1" without setting the `errno` -- what is the reasoning behind that?

Throwing a clear error seems better to me.
2024-10-22 08:21:37 +00:00
The Miri Cronjob Bot
cd8c1234ce fmt 2024-10-22 05:08:45 +00:00
The Miri Cronjob Bot
865acc2e83 Merge from rustc 2024-10-22 05:07:39 +00:00
The Miri Cronjob Bot
499820a494 Preparing for merge from rustc 2024-10-22 04:59:47 +00:00
Matthias Krüger
1cc8c8de95
Rollup merge of #131737 - jieyouxu:note-summary, r=ehuss
linkchecker: add a reminder on broken links to add new/renamed pages to `SUMMARY.md` for mdBooks

I spent an embarrassingly long amount of time trying to figure out why CI was failing for a PR adding new platform support docs. In turns out it's because the PR author didn't register the new page in `SUMMARY.md`. I completely forgot about it too, and was reading linkchecker source because I thought it was a bug in linkchecker.

So this PR adds a note to modify `SUMMARY.md` when adding new pages in a mdBook.

E.g.

```
# Adding a new `meow` target but forgor to register the page in `SUMMARY.md`
rustc\platform-support.html:183: broken link - `rustc\platform-support\meow.html`
rustc\print.html:9730: broken link - `rustc\platform-support\meow.html`
checked links in: 19.1s
number of HTML files scanned: 43588
number of HTML redirects found: 13735
number of links checked: 3145951
number of links ignored due to external: 156244
number of links ignored due to exceptions: 9
number of intra doc links ignored: 8
errors found: 2
NOTE: if you are adding or renaming a markdown file in a mdBook, don't forget to register the page in SUMMARY.md
found some broken links
```
2024-10-21 18:11:20 +02:00
Matthias Krüger
20b1dadf92
Rollup merge of #130350 - RalfJung:strict-provenance, r=dtolnay
stabilize Strict Provenance and Exposed Provenance APIs

Given that [RFC 3559](https://rust-lang.github.io/rfcs/3559-rust-has-provenance.html) has been accepted, t-lang has approved the concept of provenance to exist in the language. So I think it's time that we stabilize the strict provenance and exposed provenance APIs, and discuss provenance explicitly in the docs:
```rust
// core::ptr
pub const fn without_provenance<T>(addr: usize) -> *const T;
pub const fn dangling<T>() -> *const T;
pub const fn without_provenance_mut<T>(addr: usize) -> *mut T;
pub const fn dangling_mut<T>() -> *mut T;
pub fn with_exposed_provenance<T>(addr: usize) -> *const T;
pub fn with_exposed_provenance_mut<T>(addr: usize) -> *mut T;

impl<T: ?Sized> *const T {
    pub fn addr(self) -> usize;
    pub fn expose_provenance(self) -> usize;
    pub fn with_addr(self, addr: usize) -> Self;
    pub fn map_addr(self, f: impl FnOnce(usize) -> usize) -> Self;
}

impl<T: ?Sized> *mut T {
    pub fn addr(self) -> usize;
    pub fn expose_provenance(self) -> usize;
    pub fn with_addr(self, addr: usize) -> Self;
    pub fn map_addr(self, f: impl FnOnce(usize) -> usize) -> Self;
}

impl<T: ?Sized> NonNull<T> {
    pub fn addr(self) -> NonZero<usize>;
    pub fn with_addr(self, addr: NonZero<usize>) -> Self;
    pub fn map_addr(self, f: impl FnOnce(NonZero<usize>) -> NonZero<usize>) -> Self;
}
```

I also did a pass over the docs to adjust them, because this is no longer an "experiment". The `ptr` docs now discuss the concept of provenance in general, and then they go into the two families of APIs for dealing with provenance: Strict Provenance and Exposed Provenance. I removed the discussion of how pointers also have an associated "address space" -- that is not actually tracked in the pointer value, it is tracked in the type, so IMO it just distracts from the core point of provenance. I also adjusted the docs for `with_exposed_provenance` to make it clear that we cannot guarantee much about this function, it's all best-effort.

There are two unstable lints associated with the strict_provenance feature gate; I moved them to a new [strict_provenance_lints](https://github.com/rust-lang/rust/issues/130351) feature since I didn't want this PR to have an even bigger FCP. ;)

`@rust-lang/opsem` Would be great to get some feedback on the docs here. :)
Nominating for `@rust-lang/libs-api.`

Part of https://github.com/rust-lang/rust/issues/95228.

[FCP comment](https://github.com/rust-lang/rust/pull/130350#issuecomment-2395114536)
2024-10-21 18:11:19 +02:00
Ralf Jung
e51eded01a epoll_ctl: throw unsupported error on unsupported opcode 2024-10-21 16:34:19 +01:00
bors
695a1b67aa Auto merge of #3899 - YohDeadfall:prctl-thread-name, r=RalfJung
Android: Added support for prctl handling thread names

Addresses the first part of #3618.
2024-10-21 14:25:26 +00:00
Ralf Jung
56ee492a6e move strict provenance lints to new feature gate, remove old feature gates 2024-10-21 15:22:17 +01:00
bors
13e5e4b759 Auto merge of #3941 - noahmbright:unix_shims, r=oli-obk
Replace set_last_error with set_last_error_and_return

Took care of the simple patterns. Other patterns involved setting an error and then using `write_int` or setting metadata and returning -1. Unsure if those are in the scope of this change

Looks like this has conflicts with #3779, so I can update when how to handle that is decided.

Part of https://github.com/rust-lang/miri/issues/3930.
2024-10-21 13:58:28 +00:00
Yoh Deadfall
c2f43ba09c Added support for prctl handling thread names 2024-10-21 13:39:32 +03:00
Noah Bright
2b11c70690 Replace set_last_error with set_last_error_and_return_i*
Add `set_last_error_and_return_i64`, change calls from
`this.libc_eval` to `LibcError`, and replace pairs of
`set_last_error` and returning values of the right type
with the new helper functions
2024-10-21 05:27:32 -04:00
bors
93742bd782 Auto merge of #131988 - matthiaskrgr:rollup-tx173wn, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #126588 (Added more scenarios where comma to be removed in the function arg)
 - #131728 (bootstrap: extract builder cargo to its own module)
 - #131968 (Rip out old effects var handling code from traits)
 - #131981 (Remove the `BoundConstness::NotConst` variant)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-21 06:13:34 +00:00
Matthias Krüger
4f6750b86c
Rollup merge of #131968 - compiler-errors:old-effect-handling, r=fee1-dead
Rip out old effects var handling code from traits

Traits no longer have an effect parameter, so this removes logic associated with it. It also removes logic surrounding confirming `~const Destruct` bounds, which I added a looooong time ago, and which I don't feel like we need anymore -- if it needs to be added back, it should be rewritten :D

cc `@fee1-dead`
2024-10-21 07:01:37 +02:00
bors
f2ba41113d Auto merge of #130950 - compiler-errors:yeet-eval, r=BoxyUwU
Continue to get rid of `ty::Const::{try_}eval*`

This PR mostly does:

* Removes all of the `try_eval_*` and `eval_*` helpers from `ty::Const`, and replace their usages with `try_to_*`.
* Remove `ty::Const::eval`.
* Rename `ty::Const::normalize` to `ty::Const::normalize_internal`. This function is still used in the normalization code itself.
* Fix some weirdness around the `TransmuteFrom` goal.

I'm happy to split it out further; for example, I could probably land the first part which removes the helpers, or the changes to codegen which are more obvious than the changes to tools.

r? BoxyUwU

Part of https://github.com/rust-lang/rust/issues/130704
2024-10-21 03:46:28 +00:00
bors
7ed1a51b25 Auto merge of #131980 - matthiaskrgr:rollup-iy5nw71, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #131814 (`optimize` attribute applied to things other than methods/functions/c…)
 - #131927 (Check for filecheck directives in files marked `skip-filecheck`)
 - #131967 (Remove `lower_mono_bounds`)
 - #131973 (fix(rustdoc-json-types): document rustc-hash feature)
 - #131976 (feat(rustdoc-json-types): mark simple enums as copy)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-10-20 21:40:21 +00:00
Matthias Krüger
7fbed7b07e
Rollup merge of #131927 - clubby789:skip-filecheck-directives, r=Mark-Simulacrum
Check for filecheck directives in files marked `skip-filecheck`

cc #116971
2024-10-20 21:04:13 +02:00
bors
662180b34d Auto merge of #131949 - Noratrieb:fxhashup-thanks-alona, r=WaffleLapkin
Update rustc-hash to version 2 but again

it's like #129533 but not closed by bors and rebased

r? WaffleLapkin meow
2024-10-20 19:01:54 +00:00
Matthias Krüger
0d4cf0521e
Rollup merge of #131961 - jieyouxu:dirty, r=Zalathar
compiletest: tidy up how `tidy` and `tidy` (html version) are disambiguated

Rename `has_tidy` -> `has_html_tidy` (`tidy` is also a bootstrap tool, but rustdoc uses a html tidy that has the same binary name). Follow-up to #131941.

Also apparently `runtest.rs` is short enough now, we can delete the `tidy` (bootstrap version) ignore for file length.
2024-10-20 16:54:11 +02:00
Matthias Krüger
fb42a4581b
Rollup merge of #131647 - jieyouxu:unicode-table-generator, r=Mark-Simulacrum
Register `src/tools/unicode-table-generator` as a runnable tool

It seems like `src/tools/unicode-table-generator` is not currently managed by bootstrap. This PR wires it up with bootstrap as a runnable tool.

This tool seems to take two possible args:

1. (Mandatory) path to `library/core/src/unicode/unicode_data.rs`, and
2. (Optional) path to generate a test file.

I only passed the mandatory path to `unicode_data.rs` in bootstrap and didn't do anything about (2). I'm not sure about how this tool is supposed to be run.

`Cargo.lock` is modified because I renamed `unicode-table-generator`'s bin name to match the tool name, as bootstrap's tool running logic expects the bin name to be derived from the tool name.

I also added a triagebot message to remind to not manually edit the library source file and edit the tool then regenerate instead, but this should probably be a tidy check (if that's desirable then that can be in a follow-up PR, though may be overkill).

Helps with #131640 but does not close it because still no docs.

r? `@Mark-Simulacrum` (since I think you authored this tool?)
2024-10-20 16:54:09 +02:00
Matthias Krüger
7b714d4735
Rollup merge of #121560 - Noratrieb:stop-lint-macro-nonsense, r=jieyouxu
Allow `#[deny]` inside `#[forbid]` as a no-op

Forbid cannot be overriden. When someome tries to do this anyways, it results in a hard error. That makes sense.

Except it doesn't, because macros. Macros may reasonably use `#[deny]` (or `#[warn]` for an allow-by-default lint) in their expansion to assert that their expanded code follows the lint. This is doesn't work when the output gets expanded into a `forbid()` context. This is pretty silly, since both the macros and the code agree on the lint!

By making it a warning instead, we remove the problem with the macro, which is now nothing as warnings are suppressed in macro expanded code, while still telling users that something is up.

fixes #121483
2024-10-20 16:54:08 +02:00
Michael Goulet
6f6f91ab82 Rip out old effects var handling code from traits 2024-10-20 13:40:22 +00:00
Noratrieb
4348383a0f Update rustc-hash to version 2
This brings in the new algorithm.
2024-10-20 00:12:49 -07:00
许杰友 Jieyou Xu (Joe)
e32a5be3b0 compiletest: disambiguate between tidy and tidy (html version) 2024-10-20 14:30:52 +08:00
The Miri Cronjob Bot
ccd680ee01 fmt 2024-10-20 05:04:32 +00:00
The Miri Cronjob Bot
19b0bb9b54 Merge from rustc 2024-10-20 05:03:22 +00:00
The Miri Cronjob Bot
ea2ac892bd Preparing for merge from rustc 2024-10-20 04:55:19 +00:00
Stuart Cook
63fccf0c2f
Rollup merge of #131942 - workingjubilee:reduce-haruspicy, r=lukas-code,lnicola
compiler: Adopt rust-analyzer impls for `LayoutCalculatorError`

We're about to massively churn the internals of `rustc_abi`. To minimize the immediate and future impact on rust-analyzer, as a subtree that depends on this crate, grow some API on `LayoutCalculatorError` that reflects their uses of it. This way we can nest the type in theirs, and they can just call functions on it without having to inspect and flatten-out its innards.
2024-10-20 14:06:04 +11:00
Stuart Cook
28a5ef9175
Rollup merge of #131941 - lolbinarycat:compiletest-need-html-tidy, r=clubby789
compiletest: disambiguate html-tidy from rust tidy tool

when i first saw this error message i was very confused, i thought it was talking about `src/tools/tidy`.  now it should be much more clear what tool should be installed.
2024-10-20 14:06:03 +11:00
Matthias Krüger
efd940d24a
Rollup merge of #131925 - clubby789:redundant-revision-cfg, r=jieyouxu
Warn on redundant `--cfg` directive when revisions are used

r? ``@jieyouxu``

Fixes #131390
Not sure of the best way to test this
2024-10-19 22:00:59 +02:00
binarycat
53974b1786 compiletest: disambiguate html-tidy from rust tidy tool 2024-10-19 13:11:26 -05:00
Jubilee Young
e1d6164607 rust-analyzer: Nest LayoutCalculatorError in hir_ty::LayoutError 2024-10-19 11:09:24 -07:00
Michael Goulet
5cf8107aa6 Fix tests 2024-10-19 18:07:35 +00:00