about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2024-08-18Auto merge of #126450 - madsmtm:promote-mac-catalyst, r=Mark-Simulacrumbors-12/+20
Promote Mac Catalyst targets to Tier 2, and ship with rustup Promote the Mac Catalyst targets `x86_64-apple-ios-macabi` and `aarch64-apple-ios-macabi` to Tier 2, as per [the MCP](https://github.com/rust-lang/compiler-team/issues/761) (see that for motivation and details). These targets are now also distributed with rustup, although without the sanitizer runtime, as that currently has trouble building, see https://github.com/rust-lang/rust/issues/129069.
2024-08-18Auto merge of #129230 - RalfJung:miri-sync, r=RalfJungbors-1045/+2536
Miri subtree update r? `@ghost`
2024-08-18fix build with bootstrap compilerRalf Jung-0/+7
2024-08-18Add EPOLLER supporttiif-6/+83
2024-08-18Auto merge of #3818 - tiif:loseevents, r=RalfJungbors-17/+94
epoll: iterate through output buffer then fetch an event from ready list Fixes #3812
2024-08-18epoll: iterate through output buffer then fetch an event from ready listtiif-17/+94
2024-08-18Auto merge of #3825 - RalfJung:epoll-miri, r=RalfJungbors-3/+9
epoll test_socketpair_read: explicitly check real and Miri behavior
2024-08-18epoll test_socketpair_read: explicitly check real and Miri behaviorRalf Jung-3/+9
2024-08-18make sure we read all arguments before returning earlyRalf Jung-3/+5
2024-08-18Move the maxevents.try_into().unwrap() after value checktiif-8/+9
2024-08-18Set EINVAL for epoll_wait maxevent value 0tiif-1/+17
2024-08-17Auto merge of #128771 - carbotaniuman:stabilize_unsafe_attr, r=nnethercotebors-1/+0
Stabilize `unsafe_attributes` # Stabilization report ## Summary This is a tracking issue for the RFC 3325: unsafe attributes We are stabilizing `#![feature(unsafe_attributes)]`, which makes certain attributes considered 'unsafe', meaning that they must be surrounded by an `unsafe(...)`, as in `#[unsafe(no_mangle)]`. RFC: rust-lang/rfcs#3325 Tracking issue: #123757 ## What is stabilized ### Summary of stabilization Certain attributes will now be designated as unsafe attributes, namely, `no_mangle`, `export_name`, and `link_section` (stable only), and these attributes will need to be called by surrounding them in `unsafe(...)` syntax. On editions prior to 2024, this is simply an edition lint, but it will become a hard error in 2024. This also works in `cfg_attr`, but `unsafe` is not allowed for any other attributes, including proc-macros ones. ```rust #[unsafe(no_mangle)] fn a() {} #[cfg_attr(any(), unsafe(export_name = "c"))] fn b() {} ``` For a table showing the attributes that were considered to be included in the list to require unsafe, and subsequent reasoning about why each such attribute was or was not included, see [this comment here](https://github.com/rust-lang/rust/pull/124214#issuecomment-2124753464) ## Tests The relevant tests are in `tests/ui/rust-2024/unsafe-attributes` and `tests/ui/attributes/unsafe`.
2024-08-17Auto merge of #128792 - compiler-errors:foreign-sig, r=spastorinobors-10/+4
Use `FnSig` instead of raw `FnDecl` for `ForeignItemKind::Fn`, fix ICE for `Fn` trait error on safe foreign fn Let's use `hir::FnSig` instead of `hir::FnDecl + hir::Safety` for `ForeignItemKind::Fn`. This consolidates some handling code between normal fns and foreign fns. Separetly, fix an ICE where we weren't handling `Fn` trait errors for safe foreign fns. If perf is bad for the first commit, I can rework the ICE fix to not rely on it. But if perf is good, I prefer we fix and clean up things all at once 👍 r? spastorino Fixes #128764
2024-08-18Apply test fixtiif-38/+65
- Fix epoll_ctl_del test - Simplified epoll_ctl_mod test and add test_no_notification_for_unregister_flag - Use assert_eq(0) for epoll_ctl
2024-08-17Rollup merge of #129192 - GuillaumeGomez:rm-useless-merged-doctest-attrs, ↵Matthias Krüger-4/+0
r=notriddle Remove useless attributes in merged doctest generated code I took another look at the generated code for merged doctests and it seems like those attributes are only useful when running `rustc --test`, which isn't the case for merged doctests. Less code generated. \o/ r? `@notriddle`
2024-08-17Rollup merge of #129191 - aDotInTheVoid:rdj-serial-cleanup, r=GuillaumeGomezMatthias Krüger-19/+23
rustdoc-json: Clean up serialization and printing. Somewhat a followup to #128963, but makes sense regardless. - Renames `out_path` to `out_dir` because it's not the path to the JSON, but the directory - Also adds a comment explaining `None` - Renames `write` to `serialize_and_write` because it does both. - Also renames the self-profile activity name to be clear this measures both IO cost and serialization CPU cost - Expands the timer to cover flushing - Renames `output` to `output_crate`, to emphasize it's the contents, not the `--output` flag. r? `@GuillaumeGomez`
2024-08-17Auto merge of #3823 - RalfJung:sync, r=RalfJungbors-102/+27
simplify synchronization object creation logic
2024-08-17simplify synchronization object creation logicRalf Jung-102/+27
2024-08-17run TLS tests on SolarishRalf Jung-2/+2
2024-08-17tls_leak_main_thread_allowed: make test check target_thread_localRalf Jung-10/+13
2024-08-17Remove useless attributes in merged doctest generated codeGuillaume Gomez-4/+0
2024-08-17rustdoc-json: Clean up serialization and printing.Alona Enraght-Moony-19/+23
2024-08-17Auto merge of #3819 - RalfJung:epoll-test, r=RalfJungbors-41/+37
epoll test: further clean up check_epoll_wait Given that `check_epoll_wait` compared the length of the two slices, I don't think it was possible for it to ever return `false`. It's also strange to have some requirements checked inside the function and some checked by the caller, so let's just move it all inside the function. Cc `@tiif` -- did I miss anything?
2024-08-17Auto merge of #3815 - RalfJung:pipe, r=RalfJungbors-66/+253
implement pipe and pipe2 Fixes https://github.com/rust-lang/miri/issues/3746
2024-08-17epoll test: further clean up check_epoll_waitRalf Jung-41/+37
2024-08-17Auto merge of #3817 - rust-lang:rustup-2024-08-17, r=RalfJungbors-175/+403
Automatic Rustup
2024-08-17SocketPair -> AnonSocket, because a single FD is not a pairRalf Jung-15/+15
2024-08-17test cleanupRalf Jung-55/+30
2024-08-17socketpair: test behavior when one end got closedRalf Jung-0/+20
2024-08-17implement pipe and pipe2Ralf Jung-31/+223
2024-08-17Auto merge of #3814 - tiif:epollhup, r=RalfJungbors-7/+30
Add epoll EPOLLHUP flag support Related discussion in https://github.com/rust-lang/miri/issues/3811#issuecomment-2293854742. This PR added support for ``EPOLLHUP`` flag.
2024-08-17extend comments on HUP vs RDHUPRalf Jung-1/+5
2024-08-17Auto merge of #3807 - RalfJung:projects, r=oli-obkbors-1/+34
add 'project' process guidlines for larger contributions Fixes https://github.com/rust-lang/miri/issues/3443 I am honestly not entirely sure what the consensus from what issue was. I feel like the epoll PR worked reasonably well, and not having been closely involved I am not sure which process `@oli-obk` followed there. Compared to the first draft in #3443 I tried to make this less formal and framed more as guidelines than hard rules.
2024-08-17Merge from rustcThe Miri Cronjob Bot-174/+402
2024-08-17Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2024-08-17Move epoll_ready_events.epollhup = true uptiif-1/+1
2024-08-16Update cargoWeihang Lo-0/+0
2024-08-16Auto merge of #129162 - matthiaskrgr:rollup-r0oxdev, r=matthiaskrgrbors-2/+3
Rollup of 6 pull requests Successful merges: - #128990 (Re-enable more debuginfo tests on freebsd) - #129042 (Special-case alias ty during the delayed bug emission in `try_from_lit`) - #129086 (Stabilize `is_none_or`) - #129149 (Migrate `validate_json.py` script to rust in `run-make/rustdoc-map-file` test) - #129154 (Fix wrong source location for some incorrect macro definitions) - #129161 (Stabilize std::thread::Builder::spawn_unchecked) r? `@ghost` `@rustbot` modify labels: rollup
2024-08-16Simplify cleaning foreign fns in rustdocMichael Goulet-10/+4
2024-08-17Add epoll EPOLLHUP flag supporttiif-6/+25
2024-08-16Rollup merge of #129149 - GuillaumeGomez:migrate-python-script, r=jieyouxuMatthias Krüger-0/+2
Migrate `validate_json.py` script to rust in `run-make/rustdoc-map-file` test This PR fixes the FIXME I added for future-me who become present-me. :') Since there are multiple `run-make` tests using python scripts, I suppose more of them will migrate to Rust, hence why I added the `jzon` public reexport to the `run-make-support` crate. cc `@jieyouxu` r? `@Kobzol`
2024-08-16Rollup merge of #129086 - slanterns:is_none_or, r=dtolnayMatthias Krüger-2/+1
Stabilize `is_none_or` Closes: https://github.com/rust-lang/rust/issues/126383. `@rustbot` label: +T-libs-api r? libs-api
2024-08-16Auto merge of #128456 - Oneirical:clantestine-operations, r=jieyouxubors-1/+0
Migrate `reproducible-build` `run-make` test to rmake Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html). This will likely fail. Locally, rustc errors with `linker 'linker' not found` on line 36 while the file exists according to the dir-debug statement before it. If this gets fixed and the test passes, further developments may include: - [x] There may be some leftovers from each test - `test_in_tmpdir` may therefore be required. - [ ] Try jobs on all ignored architectures. - [x] A potential refactor with a struct and a custom function like #128410 so this isn't just a huge stream of `rfs` and `rustc`. This is a little bit harder to do in this test considering the variability present in each test case. // try-job: x86_64-msvc // windows jobs passed in a prior run // try-job: x86_64-mingw // try-job: i686-msvc // try-job: i686-mingw try-job: aarch64-apple try-job: aarch64-gnu try-job: armhf-gnu try-job: test-various try-job: dist-various-1
2024-08-16Auto merge of #3809 - RalfJung:fd-refcell, r=oli-obkbors-399/+294
FD: remove big surrounding RefCell, simplify socketpair A while ago, I added the big implicit RefCell for all file descriptions since it avoided interior mutability in `eventfd`. However, this requires us to hold the RefCell "lock" around the entire invocation of the `read`/`write` methods on an FD, which is not great. For instance, if an FD wants to update epoll notifications from inside its `read`/`write`, it is very crucial that the notification check does not end up accessing the FD itself. Such cycles, however, occur naturally: - eventfd wants to update notifications for itself - socketfd wants to update notifications on its "peer", which will in turn check *its* peer to see whether that buffer is empty -- and my peer's peer is myself. This then also lets us simplify socketpair, which currently holds a weak reference to its peer *and* a weak reference to the peer's buffer -- that was previously needed precisely to avoid this issue.
2024-08-16Auto merge of #3754 - Vanille-N:master, r=RalfJungbors-134/+200
Make unused states of Reserved unrepresentable In the [previous TB update](https://github.com/rust-lang/miri/pull/3742) we discovered that the existence of `Reserved + !ty_is_freeze + protected` is undesirable. This has the side effect of making `Reserved { conflicted: true, ty_is_freeze: false }` unreachable. As such it is desirable that this state would also be unrepresentable. This PR eliminates the unused configuration by changing ```rs enum PermissionPriv { Reserved { ty_is_freeze: bool, conflicted: bool }, ... } ``` into ```rs enum PermissionPriv { ReservedFrz { conflicted: bool }, ReservedIM, ... } ``` but this is not the only solution and `Reserved(Activable | Conflicted | InteriorMut)` could be discussed. In addition to making the unreachable state not representable anymore, this change has the nice side effect of enabling `foreign_read` to no longer depend explicitly on the `protected` flag. Currently waiting for - `@JoJoDeveloping` to confirm that this is the same representation of `Reserved` as what is being implemented in simuliris, - `@RalfJung` to approve that this does not introduce too much overhead in the trusted codebase.
2024-08-16explain the behavior on closed peersRalf Jung-11/+12
2024-08-16more epoll test cleanupRalf Jung-29/+25
2024-08-16comment and test regarding notifications on writes that dont change readinessRalf Jung-1/+17
2024-08-16epoll test cleanupRalf Jung-118/+58
2024-08-16Reexport `serde_json` crate from run-make-support to give it access to ↵Guillaume Gomez-0/+1
`run-make` tests