-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Store a new Region value every time we create a new region variable #44878
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @pnkfelix (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
src/librustc_mir/transform/nll.rs
Outdated
} | ||
|
||
#[derive(Clone, Debug, Default, PartialEq, Eq)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We couldn't keep the derive for Hash
because of FxHashSet
. It errors out saying that HashSet
itself doesn't implement Hash
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hopefully this will not have to be Hash
.
src/librustc_mir/transform/nll.rs
Outdated
@@ -29,15 +31,17 @@ impl<'a, 'gcx, 'tcx> NLLVisitor<'a, 'gcx, 'tcx> { | |||
NLLVisitor { | |||
infcx, | |||
lookup_map: HashMap::new(), | |||
regions: vec![], | |||
} | |||
} | |||
|
|||
pub fn into_results(self) -> HashMap<RegionVid, Lookup> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we output this as a tuple, i.e. (HashMap<RegionVid, Lookup>, Vec<Region>)
? Or do we only worry about that when we need to start using the output?
Should we actually fork off of #44845 or will it be possible to merge this in without trouble? |
src/librustc_mir/transform/nll.rs
Outdated
use syntax_pos::DUMMY_SP; | ||
use std::collections::HashMap; | ||
|
||
#[allow(dead_code)] | ||
struct NLLVisitor<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> { | ||
lookup_map: HashMap<RegionVid, Lookup>, | ||
regions: Vec<Region>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you use a rustc_data_structures::indexed_vec::IndexVec
here? usize indexes suck.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed to IndexVec
in a6c107c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! One further suggestion.
src/librustc_mir/transform/nll.rs
Outdated
|
||
#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd, Debug)] | ||
pub struct RegionIndex(pub u32); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, it'd be nice if we could use the newtype_idx!
macro for this. How about moving that macro into librustc_data_structures
, so that everybody can use it?
To do that, you would move it into the indexed_vec
module and put a #[macro_export]
annotation on it, so that it gets exported across crates (I think that's the right annotation, anyway). Then we have to tag extern crate rustc_data_structures
in src/librustc_mir/lib.rs
with #[macro_use]
also (and maybe in src/librustc/lib.rs
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nikomatsakis perfect, yeah I was already doing that as a suggestion of @arielb1. There are also a lot of Idx types that implement new and index methods twice, so I was removing copies of that.
Anyway thanks for the instructions here, it will probably help me a lot :).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW: what do we do with RustcEncodable
and RustcDecodable
do we need to derive that?. If we really need I'd need to add an extern crate
entry on the top level lib.rs because it's not included.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can derive them -- you may need to add extern crate serialize as rustc_serialize;
into the lib.rs
if it's not already there
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BUT ... there are some things still pending and I have some questions:
- I don't like that we need to add a lot of
use
clauses like in e266c0f#diff-5d719cdea9e30d4d425f7b673017e897R22 Not sure what's the common practice in Rust, but wouldn't be better if we use the full path to lookup names inside the macro so we can avoiduse
outside? - I was starting to make all the code use the macro but in cases like https://github.com/rust-lang/rust/blob/master/src/librustc/dep_graph/graph.rs#L583 we need index to be public and I can't use ::new because it's a constant. Unsure what would be better to do there.
- Not sure what to use as
debug_name
in cases like e266c0f#diff-5d719cdea9e30d4d425f7b673017e897R160 and if I continue to migrate the rest of the code a lot of cases like that will shop up. I can just propose something and we can review later I guess.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK so:
-
With respect to this gist, I don't quite understand why that gist makes the macro take a configurable max. That said, I also don't know why it's causing an ICE. =) Would take some investigation.
-
For this gist, what errors do you get? And what exactly did yo make
pub
? -
Can you summarize the differences between those three gists?
-
I think we want the "short form"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Because this case https://gist.github.com/anonymous/341c6951962f1ca62da32fb4c99d51c3#file-first_statement-patch-L95 needs a different max. The correct macro should take an optional u32, if provided use that if not use u32::MAX.
- I'm getting ...
error[E0449]: unnecessary visibility qualifier
--> src/librustc/mir/mod.rs:1512:1
|
1512 | newtype_index!(Promoted, "promoted");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `pub` not needed here
Because I'm making pub
this https://gist.github.com/anonymous/369cc785baa07a54ca69e67b236878b2#file-crate_num-patch-L66 and https://gist.github.com/anonymous/369cc785baa07a54ca69e67b236878b2#file-crate_num-patch-L71
And if you don't make that pub
you end getting a bunch of ...
error[E0599]: no function or associated item named `new` found for type `hir::def_id::CrateNum` in the current scope
--> src/librustc/middle/dependency_format.rs:404:24
|
404 | let cnum = CrateNum::new(i + 1);
| ^^^^^^^^^^^^^
|
- is what we talked yesterday, we went with
assert!(idx < ::std::u32::MAX as usize);
.
Now that I force pushed links does not make sense anymore - Yep, we ended discussing yesterday in gitter. I pushed code with the short version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, some further thoughts:
- Ok. I have no problem with a configurable max, just wanted to understand. I think perhaps we should also make the macro more descriptive, but that's a separate thing. e.g something like:
newtype_index!(TypeName, {
max: MAXIMUM, // <-- these lines are optional
description: "TypeName",
})
It'll take some macro fun to make it work =) but it'd be much prettier.
- Regarding the
pub
qualifier: indeed you cannot declare things to be public in trait impls. Those errors you are getting are likely because theIdx
trait is not imported into scope at the points where you are writingCrateNum::new
. This is an ergonomic annoyance of using the trait methodnew
instead of the older approach based on inherent methods. One way to do both would be to have the macro generate an inherent method as well. So something like:
impl $name { // <-- NB: NOT `impl Idx for $name`
pub fn new(value: usize) -> Self {
assert!(value < (::std::u32::MAX) as usize);
$name(value as u32)
}
pub fn index(self) -> usize {
self.0 as usize
}
}
impl Idx for $name {
fn new(value: usize) -> Self { Self::new(value) }
fn index(self) -> usize { self.index() }
}
The code at the very end might look surprising: what's happening there is that we are invoking the inherent methods from the trait methods. Though both have the same name, they are distinct to the compiler, and inherent methods get precedence.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- sounds good. We would just need to figure out the ICE.
- yep, I saw that this is the issue. Will check this and your suggestion is maybe better :).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
New patch https://gist.github.com/spastorino/4c9c55df5f28293bc131b9bfb576c41e that gives another ICE ...
~/src/personal/rust git:(nashenas88) ✗ ./x.py build --stage 1 src/libstd
Updating submodules
extracting /Users/santiago/src/personal/rust/build/cache/2017-08-29/rust-std-beta-x86_64-apple-darwin.tar.gz
extracting /Users/santiago/src/personal/rust/build/cache/2017-08-29/rustc-beta-x86_64-apple-darwin.tar.gz
extracting /Users/santiago/src/personal/rust/build/cache/2017-08-29/cargo-beta-x86_64-apple-darwin.tar.gz
Finished dev [unoptimized] target(s) in 0.0 secs
Building stage0 std artifacts (x86_64-apple-darwin -> x86_64-apple-darwin)
Compiling core v0.0.0 (file:///Users/santiago/src/personal/rust/src/libcore)
Compiling unwind v0.0.0 (file:///Users/santiago/src/personal/rust/src/libunwind)
Compiling cc v1.0.0
Compiling libc v0.2.31
Compiling filetime v0.1.12
Compiling build_helper v0.1.0 (file:///Users/santiago/src/personal/rust/src/build_helper)
Compiling alloc_jemalloc v0.0.0 (file:///Users/santiago/src/personal/rust/src/liballoc_jemalloc)
Compiling std v0.0.0 (file:///Users/santiago/src/personal/rust/src/libstd)
Compiling compiler_builtins v0.0.0 (file:///Users/santiago/src/personal/rust/src/rustc/compiler_builtins_shim)
Compiling cmake v0.1.26
Compiling rustc_asan v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_asan)
Compiling rustc_tsan v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_tsan)
Compiling libc v0.0.0 (file:///Users/santiago/src/personal/rust/src/rustc/libc_shim)
Compiling rand v0.0.0 (file:///Users/santiago/src/personal/rust/src/librand)
Compiling std_unicode v0.0.0 (file:///Users/santiago/src/personal/rust/src/libstd_unicode)
Compiling panic_abort v0.0.0 (file:///Users/santiago/src/personal/rust/src/libpanic_abort)
Compiling alloc v0.0.0 (file:///Users/santiago/src/personal/rust/src/liballoc)
Compiling collections v0.0.0 (file:///Users/santiago/src/personal/rust/src/libcollections)
Compiling alloc_system v0.0.0 (file:///Users/santiago/src/personal/rust/src/liballoc_system)
Compiling panic_unwind v0.0.0 (file:///Users/santiago/src/personal/rust/src/libpanic_unwind)
Finished release [optimized] target(s) in 60.49 secs
Copying stage0 std from stage0 (x86_64-apple-darwin -> x86_64-apple-darwin / x86_64-apple-darwin)
Building stage0 test artifacts (x86_64-apple-darwin -> x86_64-apple-darwin)
Compiling getopts v0.2.15
Compiling term v0.0.0 (file:///Users/santiago/src/personal/rust/src/libterm)
Compiling test v0.0.0 (file:///Users/santiago/src/personal/rust/src/libtest)
Finished release [optimized] target(s) in 12.53 secs
Copying stage0 test from stage0 (x86_64-apple-darwin -> x86_64-apple-darwin / x86_64-apple-darwin)
Building stage0 compiler artifacts (x86_64-apple-darwin -> x86_64-apple-darwin)
Compiling rustc_platform_intrinsics v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_platform_intrinsics)
Compiling rustc-demangle v0.1.5
Compiling cc v1.0.0
Compiling graphviz v0.0.0 (file:///Users/santiago/src/personal/rust/src/libgraphviz)
Compiling syntax v0.0.0 (file:///Users/santiago/src/personal/rust/src/libsyntax)
Compiling rustc_back v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_back)
Compiling rustc-serialize v0.3.24
Compiling rustc_metadata v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_metadata)
Compiling rustc_trans v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_trans)
Compiling fmt_macros v0.0.0 (file:///Users/santiago/src/personal/rust/src/libfmt_macros)
Compiling libc v0.2.31
Compiling rustc_driver v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_driver)
Compiling serialize v0.0.0 (file:///Users/santiago/src/personal/rust/src/libserialize)
Compiling stable_deref_trait v1.0.0
Compiling rustc_incremental v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_incremental)
Compiling ar v0.3.0
Compiling log v0.3.8
Compiling rustc v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc)
Compiling bitflags v1.0.0
Compiling arena v0.0.0 (file:///Users/santiago/src/personal/rust/src/libarena)
Compiling filetime v0.1.12
Compiling miniz-sys v0.1.10
Compiling owning_ref v0.3.3
Compiling num_cpus v1.6.2
Compiling jobserver v0.1.6
Compiling env_logger v0.4.3
Compiling rustc_cratesio_shim v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_cratesio_shim)
Compiling build_helper v0.1.0 (file:///Users/santiago/src/personal/rust/src/build_helper)
Compiling rls-span v0.4.0
Compiling rustc_data_structures v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_data_structures)
Compiling rustc_apfloat v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_apfloat)
Compiling rls-data v0.10.0
Compiling rustc_llvm v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_llvm)
Compiling syntax_pos v0.0.0 (file:///Users/santiago/src/personal/rust/src/libsyntax_pos)
Compiling flate2 v0.2.20
Compiling rustc_errors v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_errors)
Compiling rustc_const_math v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_const_math)
Compiling proc_macro v0.0.0 (file:///Users/santiago/src/personal/rust/src/libproc_macro)
Compiling syntax_ext v0.0.0 (file:///Users/santiago/src/personal/rust/src/libsyntax_ext)
Compiling rustc_resolve v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_resolve)
Compiling rustc_allocator v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_allocator)
Compiling rustc_trans_utils v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_trans_utils)
Compiling rustc_const_eval v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_const_eval)
Compiling rustc_typeck v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_typeck)
Compiling rustc_lint v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_lint)
Compiling rustc_mir v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_mir)
Compiling rustc_passes v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_passes)
Compiling rustc_save_analysis v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_save_analysis)
Compiling rustc_privacy v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_privacy)
Compiling rustc_borrowck v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_borrowck)
Compiling rustc_plugin v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_plugin)
Compiling rustc-main v0.0.0 (file:///Users/santiago/src/personal/rust/src/rustc)
Finished release [optimized] target(s) in 931.86 secs
Copying stage0 rustc from stage0 (x86_64-apple-darwin -> x86_64-apple-darwin / x86_64-apple-darwin)
Assembling stage1 compiler (x86_64-apple-darwin)
Building stage1 std artifacts (x86_64-apple-darwin -> x86_64-apple-darwin)
Compiling libc v0.2.31
Compiling core v0.0.0 (file:///Users/santiago/src/personal/rust/src/libcore)
Compiling cc v1.0.0
Compiling unwind v0.0.0 (file:///Users/santiago/src/personal/rust/src/libunwind)
Compiling filetime v0.1.12
Compiling build_helper v0.1.0 (file:///Users/santiago/src/personal/rust/src/build_helper)
Compiling std v0.0.0 (file:///Users/santiago/src/personal/rust/src/libstd)
Compiling cmake v0.1.26
Compiling compiler_builtins v0.0.0 (file:///Users/santiago/src/personal/rust/src/rustc/compiler_builtins_shim)
Compiling alloc_jemalloc v0.0.0 (file:///Users/santiago/src/personal/rust/src/liballoc_jemalloc)
Compiling rustc_tsan v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_tsan)
Compiling rustc_asan v0.0.0 (file:///Users/santiago/src/personal/rust/src/librustc_asan)
Compiling std_unicode v0.0.0 (file:///Users/santiago/src/personal/rust/src/libstd_unicode)
Compiling libc v0.0.0 (file:///Users/santiago/src/personal/rust/src/rustc/libc_shim)
Compiling rand v0.0.0 (file:///Users/santiago/src/personal/rust/src/librand)
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.22.0-dev running on x86_64-apple-darwin
thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:335:20
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Could not compile `rand`.
Caused by:
process didn't exit successfully: `/Users/santiago/src/personal/rust/build/bootstrap/debug/rustc --crate-name rand src/librand/lib.rs --error-format json --crate-type lib --emit=dep-info,link -C opt-level=2 -C metadata=81b41dd92bfaa446 -C extra-filename=-81b41dd92bfaa446 --out-dir /Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps --target x86_64-apple-darwin -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/release/deps --extern core=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps/libcore-8564d565e8172c07.rlib` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.22.0-dev running on x86_64-apple-darwin
thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:335:20
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Could not compile `compiler_builtins`.
Caused by:
process didn't exit successfully: `/Users/santiago/src/personal/rust/build/bootstrap/debug/rustc --crate-name compiler_builtins src/rustc/compiler_builtins_shim/../../libcompiler_builtins/src/lib.rs --error-format json --crate-type lib --emit=dep-info,link -C opt-level=2 --cfg feature="c" --cfg feature="compiler-builtins" --cfg feature="default" --cfg feature="rustbuild" -C metadata=abe9981e0d697dbc -C extra-filename=-abe9981e0d697dbc --out-dir /Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps --target x86_64-apple-darwin -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/release/deps --extern core=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps/libcore-8564d565e8172c07.rlib -L native=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/build/compiler_builtins-0375618ff04bf6f3/out -l static=compiler-rt` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.22.0-dev running on x86_64-apple-darwin
thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:335:20
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.22.0-dev running on x86_64-apple-darwin
thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:335:20
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: Could not compile `std_unicode`.
Caused by:
process didn't exit successfully: `/Users/santiago/src/personal/rust/build/bootstrap/debug/rustc --crate-name std_unicode src/libstd_unicode/lib.rs --error-format json --crate-type lib --emit=dep-info,link -C opt-level=2 -C metadata=07935fec0d990c43 -C extra-filename=-07935fec0d990c43 --out-dir /Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps --target x86_64-apple-darwin -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/release/deps --extern core=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps/libcore-8564d565e8172c07.rlib` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error: Could not compile `libc`.
Caused by:
process didn't exit successfully: `/Users/santiago/src/personal/rust/build/bootstrap/debug/rustc --crate-name libc src/rustc/libc_shim/../../liblibc/src/lib.rs --error-format json --crate-type lib --emit=dep-info,link -C opt-level=2 --cfg feature="default" --cfg feature="stdbuild" -C metadata=193d229c9d522195 -C extra-filename=-193d229c9d522195 --out-dir /Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps --target x86_64-apple-darwin -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps -L dependency=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/release/deps --extern core=/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage1-std/x86_64-apple-darwin/release/deps/libcore-8564d565e8172c07.rlib` (exit code: 101)
thread 'main' panicked at 'command did not execute successfully: "/Users/santiago/src/personal/rust/build/x86_64-apple-darwin/stage0/bin/cargo" "build" "--target" "x86_64-apple-darwin" "-j" "4" "--release" "--features" "panic-unwind jemalloc backtrace" "--manifest-path" "/Users/santiago/src/personal/rust/src/libstd/Cargo.toml" "--message-format" "json"
expected success, got: exit code: 101', src/bootstrap/compile.rs:883:8
note: Run with `RUST_BACKTRACE=1` for a backtrace.
failed to run: /Users/santiago/src/personal/rust/build/bootstrap/debug/bootstrap build --stage 1 src/libstd
Build completed unsuccessfully in 0:17:31
@bors r+ |
📌 Commit e266c0f has been approved by |
@bors r- -- I missed @spastorino's comment here |
☔ The latest upstream changes (presumably #44893) made this pull request unmergeable. Please resolve the merge conflicts. |
@spastorino @Nashenas88 needs rebase :( |
@bors r+ |
📌 Commit 024f13b has been approved by |
@bors r- -- err, I'm still not sure if we've resolved @spastorino's concerns. It seems to me that likely we can do that remaining work in a follow-up PR, though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewing this, I think it's good enough to land.
@bors r+ |
📌 Commit 024f13b has been approved by |
⌛ Testing commit 024f13b68f3782f26ae9f0e23dc1cc994e5af2d9 with merge 0a288f5a0f09bf7748edfcd68e1962788d8a7435... |
💔 Test failed - status-travis |
☔ The latest upstream changes (presumably #44901) made this pull request unmergeable. Please resolve the merge conflicts. |
@bors r+ |
📌 Commit 271a492 has been approved by |
Store a new Region value every time we create a new region variable Paired with @spastorino to walk through this and implement #44870.
☀️ Test successful - status-appveyor, status-travis |
…akis Extend mir dump to dump each region Building on #44878, implement the feature discussed in #44872. Through discussions on the WG-nll-gitter, @nikomatsakis and I decided to implement this by extending `dump_mir` and all functions that it calls to take a callback of signature `FnMut(PassWhere, &mut Write) -> io::Result<()>` where `PassWhere` is an enum that represents possible locations that we may want to print out extra data in the process of dumping the MIR. I'm not particularly wedded to the name `PassWhere`, but I felt that simply calling the enum `Where` wasn't the right thing to name it. This work depends strongly on #44878, and should be rebased on the final version of that tree, whatever that may be.
Paired with @spastorino to walk through this and implement #44870.