Skip to content
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

Store a new Region value every time we create a new region variable #44878

Merged
merged 9 commits into from Oct 5, 2017

Conversation

Nashenas88
Copy link
Contributor

Paired with @spastorino to walk through this and implement #44870.

@rust-highfive
Copy link
Collaborator

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.

}

#[derive(Clone, Debug, Default, PartialEq, Eq)]
Copy link
Contributor Author

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.

Copy link
Contributor

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.

@@ -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> {
Copy link
Contributor Author

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?

@Nashenas88
Copy link
Contributor Author

r? @nikomatsakis

@Nashenas88
Copy link
Contributor Author

Should we actually fork off of #44845 or will it be possible to merge this in without trouble?

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>,
Copy link
Contributor

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.

Copy link
Member

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

Copy link
Contributor

@nikomatsakis nikomatsakis left a 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.


#[derive(Copy, Clone, Hash, Eq, PartialEq, Ord, PartialOrd, Debug)]
pub struct RegionIndex(pub u32);
Copy link
Contributor

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).

Copy link
Member

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 :).

Copy link
Member

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.

Copy link
Contributor

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in bea4966 and e266c0f

BUT ... there are some things still pending and I have some questions:

  1. 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 avoid use outside?
  2. 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.
  3. 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.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK so:

  1. 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.

  2. For this gist, what errors do you get? And what exactly did yo make pub?

  3. Can you summarize the differences between those three gists?

  4. I think we want the "short form"

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. 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.
  2. 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);
    |                        ^^^^^^^^^^^^^
    |
  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
  2. Yep, we ended discussing yesterday in gitter. I pushed code with the short version.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, some further thoughts:

  1. 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.

  1. Regarding the pub qualifier: indeed you cannot declare things to be public in trait impls. Those errors you are getting are likely because the Idx trait is not imported into scope at the points where you are writing CrateNum::new. This is an ergonomic annoyance of using the trait method new 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.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. sounds good. We would just need to figure out the ICE.
  2. yep, I saw that this is the issue. Will check this and your suggestion is maybe better :).

Copy link
Member

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

@aidanhs aidanhs added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 28, 2017
@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Sep 28, 2017

📌 Commit e266c0f has been approved by nikomatsakis

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Sep 28, 2017

@bors r- -- I missed @spastorino's comment here

@bors
Copy link
Contributor

bors commented Sep 30, 2017

☔ The latest upstream changes (presumably #44893) made this pull request unmergeable. Please resolve the merge conflicts.

@nikomatsakis
Copy link
Contributor

@spastorino @Nashenas88 needs rebase :(

@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Oct 3, 2017

📌 Commit 024f13b has been approved by nikomatsakis

@nikomatsakis
Copy link
Contributor

@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.

Copy link
Contributor

@nikomatsakis nikomatsakis left a 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.

@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Oct 4, 2017

📌 Commit 024f13b has been approved by nikomatsakis

@bors
Copy link
Contributor

bors commented Oct 4, 2017

⌛ Testing commit 024f13b68f3782f26ae9f0e23dc1cc994e5af2d9 with merge 0a288f5a0f09bf7748edfcd68e1962788d8a7435...

@bors
Copy link
Contributor

bors commented Oct 4, 2017

💔 Test failed - status-travis

@bors
Copy link
Contributor

bors commented Oct 4, 2017

☔ The latest upstream changes (presumably #44901) made this pull request unmergeable. Please resolve the merge conflicts.

@nikomatsakis
Copy link
Contributor

@bors r+

@bors
Copy link
Contributor

bors commented Oct 5, 2017

📌 Commit 271a492 has been approved by nikomatsakis

@bors
Copy link
Contributor

bors commented Oct 5, 2017

⌛ Testing commit 271a492 with merge 4531131...

bors added a commit that referenced this pull request Oct 5, 2017
Store a new Region value every time we create a new region variable

Paired with @spastorino to walk through this and implement #44870.
@bors
Copy link
Contributor

bors commented Oct 5, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: nikomatsakis
Pushing 4531131 to master...

@bors bors merged commit 271a492 into rust-lang:master Oct 5, 2017
bors added a commit that referenced this pull request Oct 13, 2017
…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants