Commit graph

314 commits

Author SHA1 Message Date
Ralf Jung
2b50cd1877 rename rustc_allocator_nounwind to rustc_nounwind 2022-10-11 22:47:31 +02:00
Matthias Krüger
cadb37a8c7
Rollup merge of #101727 - est31:stabilize_map_first_last, r=m-ou-se
Stabilize map_first_last

Stabilizes the following functions:

```Rust
impl<T> BTreeSet<T> {
    pub fn first(&self) -> Option<&T> where T: Ord;
    pub fn last(&self) -> Option<&T> where T: Ord;
    pub fn pop_first(&mut self) -> Option<T> where T: Ord;
    pub fn pop_last(&mut self) -> Option<T> where T: Ord;
}

impl<K, V> BTreeMap<K, V> {
    pub fn first_key_value(&self) -> Option<(&K, &V)> where K: Ord;
    pub fn last_key_value(&self) -> Option<(&K, &V)> where K: Ord;
    pub fn first_entry(&mut self) -> Option<OccupiedEntry<'_, K, V>> where K: Ord;
    pub fn last_entry(&mut self) -> Option<OccupiedEntry<'_, K, V>> where K: Ord;
    pub fn pop_first(&mut self) -> Option<(K, V)> where K: Ord;
    pub fn pop_last(&mut self) -> Option<(K, V)> where K: Ord;
}
```

Closes #62924

~~Blocked on the [FCP](https://github.com/rust-lang/rust/issues/62924#issuecomment-1179489929) finishing.~~ Edit: It finished!
2022-10-11 18:59:46 +02:00
bors
81f3919303 Auto merge of #102850 - JohnTitor:rollup-lze1w03, r=JohnTitor
Rollup of 8 pull requests

Successful merges:

 - #101118 (fs::get_mode enable getting the data via fcntl/F_GETFL on major BSD)
 - #102072 (Add `ptr::Alignment` type)
 - #102799 (rustdoc: remove hover gap in file picker)
 - #102820 (Show let-else suggestion on stable.)
 - #102829 (rename `ImplItemKind::TyAlias` to `ImplItemKind::Type`)
 - #102831 (Don't use unnormalized type in `Ty::fn_sig` call in rustdoc `clean_middle_ty`)
 - #102834 (Remove unnecessary `lift`/`lift_to_tcx` calls from rustdoc)
 - #102838 (remove cfg(bootstrap) from Miri)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-10-09 18:15:26 +00:00
Yuki Okushi
f59e8afb66
Rollup merge of #102838 - RalfJung:miri-bootstrap, r=oli-obk
remove cfg(bootstrap) from Miri

Looks like this was forgotten in the bootstrap bump.

r? `@oli-obk`
2022-10-10 00:09:43 +09:00
bors
1b225414f3 Auto merge of #93668 - SUPERCILEX:path_alloc, r=joshtriplett
Reduce CString allocations in std as much as possible

Currently, every operation involving paths in `fs` allocates memory to hold the path before sending it through the syscall. This PR instead uses a stack allocation (chosen size is somewhat arbitrary) when the path is short before falling back to heap allocations for long paths.

Benchmarks show that the stack allocation is ~2x faster for short paths:

```
test sys::unix::fd::tests::bench_heap_path_alloc                  ... bench:          34 ns/iter (+/- 2)
test sys::unix::fd::tests::bench_stack_path_alloc                 ... bench:          15 ns/iter (+/- 1)
```

For long paths, I couldn't find any measurable difference.

---

I'd be surprised if I was the first to think of this, so I didn't fully flush out the PR. If this change is desirable, I'll make use of `run_with_cstr` across all platforms in every fs method (currently just unix open for testing). I also added an `impl From<FromBytesWithNulError>` which is presumably a no-no (or at least needs to be done in another PR).

---

Also see https://github.com/nix-rust/nix/pull/1655 with a bunch of discussion where I'm doing something similar.
2022-10-09 15:07:10 +00:00
Ralf Jung
d47d390703 remove cfg(bootstrap) from Miri 2022-10-09 12:16:02 +02:00
bors
8796e7a9cf Auto merge of #102315 - RalfJung:assert_unsafe_precondition, r=thomcc
add a few more assert_unsafe_precondition

Add debug-assertion checking for `ptr.read()`, `ptr.write(_)`, and `unreachable_unchecked.`

This is quite useful for [cargo-careful](https://github.com/RalfJung/cargo-careful).
2022-10-08 17:59:45 +00:00
Ralf Jung
fd59d44f58 make const_err a hard error 2022-10-07 18:08:49 +02:00
Ralf Jung
d71a85135b fix Miri 2022-10-07 14:57:41 +02:00
bors
27579a214d Auto merge of #102573 - RalfJung:mirisync, r=oli-obk
Miri sync

This is a Miri sync created with my experimental fork of josh. We should probably not merge this yet, but we can use this to check if the sync looks the way it should.

r? `@oli-obk`
2022-10-06 00:00:29 +00:00
bors
6f2b52ff10 Auto merge of #2566 - saethlin:gc-cleanup, r=oli-obk
Expand VisitMachineValues to cover more pointers in the interpreter

Follow-on to https://github.com/rust-lang/miri/pull/2559

This is making me want to write a proc macro 🤔

r? `@RalfJung`
2022-10-04 14:17:17 +00:00
Ralf Jung
e212af2f65 re-architect the tag visitor traits 2022-10-04 15:49:39 +02:00
Ben Kimock
841d1b24ed Finish TimeoutCallback 2022-10-04 15:32:10 +02:00
Ben Kimock
1c6a6244c1 Please help, where is this lifetime bound coming from 2022-10-04 15:32:10 +02:00
Ben Kimock
a8f8106cec Use static dispatch in the visitor 2022-10-04 15:32:10 +02:00
Ben Kimock
61e71cebd3 Use VisitProvenance to factor allocation visiting better 2022-10-04 15:32:10 +02:00
Ben Kimock
a7153b5505 A bit of cleanup 2022-10-04 15:32:10 +02:00
Ben Kimock
25e8f8eddf Expand VisitMachineValues to cover more pointers in the interpreter 2022-10-04 15:32:10 +02:00
Ralf Jung
d1676b5727 more details on stacked borrows tracking 2022-10-04 14:55:29 +02:00
Alex Saveau
86974b83af
Reduce CString allocations in std as much as possible
Signed-off-by: Alex Saveau <saveau.alexandre@gmail.com>
2022-10-03 11:13:17 -07:00
Ralf Jung
5ed9f5f1a2 bump rustc_tools_util 2022-10-02 15:05:54 +02:00
Ralf Jung
4738296b25 use rustc_tools_util instead of vergen 2022-10-02 15:05:54 +02:00
Ralf Jung
848de11c45 relax vergen dependency 2022-10-02 15:05:54 +02:00
Ralf Jung
49532bf1f5 GHA seems to have strange booleans 2022-10-02 15:05:51 +02:00
Ralf Jung
ca9eed3db8 bump rustc-build-sysroot 2022-10-02 15:03:47 +02:00
Ralf Jung
28725d44a6 no need to make cargo-miri build quiet; cargo only prints to stderr anyway 2022-10-02 15:03:47 +02:00
Ralf Jung
c542fa4ed8 cargo update 2022-10-02 15:03:47 +02:00
Ralf Jung
6c77735fce Auto merge of #2564 - RalfJung:no-more-xargo, r=oli-obk 2022-10-02 15:03:34 +02:00
Cameron Steffen
4f12de0660 Change feature name to is_some_and 2022-10-01 11:45:52 -05:00
Cameron Steffen
2f83134e37 Change is_some_and to take by value 2022-10-01 11:45:52 -05:00
Maybe Waffle
afa886e7d4 bless a miri test 2022-10-01 10:03:06 +00:00
est31
2c72ea7748 Stabilize map_first_last 2022-09-30 17:00:07 +02:00
Urgau
9ad2f00f6a Stabilize bench_black_box 2022-09-27 17:38:51 +02:00
bors
20adc75304 Auto merge of #2562 - pvdrz:miri-num-cpus, r=RalfJung
Add flag to specify the number of cpus

Apparently you can't rename a branch from github's website without it closing all your PRs with that branch. So this is  just #2545
2022-09-27 01:13:09 +00:00
Christian Poveda
9ce9dae57f
update readme 2022-09-26 15:46:09 -05:00
Christian Poveda
c983ced79c
/// FIXME: docs 2022-09-26 11:40:23 -05:00
Ralf Jung
5f18674c31 use rustc-build-sysroot instead of xargo 2022-09-25 11:52:31 +02:00
Ralf Jung
7e97f85fb7 force-install tools on stale cache, to make sure we get the latest of all dependencies 2022-09-25 09:47:20 +02:00
Ralf Jung
1f53be15e1 clarify a comment 2022-09-25 09:47:20 +02:00
Ralf Jung
75bbe38e53 CI: use cargo sparse registry 2022-09-25 09:41:44 +02:00
Ralf Jung
6f6a2dfb92 remove macOS work-around that is no longer needed 2022-09-24 20:03:34 +02:00
bors
c217e07ea8 Auto merge of #2537 - saethlin:dont-back-up-too-far, r=RalfJung
Don't back up past the caller when looking for an FnEntry span

Fixes https://github.com/rust-lang/miri/issues/2536

This adds a fix for the logic as well as a regression test. In the new test `tests/fail/stacked_borrows/fnentry_invalidation2.rs`, before this PR, we display this diagnostic:
```
help: <3278> was later invalidated at offsets [0x0..0xc] by a Unique FnEntry retag
  --> tests/fail/stacked_borrows/fnentry_invalidation2.rs:13:5
   |
13 |     inner(&mut t);
   |     ^^^^^^^^^^^^^
```
Which is very misleading. It is not this call itself, but what happens within the call that invalidates the tag we want. With this PR, we get:
```
help: <2798> was later invalidated at offsets [0x0..0xc] by a Unique FnEntry retag inside this call
  --> tests/fail/stacked_borrows/fnentry_invalidation2.rs:20:13
   |
20 |     let _ = t.sli.as_mut_ptr();
   |             ^^^^^^^^^^^^^^^^^^
```
Which is much better.
2022-09-24 14:06:10 +00:00
bors
6872a70343 Auto merge of #2563 - RalfJung:nodep, r=RalfJung
run all extern-so tests consistently without dependencies
2022-09-24 06:47:21 +00:00
Ralf Jung
2b3d760db8 run all extern-so tests consistently without dependencies 2022-09-24 08:46:34 +02:00
bors
e1c28e0c85 Auto merge of #102068 - cjgillot:erased-lifetime-print, r=eholk
Always print '_, even for erased lifetimes.

Explicit lifetime arguments are now the recommended syntax in rust 2018 and rust 2021.  This PR applies this discipline to rustc itself.
2022-09-24 01:23:17 +00:00
Camille GILLOT
eb1ddd2573 Bless miri. 2022-09-24 00:10:28 +02:00
Christian Poveda
14fc9b29a3
add flag to specify the number of cpus 2022-09-23 16:28:59 -05:00
Ralf Jung
38f4338826 GC: factor out visiting all machine values 2022-09-23 09:18:26 +02:00
Ralf Jung
a7cdfafafb make Miri build in stage 0 2022-09-22 21:01:23 +02:00
Ralf Jung
7927f0919f add regression test for miri issue 2433 2022-09-22 21:01:13 +02:00