| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Make some types and methods related to Polonius + Miri public
We have a tool, [Aquascope](https://github.com/cognitive-engineering-lab/aquascope/), which uses Polonius and Miri to visualize the compile-time and run-time semantics of a Rust program. Changes in the last few months to both APIs have hidden away details we depend upon. This PR re-exposes some of those details, specifically:
**Polonius:**
- `BorrowSet` and `BorrowData` are added to `rustc_borrowck::consumers`, and their fields are made `pub` instead of `pub(crate)`. We need this to interpret the `BorrowIndex`es generated by Polonius.
- `BorrowSet::build` is now `pub`. We need this because the borrowck API doesn't provide access to the `BorrowSet` constructed during checking.
- `PoloniusRegionVid` is added to `rustc_borrowck::consumers`. We need this because it's also contained in the Polonius facts.
**Miri:**
- `InterpCx::local_to_op` is now a special case of `local_at_frame_to_op`, which allows querying locals in any frame. We need this because we walk the whole stack at each step to collect the state of memory.
- `InterpCx::layout_of_local` is now `pub`. We need this because we need to know the layout of every local at each step.
If these changes go against some design goal for keeping certain types private, please let me know so we can hash out a better solution. Additionally, if there's a better way to document that it's important that certain types stay public, also let me know. For example, `BorrowSet` was previously public but was hidden in 6676cec, breaking our build.
cc ```@RalfJung``` ```@nnethercote``` ```@gavinleroy```
|
|
Use clap in miri-script
|
|
|
|
|
|
Co-authored-by: Ralf Jung <post@ralfj.de>
|
|
|
|
A bunch of cleanups (part 2)
Just like https://github.com/rust-lang/rust/pull/133567 these were all found while looking at the respective code, but are not blocking any other changes I want to make in the short term.
|
|
Tweak multispan rendering to reduce output length
Consider comments and bare delimiters the same as an "empty line" for purposes of hiding rendered code output of long multispans. This results in more aggressive shortening of rendered output without losing too much context, specially in `*.stderr` tests that have "hidden" comments. We do that check not only on the first 4 lines of the multispan, but now also on the previous to last line as well.
|
|
|
|
It is treated as a map already. This is using FxIndexMap rather than
UnordMap because the latter doesn't provide an api to pick a single
value iff all values are equal, which each_linked_rlib depends on.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
localtime_r: deduplicate timezone name allocation
|
|
Signed-off-by: shamb0 <r.raajey@gmail.com>
|
|
bench-cargo-miri: bump lockfiles
|
|
|
|
solarish stat following-up, supports for readdir.
|
|
|
|
|
|
|
|
|
|
[TB Optimization] Skip subtrees based on the subtree's root node's permissions
|
|
would mostly be a NOP
|
|
interpret: clean up deduplicating allocation functions
The "align" and "kind" arguments would be largely ignored in the "dedup" case, so let's move that to entirely separate function.
Let's also remove support for old-style miri_resolve_frame while we are at it. The docs have already said for a while that this must be set to 1.
|
|
|
|
|
|
|
|
|
|
Miri subtree update
r? `@ghost`
|
|
A bunch of cleanups
These are all extracted from a branch I have to get rid of driver queries. Most of the commits are not directly necessary for this, but were found in the process of implementing the removal of driver queries.
Previous PR: https://github.com/rust-lang/rust/pull/132410
|
|
|
|
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #130209 (Stabilize `std::io::ErrorKind::CrossesDevices`)
- #130254 (Stabilize `std::io::ErrorKind::QuotaExceeded`)
- #132187 (Add Extend impls for tuples of arity 1 through 12)
- #133875 (handle `--json-output` properly)
- #133934 (Do not implement unsafe auto traits for types with unsafe fields)
- #133954 (Hide errors whose suggestions would contain error constants or types)
- #133960 (rustdoc: remove eq for clean::Attributes)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
|
|
|