| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return block
|
|
add helper function to declare an extern static for a weak symbol
and use it to make `statx` a regular function and get rid of the syscall
|
|
|
|
|
|
document unofficially supported OSes
Also tweak the freeBSD testing a bit.
|
|
update 'unsupported' message
Instead of "the interpreter", just say Miri.
Also be a more more clear about what is expected to be supported and what not (Cc https://github.com/rust-lang/miri/issues/2325).
|
|
|
|
|
|
also reorder foreign_items to fix the grouping, and reorder the tests_minimal invocations to be more consistent
|
|
|
|
supporting it too."
This reverts commit c1a3f8576ea12b0bed68ad3dedf4069ca3d9816f.
|
|
even out CI runner times
|
|
move intrinsics tests into dedicated folder
And separate them from "shims" (which are for extern functions we link against).
|
|
|
|
|
|
Let miri and const eval execute intrinsics' fallback bodies
fixes https://github.com/rust-lang/miri/issues/3397
r? ``@RalfJung``
|
|
and make them separate from 'shims'
|
|
|
|
|
|
r=RalfJung
Make file descriptors into refcount references
fixes #3525
Remove `fn dup` in `trait FileDescription`, define `struct FileDescriptor(Rc<RefCell<dyn FileDescription>>)`, and use `BTreeMap<i32, FileDescriptor>` in `FdTable`.
---
There are some refactors similar to the following form:
```rust
{ // origin:
if let Some(file_descriptor) = this.machine.fds.get_mut(fd) {
// write file_descriptor
this.try_unwrap_io_result(result)
} else {
this.fd_not_found()
}
}
{ // now:
let Some(mut file_descriptor) = this.machine.fds.get_mut(fd) else {
return this.fd_not_found();
};
// write file_descriptor
drop(file_descriptor);
this.try_unwrap_io_result(result)
}
```
The origin form can't compile because as using `RefCell` to get interior mutability, `fn get_mut` return `Option<std::cell::RefMut<'_, dyn FileDescription>>` instead of `Option<&mut dyn FileDescription>` now, and the `deref_mut` on `file_descriptor: RefMut` will cause borrow `this` as mutable more than once at a time.
So this form of refactors and manual drops are are implemented to avoid borrowing `this` at the same time.
|
|
|
|
|
|
take ownership of self and return `io::Result<()>` in `FileDescription::close`
Co-authored-by: Ralf Jung <post@ralfj.de>
|
|
macos: use getentropy from libc
This has been added in the mean time.
|
|
|
|
|
|
make many-seeds a mode of ./miri run rather than a separate command
Also parallelize it so we use all cores to try seeds at the same time.
Fixes https://github.com/rust-lang/miri/issues/3509 by not alternating between different build modes (with/without dev-dependencies) all the time.
|
|
|
|
|
|
Change `SIGPIPE` ui from `#[unix_sigpipe = "..."]` to `-Zon-broken-pipe=...`
In the stabilization [attempt](https://github.com/rust-lang/rust/pull/120832) of `#[unix_sigpipe = "sig_dfl"]`, a concern was [raised ](https://github.com/rust-lang/rust/pull/120832#issuecomment-2007394609) related to using a language attribute for the feature: Long term, we want `fn lang_start()` to be definable by any crate, not just libstd. Having a special language attribute in that case becomes awkward.
So as a first step towards the next stabilization attempt, this PR changes the `#[unix_sigpipe = "..."]` attribute to a compiler flag `-Zon-broken-pipe=...` to remove that concern, since now the language is not "contaminated" by this feature.
Another point was [also raised](https://github.com/rust-lang/rust/pull/120832#issuecomment-1987023484), namely that the ui should not leak **how** it does things, but rather what the **end effect** is. The new flag uses the proposed naming. This is of course something that can be iterated on further before stabilization.
Tracking issue: https://github.com/rust-lang/rust/issues/97889
|
|
|
|
./miri run: support -v flag to print what it is doing
|
|
|
|
Preparing for merge from rustc
Unblocks https://github.com/rust-lang/miri/pull/3526.
|
|
|
|
|
|
preserve all UB that the native intrinsic would have
|
|
|
|
Automatic Rustup
|
|
|
|
|
|
|
|
|