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

WIP: Allocator- and fallibility-polymorphic collections #60703

Open
wants to merge 9 commits into
base: master
from

Conversation

@Ericson2314
Copy link
Contributor

commented May 10, 2019

Reopened #52420

This picks up where #58457 will leave off, adding allocator parameters to the other collections. It also adds and associated error type for allocation, so as to enable fallibility-polymorphic code and support the few impls and other functions which require "infallible" allocation.

When done, should convert all the collections for #42774

Unfortunately, as documented in #52396, I had to make an AllocHelper trait in order to get my default impl to work.

Like #58457 which this continues, this blocked on some decision about stability and the new type parameters. See #60703 (comment) for details.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented May 10, 2019

r? @cramertj

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented May 10, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:17a8bd44:start=1557503377594146373,finish=1557503519271010477,duration=141676864104
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---

[00:03:47] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:03:48] tidy error: /checkout/src/liballoc/collections/linked_list.rs:1350: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/collections/vec_deque.rs:597: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/vec.rs:559: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/raw_vec.rs:386: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/raw_vec.rs:397: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/raw_vec.rs:621: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/raw_vec.rs:624: line longer than 100 chars
[00:03:48] tidy error: /checkout/src/liballoc/string.rs:995: line longer than 100 chars
[00:03:52] some tidy checks failed
[00:03:52] 
[00:03:52] 
[00:03:52] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:03:52] 
[00:03:52] 
[00:03:52] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:03:52] Build completed unsuccessfully in 0:01:07
[00:03:52] Build completed unsuccessfully in 0:01:07
[00:03:52] Makefile:67: recipe for target 'tidy' failed
[00:03:52] make: *** [tidy] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:078cd32d
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri May 10 15:56:00 UTC 2019
---
travis_time:end:06975eb6:start=1557503761483950234,finish=1557503761488138239,duration=4188005
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:2fe89a44
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:27661260
travis_time:start:27661260
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:01b2e9aa
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@cramertj

This comment has been minimized.

Copy link
Member

commented May 10, 2019

@rust-highfive rust-highfive assigned sfackler and unassigned cramertj May 10, 2019

@lachlansneff

This comment has been minimized.

Copy link

commented May 10, 2019

Iterator is an example of a trait with default methods that return an associated type. Why does Alloc need a helper trait?

/// A hack so the default impl can condition on the associated type. This `Err`
/// type ought to just live in the `Alloc` trait.
#[unstable(feature = "allocator_api", issue = "32838")]
pub trait AllocHelper {

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

I'm fairly certain this trait needn't exist. Since Alloc is still experimental, we can make breaking changes.

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

See #52396 this was the only way to make it type check without removing the default methods. Happy to get rid of it once bug is fixed.

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

Doesn't matter if it's a breaking change though.

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

I think we need to have some default methods; not having that constrains the design a lot. It should be a simple bug to fix; this isn't the spooky specialization-breaking part of specialization.

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

Maybe I'm misunderstanding the issue. There are plenty of traits with associated types and default methods in the standard library. Iterator is an example. Don't use specialization, and it should be fine.

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

The issue is when the default method is only valid for certain associated types. You can't write that constraint today in a way that works.

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

If we remove the {alloc|dealloc}_array and {alloc|dealloc}_one from the Alloc trait like this issue suggests, we don't need any fancy specialization or the helper trait.

https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=749a844f3b19c589228ba9ef4286b233

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

That's true. I still want that bug fixed though! :D That fact that one can write Alloc<Err = !> means that AllocHelper should't need to be referenced (almost?) anywhere. We have a little runway because we need a compiler change for unstable type parameters anyway.

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

It's still inelegant to have the helper trait, so I'd like to avoid it if possible.

@@ -659,7 +670,7 @@ pub unsafe trait GlobalAlloc {
/// Note that this list may get tweaked over time as clarifications are made in
/// the future.
#[unstable(feature = "allocator_api", issue = "32838")]
pub unsafe trait Alloc {
pub unsafe trait Alloc: AllocHelper {

This comment has been minimized.

Copy link
@lachlansneff
@@ -578,6 +579,6 @@ impl str {
/// ```
#[stable(feature = "str_box_extras", since = "1.20.0")]
#[inline]
pub unsafe fn from_boxed_utf8_unchecked(v: Box<[u8]>) -> Box<str> {
Box::from_raw(Box::into_raw(v) as *mut str)
pub unsafe fn from_boxed_utf8_unchecked<A: Alloc + AllocHelper>(v: Box<[u8], A>) -> Box<str, A> {

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

This is a breaking change, I'm pretty sure.

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

How come?

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

Actually, I'm not sure. I feel like there might be edgecases where it's not backwards compatible.

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

This is an example of something similar where it's not backward compatible because type-inference isn't smart enough.

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

I think that's acceptable. It's basically impossible to do anything with a higher order function whose arguments and return type are not constrained by the type checker.


unsafe impl<A: Alloc> Alloc for AbortAdapter<A> {
unsafe fn alloc(&mut self, layout: Layout) -> Result<NonNull<u8>, Self::Err> {
self.0.alloc(layout).or_else(|_| handle_alloc_error(layout))

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

I feel like we should handle this in a way that includes the actual error that occured. Maybe it'd be best to bound the Err associated type on Debug or Display?

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

Sure, but I figure we can hash out what handle_alloc_error should take later?

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

handle_alloc_error is stable, so it can't be changed. But yeah, this is less important for the moment.

/// The type of any errors thrown by the allocator, customarily
/// either `AllocErr`, for when error recovery is allowed, or `!`
/// to signify that all errors will result in .
type Err = AllocErr;

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

Also, why does it have a default error type?

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 10, 2019

Author Contributor

Optional backwards compat with existing instances.

This comment has been minimized.

Copy link
@lachlansneff

lachlansneff May 10, 2019

We don't need backwards compatibility.

@@ -610,8 +670,10 @@ impl<T> LinkedList<T> {
/// assert_eq!(dl.front().unwrap(), &1);
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
pub fn push_front(&mut self, elt: T) {
self.push_front_node(box Node::new(elt));
pub fn push_front_alloc(&mut self, elt: T) -> Result<(), A::Err> {

This comment has been minimized.

Copy link
@fbstj

fbstj May 12, 2019

Contributor

change to a stable method? insta-stabilising a method?

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 May 12, 2019

Author Contributor

👍 Right the docs and annotations should stay with the push_front, which is now in a different impl.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented May 12, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:0cc71963:start=1557702134046511930,finish=1557702221614269354,duration=87567757424
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---

[00:04:22] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:04:23] tidy error: /checkout/src/liballoc/collections/linked_list.rs:1350: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/collections/vec_deque.rs:597: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/vec.rs:559: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/raw_vec.rs:386: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/raw_vec.rs:397: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/raw_vec.rs:621: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/raw_vec.rs:624: line longer than 100 chars
[00:04:23] tidy error: /checkout/src/liballoc/string.rs:995: line longer than 100 chars
[00:04:28] some tidy checks failed
[00:04:28] 
[00:04:28] 
[00:04:28] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:04:28] 
[00:04:28] 
[00:04:28] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:04:28] Build completed unsuccessfully in 0:01:14
[00:04:28] Build completed unsuccessfully in 0:01:14
[00:04:28] Makefile:67: recipe for target 'tidy' failed
[00:04:28] make: *** [tidy] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0335d048
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Sun May 12 23:08:18 UTC 2019
---
travis_time:end:154417da:start=1557702498843112278,finish=1557702498848127032,duration=5014754
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:3b125d52
$ ln -s . checkout && for CORE in obj/cores/core.*; do EXE=$(echo $CORE | sed 's|obj/cores/core\.[0-9]*\.!checkout!\(.*\)|\1|;y|!|/|'); if [ -f "$EXE" ]; then printf travis_fold":start:crashlog\n\033[31;1m%s\033[0m\n" "$CORE"; gdb --batch -q -c "$CORE" "$EXE" -iex 'set auto-load off' -iex 'dir src/' -iex 'set sysroot .' -ex bt -ex q; echo travis_fold":"end:crashlog; fi; done || true
travis_fold:end:after_failure.4
travis_fold:start:after_failure.5
travis_time:start:0410c1e4
travis_time:start:0410c1e4
$ cat ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers || true
cat: ./obj/build/x86_64-unknown-linux-gnu/native/asan/build/lib/asan/clang_rt.asan-dynamic-i386.vers: No such file or directory
travis_fold:end:after_failure.5
travis_fold:start:after_failure.6
travis_time:start:173498fd
$ dmesg | grep -i kill

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@SimonSapin

This comment has been minimized.

Copy link
Contributor

commented May 13, 2019

Landing this is blocked on either:

@Ericson2314

This comment has been minimized.

Copy link
Contributor Author

commented May 13, 2019

@SimonSapin Indeed it is, amended OP to say as much and link to your post. I have no problem with that. You know my generally wanting to slam on the breaks with stabilization, and my own PR is no exception!

@phil-opp

This comment has been minimized.

Copy link
Contributor

commented May 16, 2019

@Ericson2314 i tried to experiment a bit with this PR, but it didn't compile for me (see compile output below). Is this a known issue?

Compile Output
Updating only changed submodules
Submodules updated in 0.02 seconds
    Finished dev [unoptimized] target(s) in 0.26s
Building stage0 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling alloc v0.0.0 (/home/philipp/Documents/rust/src/liballoc)
error: unused import: `stage0_phantom`==================>              ] 29/38
  --> src/liballoc/sync.rs:27:60
   |
27 | use crate::alloc::{Global, Alloc, Layout, box_free_worker, stage0_phantom};
   |                                                            ^^^^^^^^^^^^^^
   |
   = note: `-D unused-imports` implied by `-D warnings`

error: use of item 'core::mem::uninitialized' that will be deprecated in future version 2.0.0: use `mem::MaybeUninit::uninit` instead
   --> src/liballoc/boxed.rs:333:25
    |
333 |             let mut a = mem::uninitialized();
    |                         ^^^^^^^^^^^^^^^^^^
    |
    = note: `-D deprecated-in-future` implied by `-D warnings`

error: use of item 'core::mem::uninitialized' that will be deprecated in future version 2.0.0: use `mem::MaybeUninit::uninit` instead
   --> src/liballoc/sync.rs:302:29
    |
302 |             alloc: unsafe { mem::uninitialized() },
    |                             ^^^^^^^^^^^^^^^^^^

error: use of item 'core::mem::uninitialized' that will be deprecated in future version 2.0.0: use `mem::MaybeUninit::uninit` instead
   --> src/liballoc/rc.rs:319:29
    |
319 |             alloc: unsafe { mem::uninitialized() },
    |                             ^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> src/liballoc/alloc.rs:243:26
    |
243 |         stage0_unphantom(a).dealloc(NonNull::from(ptr).cast(), layout);
    |                          ^
    |                          |
    |                          expected struct `core::marker::PhantomData`, found mutable reference
    |                          help: consider dereferencing the borrow: `*a`
    |
    = note: expected type `core::marker::PhantomData<_>`
               found type `&mut core::marker::PhantomData<A>`

error[E0277]: the trait bound `A: core::default::Default` is not satisfied
   --> src/liballoc/boxed.rs:247:47
    |
247 |         Box::from_raw_in(f(Box::into_raw(b)), stage0_unphantom(a))
    |                                               ^^^^^^^^^^^^^^^^ the trait `core::default::Default` is not implemented for `A`
    |
    = help: consider adding a `where A: core::default::Default` bound
note: required by `alloc::stage0_unphantom`
   --> src/liballoc/alloc.rs:30:1
    |
30  | pub(crate) fn stage0_unphantom<A: Default>(_a: PhantomData<A>) -> A { A::default() }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> src/liballoc/boxed.rs:338:18
    |
338 |         (unique, alloc)
    |                  ^^^^^ expected type parameter, found struct `core::marker::PhantomData`
    |
    = note: expected type `A`
               found type `core::marker::PhantomData<A>`

error[E0277]: the trait bound `core::marker::PhantomData<A>: core::alloc::AllocHelper` is not satisfied
   --> src/liballoc/boxed.rs:917:21
    |
917 |         let Ok(b) = RawVec::with_capacity_in(self.len(), self.1.clone());
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `core::alloc::AllocHelper` is not implemented for `core::marker::PhantomData<A>`

error[E0277]: the trait bound `core::marker::PhantomData<A>: core::alloc::AllocHelper` is not satisfied
   --> src/liballoc/boxed.rs:917:21
    |
917 |         let Ok(b) = RawVec::with_capacity_in(self.len(), self.1.clone());
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `core::alloc::AllocHelper` is not implemented for `core::marker::PhantomData<A>`
    |
    = note: required because of the requirements on the impl of `core::alloc::Alloc` for `core::marker::PhantomData<A>`
note: required by `raw_vec::RawVec::<T, A>::with_capacity_in`
   --> src/liballoc/raw_vec.rs:68:5
    |
68  |     pub fn with_capacity_in(cap: usize, a: A) -> Result<Self, A::Err> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `core::marker::PhantomData<A>: core::alloc::AllocHelper` is not satisfied
   --> src/liballoc/boxed.rs:919:23
    |
919 |         let mut new = BoxBuilder {
    |                       ^^^^^^^^^^ the trait `core::alloc::AllocHelper` is not implemented for `core::marker::PhantomData<A>`
    |
    = note: required because of the requirements on the impl of `core::alloc::Alloc` for `core::marker::PhantomData<A>`
note: required by `<boxed::Box<[T], A> as core::clone::Clone>::clone::BoxBuilder`
   --> src/liballoc/boxed.rs:938:9
    |
938 |         struct BoxBuilder<T, A: Alloc> {
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `ptr` found for type `raw_vec::RawVec<_, core::marker::PhantomData<A>>` in the current scope
   --> src/liballoc/boxed.rs:924:35
    |
924 |         let mut target = new.data.ptr();
    |                                   ^^^ private field, not a method
    | 
   ::: src/liballoc/raw_vec.rs:42:1
    |
42  | pub struct RawVec<T, A: Alloc = AbortAdapter<Global>> {
    | ----------------------------------------------------- method `ptr` not found for this
    |
    = note: the method `ptr` exists but the following trait bounds were not satisfied:
            `core::marker::PhantomData<A> : alloc::Stage0Alloc`

error[E0599]: no method named `into_box` found for type `<boxed::Box<[T], A> as core::clone::Clone>::clone::BoxBuilder<_, core::marker::PhantomData<A>>` in the current scope
   --> src/liballoc/boxed.rs:935:29
    |
935 |         return unsafe { new.into_box() };
    |                             ^^^^^^^^
...
938 |         struct BoxBuilder<T, A: Alloc> {
    |         ------------------------------ method `into_box` not found for this
    |
    = note: the method `into_box` exists but the following trait bounds were not satisfied:
            `core::marker::PhantomData<A> : alloc::Stage0Alloc`

error[E0277]: the trait bound `A: core::default::Default` is not satisfied
   --> src/liballoc/collections/linked_list.rs:675:30
    |
675 |         self.push_front_node(Box::new_in(Node::new(elt), alloc)?);
    |                              ^^^^^^^^^^^ the trait `core::default::Default` is not implemented for `A`
    |
    = help: consider adding a `where A: core::default::Default` bound
note: required by `boxed::Box::<T, A>::new_in`
   --> src/liballoc/boxed.rs:155:5
    |
155 |     pub fn new_in(x: T, a: A) -> Result<Box<T, A>, A::Err> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `A: core::default::Default` is not satisfied
   --> src/liballoc/collections/linked_list.rs:720:29
    |
720 |         self.push_back_node(Box::new_in(Node::new(elt), alloc)?);
    |                             ^^^^^^^^^^^ the trait `core::default::Default` is not implemented for `A`
    |
    = help: consider adding a `where A: core::default::Default` bound
note: required by `boxed::Box::<T, A>::new_in`
   --> src/liballoc/boxed.rs:155:5
    |
155 |     pub fn new_in(x: T, a: A) -> Result<Box<T, A>, A::Err> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `A: core::default::Default` is not satisfied
    --> src/liballoc/collections/linked_list.rs:1023:64
     |
1023 |                 let node = Some(NonNull::from(Box::into_unique(Box::new_in(Node {
     |                                                                ^^^^^^^^^^^ the trait `core::default::Default` is not implemented for `A`
     |
     = help: consider adding a `where A: core::default::Default` bound
note: required by `boxed::Box::<T, A>::new_in`
    --> src/liballoc/boxed.rs:155:5
     |
155  |     pub fn new_in(x: T, a: A) -> Result<Box<T, A>, A::Err> {
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0277]: the trait bound `A: core::default::Default` is not satisfied
   --> src/liballoc/sync.rs:299:28
    |
299 |         let x: Box<_, A> = Box::new_in(ArcInner {
    |                            ^^^^^^^^^^^ the trait `core::default::Default` is not implemented for `A`
    |
    = help: consider adding a `where A: core::default::Default` bound
note: required by `boxed::Box::<T, A>::new_in`
   --> src/liballoc/boxed.rs:155:5
    |
155 |     pub fn new_in(x: T, a: A) -> Result<Box<T, A>, A::Err> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> src/liballoc/sync.rs:668:32
    |
668 |             box_free_worker(u, &mut a);
    |                                ^^^^^^ expected struct `core::marker::PhantomData`, found type parameter
    |
    = note: expected type `&mut core::marker::PhantomData<_>`
               found type `&mut A2`

error[E0308]: mismatched types
   --> src/liballoc/sync.rs:679:32
    |
679 |             box_free_worker(u, &mut (*arc.ptr.as_ptr()).alloc);
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `core::marker::PhantomData`, found type parameter
    |
    = note: expected type `&mut core::marker::PhantomData<_>`
               found type `&mut A`

error[E0277]: the trait bound `A: core::default::Default` is not satisfied
   --> src/liballoc/rc.rs:316:28
    |
316 |         let x: Box<_, A> = Box::new_in(RcBox {
    |                            ^^^^^^^^^^^ the trait `core::default::Default` is not implemented for `A`
    |
    = help: consider adding a `where A: core::default::Default` bound
note: required by `boxed::Box::<T, A>::new_in`
   --> src/liballoc/boxed.rs:155:5
    |
155 |     pub fn new_in(x: T, a: A) -> Result<Box<T, A>, A::Err> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> src/liballoc/rc.rs:768:32
    |
768 |             box_free_worker(u, &mut (*rc.ptr.as_ptr()).alloc);
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `core::marker::PhantomData`, found type parameter
    |
    = note: expected type `&mut core::marker::PhantomData<_>`
               found type `&mut A`

error: aborting due to 20 previous errors

Some errors occurred: E0277, E0308, E0599.
For more information about an error, try `rustc --explain E0277`.
error: Could not compile `alloc`.
@Ericson2314

This comment has been minimized.

Copy link
Contributor Author

commented May 16, 2019

@phil-opp Most of those yes. I just tried building by running cargo manually, which does work. I need to fix up all the #[cfg] for stage0 / stage1. (Though then again, when is the next release out after which those go away?)

@phil-opp

This comment has been minimized.

Copy link
Contributor

commented May 17, 2019

@Ericson2314 Thanks for clarifying!

@bors

This comment has been minimized.

Copy link
Contributor

commented May 21, 2019

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

}

#[unstable(feature = "allocator_api", issue = "32838")]
default unsafe impl<A: AllocHelper<Err = AllocErr>> Alloc for A {

This comment has been minimized.

Copy link
@phil-opp

phil-opp May 21, 2019

Contributor

This seems to cause a "conflicting implementations of trait core::alloc::Alloc" error for allocator crates without #![feature(specialization)]. The full error is:

error[E0119]: conflicting implementations of trait `core::alloc::Alloc` for type `Heap`:
   --> /…/linked-list-allocator/src/lib.rs:136:1
    |
136 | unsafe impl Alloc for Heap {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: conflicting implementation in crate `core`:
            - impl<A> core::alloc::Alloc for A
              where <A as core::alloc::AllocHelper>::Err == core::alloc::AllocErr, A: core::alloc::AllocHelper, A: core::alloc::Alloc;

With the feature added to the crate, it compiles fine.

This comment has been minimized.

Copy link
@Ericson2314

Ericson2314 Jun 12, 2019

Author Contributor

@phil-opp sorry to get back to you so late. Firstly, there is a proposal to remove the offending methods for which I need this AllocHelper business in the first place. If they aren't however, I'd hope we could use something lighter than specialization for this. They key property is if the choice if default method can be made without regard to the specific parameter, there is no parametric violation, and thus no interesting "specialization". Haskell has had https://ghc.gitlab.haskell.org/ghc/doc/users_guide/glasgow_exts.html#extension-DefaultSignatures along these lines with no global interactions for ages. We should add this limited form of default impls to Rust, and fix #52396 while we are at it.

glandium added some commits May 3, 2019

Associate an allocator to boxes
This turns `Box<T>` into `Box<T, A = Global>`, with a `A: Alloc` bound
for impls.

Ideally, inherent methods like `Box::new` would be applied to
`Box<T, A: Alloc + Default>`, but as of now, that would be backwards
incompatible because it would require type annotations in places where
they currently aren't required.

`impl FromIterator` is not covered because it relies on `Vec`, which
would need allocator awareness.

`DispatchFromDyn` is left out or being generic over `A` because there
is no bound that would make it work currently. `FnBox` is left out
because it's related to `DispatchFromDyn`.
Add associated error type to allocators
We will use this for fallibility polymorphism

@Ericson2314 Ericson2314 force-pushed the QuiltOS:allocator-error branch from 5b94a6d to 835df4c Jun 12, 2019

@Ericson2314

This comment has been minimized.

Copy link
Contributor Author

commented Jun 12, 2019

@glandium rebased, fixing conflicts and removing the stage0 cfg, and so I did the same. Took the time to test this more thoroughly so actually aiming to pass CI now 🚀 🚀 🚀.

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Jun 12, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:004fdb3b:start=1560298572959709429,finish=1560298667196973502,duration=94237264073
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---

[00:17:06] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:17:07] tidy error: /checkout/src/liballoc/collections/linked_list.rs:1354: line longer than 100 chars
[00:17:07] tidy error: /checkout/src/liballoc/collections/vec_deque.rs:597: line longer than 100 chars
[00:17:07] tidy error: /checkout/src/liballoc/vec.rs:559: line longer than 100 chars
[00:17:07] tidy error: /checkout/src/liballoc/raw_vec.rs:400: line longer than 100 chars
[00:17:09] tidy error: /checkout/src/liballoc/boxed.rs:339: malformed stability attribute: missing `feature` key
[00:17:11] some tidy checks failed
[00:17:11] 
[00:17:11] 
[00:17:11] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/tidy" "/checkout/src" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "--no-vendor" "--quiet"
[00:17:11] 
[00:17:11] 
[00:17:11] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:17:11] Build completed unsuccessfully in 0:01:13

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@Ericson2314 Ericson2314 force-pushed the QuiltOS:allocator-error branch from 835df4c to 66b01b6 Jun 12, 2019

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

commented Jun 12, 2019

The job x86_64-gnu-llvm-6.0 of your PR failed on Travis (raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
travis_time:end:00b0b6b0:start=1560301035931174978,finish=1560301123624139339,duration=87692964361
$ git checkout -qf FETCH_HEAD
travis_fold:end:git.checkout

Encrypted environment variables have been removed for security reasons.
See https://docs.travis-ci.com/user/pull-requests/#pull-requests-and-security-restrictions
$ export SCCACHE_BUCKET=rust-lang-ci-sccache2
$ export SCCACHE_REGION=us-west-1
$ export GCP_CACHE_BUCKET=rust-lang-ci-cache
$ export AWS_ACCESS_KEY_ID=AKIA46X5W6CZEJZ6XT55
---
[00:30:07] Assembling stage1 compiler (x86_64-unknown-linux-gnu)
[00:30:07] travis_fold:start:stage1-std
travis_time:start:stage1-std
Building stage1 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
[00:30:07] error: process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc -vV` (signal: 6, SIGABRT: process abort signal)
[00:30:07] --- stderr
[00:30:07] *** Error in `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc': free(): invalid pointer: 0x00007fa62c989b20 ***
[00:30:07] ======= Backtrace: =========
[00:30:07] /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fa62c63c7e5]
[00:30:07] /lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7fa62c64537a]
[00:30:07] /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fa62c64953c]
[00:30:07] /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/libstd-c844844bc956e13f.so(rust_metadata_std_417ad1778c4b3fb7d86aee3513cf2902+0x4f66e)[0x7fa62c9de66e]
[00:30:07] /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/libstd-c844844bc956e13f.so(rust_metadata_std_417ad1778c4b3fb7d86aee3513cf2902+0x55809)[0x7fa62c9e4809]
[00:30:07] /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/libstd-c844844bc956e13f.so(_ZN3std6thread6Thread3new17h0991791a49ff12feE+0x1a4)[0x7fa62c9e6794]
[00:30:07] /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/libstd-c844844bc956e13f.so(_ZN3std2rt19lang_start_internal17ha50d02de22603038E+0x314)[0x7fa62ca063a4]
[00:30:07] /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc(+0x962)[0x56037e7b5962]
[00:30:07] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fa62c5e5830]
[00:30:07] /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc(+0x829)[0x56037e7b5829]
[00:30:07] ======= Memory map: ========
[00:30:07] 56037e7b5000-56037e7b6000 r-xp 00000000 08:01 2321720                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc
[00:30:07] 56037e9b5000-56037e9b6000 r--p 00000000 08:01 2321720                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc
[00:30:07] 56037e9b6000-56037e9b7000 rw-p 00001000 08:01 2321720                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc
[00:30:07] 56037ed71000-56037ed92000 rw-p 00000000 00:00 0                          [heap]
[00:30:07] 7fa61c000000-7fa61c021000 rw-p 00000000 00:00 0 
[00:30:07] 7fa61c021000-7fa620000000 ---p 00000000 00:00 0 
[00:30:07] 7fa623eda000-7fa623f05000 r-xp 00000000 08:01 2081447                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libterm-42a3bfb8cb8e322f.so
[00:30:07] 7fa623f05000-7fa624105000 ---p 0002b000 08:01 2081447                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libterm-42a3bfb8cb8e322f.so
[00:30:07] 7fa624105000-7fa62410b000 r--p 0002b000 08:01 2081447                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libterm-42a3bfb8cb8e322f.so
[00:30:07] 7fa62410b000-7fa62410c000 rw-p 00031000 08:01 2081447                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libterm-42a3bfb8cb8e322f.so
[00:30:07] 7fa62410c000-7fa624214000 r-xp 00000000 08:01 1292136                    /lib/x86_64-linux-gnu/libm-2.23.so
[00:30:07] 7fa624214000-7fa624413000 ---p 00108000 08:01 1292136                    /lib/x86_64-linux-gnu/libm-2.23.so
[00:30:07] 7fa624413000-7fa624414000 r--p 00107000 08:01 1292136                    /lib/x86_64-linux-gnu/libm-2.23.so
[00:30:07] 7fa624414000-7fa624415000 rw-p 00108000 08:01 1292136                    /lib/x86_64-linux-gnu/libm-2.23.so
[00:30:07] 7fa624415000-7fa624418000 r-xp 00000000 08:01 2321411                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_fs_util-5f0122864e858157.so
[00:30:07] 7fa624418000-7fa624617000 ---p 00003000 08:01 2321411                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_fs_util-5f0122864e858157.so
[00:30:07] 7fa624617000-7fa624618000 r--p 00002000 08:01 2321411                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_fs_util-5f0122864e858157.so
[00:30:07] 7fa624618000-7fa624619000 rw-p 00003000 08:01 2321411                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_fs_util-5f0122864e858157.so
[00:30:07] 7fa624619000-7fa624620000 r-xp 00000000 08:01 2321391                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libfmt_macros-a1c850595bc2a1b5.so
[00:30:07] 7fa624620000-7fa624820000 ---p 00007000 08:01 2321391                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libfmt_macros-a1c850595bc2a1b5.so
[00:30:07] 7fa624820000-7fa624821000 r--p 00007000 08:01 2321391                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libfmt_macros-a1c850595bc2a1b5.so
[00:30:07] 7fa624821000-7fa624822000 rw-p 00008000 08:01 2321391                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libfmt_macros-a1c850595bc2a1b5.so
[00:30:07] 7fa624822000-7fa62499d000 r-xp 00000000 08:01 2321703                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_ext-4a7deb09fe5690b5.so
[00:30:07] 7fa62499d000-7fa624b9d000 ---p 0017b000 08:01 2321703                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_ext-4a7deb09fe5690b5.so
[00:30:07] 7fa624b9d000-7fa624ba3000 r--p 0017b000 08:01 2321703                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_ext-4a7deb09fe5690b5.so
[00:30:07] 7fa624ba3000-7fa624ba4000 rw-p 00181000 08:01 2321703                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_ext-4a7deb09fe5690b5.so
[00:30:07] 7fa624ba4000-7fa624c22000 r-xp 00000000 08:01 2321711                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_allocator-aa18244e2dd8bdec.so
[00:30:07] 7fa624c22000-7fa624e21000 ---p 0007e000 08:01 2321711                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_allocator-aa18244e2dd8bdec.so
[00:30:07] 7fa624e21000-7fa624e23000 r--p 0007d000 08:01 2321711                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_allocator-aa18244e2dd8bdec.so
[00:30:07] 7fa624e23000-7fa624e24000 rw-p 0007f000 08:01 2321711                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_allocator-aa18244e2dd8bdec.so
[00:30:07] 7fa624e24000-7fa624f4f000 r-xp 00000000 08:01 2321713                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_incremental-81e652614e78dfc5.so
[00:30:07] 7fa624f4f000-7fa62514f000 ---p 0012b000 08:01 2321713                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_incremental-81e652614e78dfc5.so
[00:30:07] 7fa62514f000-7fa625157000 r--p 0012b000 08:01 2321713                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_incremental-81e652614e78dfc5.so
[00:30:07] 7fa625157000-7fa625158000 rw-p 00133000 08:01 2321713                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_incremental-81e652614e78dfc5.so
[00:30:07] 7fa625158000-7fa62535c000 r-xp 00000000 08:01 2321736                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_ssa-1ea33004e3d61cd6.so
[00:30:07] 7fa62535c000-7fa62555c000 ---p 00204000 08:01 2321736                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_ssa-1ea33004e3d61cd6.so
[00:30:07] 7fa62555c000-7fa625568000 r--p 00204000 08:01 2321736                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_ssa-1ea33004e3d61cd6.so
[00:30:07] 7fa625568000-7fa625569000 rw-p 00210000 08:01 2321736                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_ssa-1ea33004e3d61cd6.so
[00:30:07] 7fa625569000-7fa625694000 r-xp 00000000 08:01 2321744                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_passes-f55b0c388399c648.so
[00:30:07] 7fa625694000-7fa625893000 ---p 0012b000 08:01 2321744                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_passes-f55b0c388399c648.so
[00:30:07] 7fa625893000-7fa625899000 r--p 0012a000 08:01 2321744                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_passes-f55b0c388399c648.so
[00:30:07] 7fa625899000-7fa62589a000 rw-p 00130000 08:01 2321744                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_passes-f55b0c388399c648.so
[00:30:07] 7fa62589a000-7fa625900000 r-xp 00000000 08:01 2321740                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_plugin-c290d89822ea1ad8.so
[00:30:07] 7fa625900000-7fa625aff000 ---p 00066000 08:01 2321740                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_plugin-c290d89822ea1ad8.so
[00:30:07] 7fa625aff000-7fa625b02000 r--p 00065000 08:01 2321740                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_plugin-c290d89822ea1ad8.so
[00:30:07] 7fa625b02000-7fa625b03000 rw-p 00068000 08:01 2321740                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_plugin-c290d89822ea1ad8.so
[00:30:07] 7fa625b03000-7fa62607c000 r-xp 00000000 08:01 2321716                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_typeck-4983be871d2727e4.so
[00:30:07] 7fa62607c000-7fa62627b000 ---p 00579000 08:01 2321716                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_typeck-4983be871d2727e4.so
[00:30:07] 7fa62627b000-7fa626297000 r--p 00578000 08:01 2321716                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_typeck-4983be871d2727e4.so
[00:30:07] 7fa626297000-7fa626298000 rw-p 00594000 08:01 2321716                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_typeck-4983be871d2727e4.so
[00:30:07] 7fa626298000-7fa6263cd000 r-xp 00000000 08:01 2321734                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_privacy-7cc3bcaa39b354c5.so
[00:30:07] 7fa6263cd000-7fa6265cd000 ---p 00135000 08:01 2321734                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_privacy-7cc3bcaa39b354c5.so
[00:30:07] 7fa6265cd000-7fa6265d1000 r--p 00135000 08:01 2321734                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_privacy-7cc3bcaa39b354c5.so
[00:30:07] 7fa6265d1000-7fa6265d2000 rw-p 00139000 08:01 2321734                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_privacy-7cc3bcaa39b354c5.so
[00:30:07] 7fa6265d2000-7fa62675f000 r-xp 00000000 08:01 2321738                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_resolve-08a9e1c52eb01e95.so
[00:30:07] 7fa62675f000-7fa62695e000 ---p 0018d000 08:01 2321738                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_resolve-08a9e1c52eb01e95.so
[00:30:07] 7fa62695e000-7fa62696a000 r--p 0018c000 08:01 2321738                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_resolve-08a9e1c52eb01e95.so
[00:30:07] 7fa62696a000-7fa62696b000 rw-p 00198000 08:01 2321738                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_resolve-08a9e1c52eb01e95.so
[00:30:07] 7fa62696b000-7fa626b7d000 r-xp 00000000 08:01 2321732                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_traits-14f127a5e7933602.so
[00:30:07] 7fa626b7d000-7fa626d7c000 ---p 00212000 08:01 2321732                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_traits-14f127a5e7933602.so
[00:30:07] 7fa626d7c000-7fa626d87000 r--p 00211000 08:01 2321732                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_traits-14f127a5e7933602.so
[00:30:07] 7fa626d87000-7fa626d88000 rw-p 0021c000 08:01 2321732                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_traits-14f127a5e7933602.so
[00:30:07] 7fa626d88000-7fa626ed6000 r-xp 00000000 08:01 2321718                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_lint-0417aecf75953604.so
[00:30:07] 7fa626ed6000-7fa6270d6000 ---p 0014e000 08:01 2321718                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_lint-0417aecf75953604.so
[00:30:07] 7fa6270d6000-7fa6270e2000 r--p 0014e000 08:01 2321718                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_lint-0417aecf75953604.so
[00:30:07] 7fa6270e2000-7fa6270e3000 rw-p 0015a000 08:01 2321718                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_lint-0417aecf75953604.so
[00:30:07] 7fa6270e3000-7fa6270ea000 r-xp 00000000 08:01 1292178                    /lib/x86_64-linux-gnu/librt-2.23.so
[00:30:07] 7fa6270ea000-7fa6272e9000 ---p 00007000 08:01 1292178                    /lib/x86_64-linux-gnu/librt-2.23.so
[00:30:07] 7fa6272e9000-7fa6272ea000 r--p 00006000 08:01 1292178                    /lib/x86_64-linux-gnu/librt-2.23.so
[00:30:07] 7fa6272ea000-7fa6272eb000 rw-p 00007000 08:01 1292178                    /lib/x86_64-linux-gnu/librt-2.23.so
[00:30:07] 7fa6272eb000-7fa6272ee000 r-xp 00000000 08:01 1292117                    /lib/x86_64-linux-gnu/libdl-2.23.so
[00:30:07] 7fa6272ee000-7fa6274ed000 ---p 00003000 08:01 1292117                    /lib/x86_64-linux-gnu/libdl-2.23.so
[00:30:07] 7fa6274ed000-7fa6274ee000 r--p 00002000 08:01 1292117                    /lib/x86_64-linux-gnu/libdl-2.23.so
[00:30:07] 7fa6274ee000-7fa6274ef000 rw-p 00003000 08:01 1292117                    /lib/x86_64-linux-gnu/libdl-2.23.so
[00:30:07] 7fa6274ef000-7fa627505000 r-xp 00000000 08:01 1292125                    /lib/x86_64-linux-gnu/libgcc_s.so.1
[00:30:07] 7fa627505000-7fa627704000 ---p 00016000 08:01 1292125                    /lib/x86_64-linux-gnu/libgcc_s.so.1
[00:30:07] 7fa627704000-7fa627705000 rw-p 00015000 08:01 1292125                    /lib/x86_64-linux-gnu/libgcc_s.so.1
[00:30:07] 7fa627705000-7fa62771d000 r-xp 00000000 08:01 1292172                    /lib/x86_64-linux-gnu/libpthread-2.23.so
[00:30:07] 7fa62771d000-7fa62791c000 ---p 00018000 08:01 1292172                    /lib/x86_64-linux-gnu/libpthread-2.23.so
[00:30:07] 7fa62791c000-7fa62791d000 r--p 00017000 08:01 1292172                    /lib/x86_64-linux-gnu/libpthread-2.23.so
[00:30:07] 7fa62791d000-7fa62791e000 rw-p 00018000 08:01 1292172                    /lib/x86_64-linux-gnu/libpthread-2.23.so
[00:30:07] 7fa62791e000-7fa627922000 rw-p 00000000 00:00 0 
[00:30:07] 7fa627922000-7fa627955000 r-xp 00000000 08:01 2321584                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libserialize-8259a4fbdb6377df.so
[00:30:07] 7fa627955000-7fa627b54000 ---p 00033000 08:01 2321584                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libserialize-8259a4fbdb6377df.so
[00:30:07] 7fa627b54000-7fa627b57000 r--p 00032000 08:01 2321584                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libserialize-8259a4fbdb6377df.so
[00:30:07] 7fa627b57000-7fa627b58000 rw-p 00035000 08:01 2321584                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libserialize-8259a4fbdb6377df.so
[00:30:07] 7fa627b58000-7fa627b9c000 r-xp 00000000 08:01 2321462                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_cratesio_shim-7a3fa46122ece1d2.so
[00:30:07] 7fa627b9c000-7fa627d9b000 ---p 00044000 08:01 2321462                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_cratesio_shim-7a3fa46122ece1d2.so
[00:30:07] 7fa627d9b000-7fa627d9d000 r--p 00043000 08:01 2321462                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_cratesio_shim-7a3fa46122ece1d2.so
[00:30:07] 7fa627d9d000-7fa627d9e000 rw-p 00045000 08:01 2321462                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_cratesio_shim-7a3fa46122ece1d2.so
[00:30:07] 7fa627d9e000-7fa627da4000 r-xp 00000000 08:01 2321396                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libgraphviz-5802bba1e3dd27f2.so
[00:30:07] 7fa627da4000-7fa627fa4000 ---p 00006000 08:01 2321396                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libgraphviz-5802bba1e3dd27f2.so
[00:30:07] 7fa627fa4000-7fa627fa5000 r--p 00006000 08:01 2321396                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libgraphviz-5802bba1e3dd27f2.so
[00:30:07] 7fa627fa5000-7fa627fa6000 rw-p 00007000 08:01 2321396                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libgraphviz-5802bba1e3dd27f2.so
[00:30:07] 7fa627fa6000-7fa627fcf000 r-xp 00000000 08:01 2321687                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_data_structures-4d186a5a2a9b2d12.so
[00:30:07] 7fa627fcf000-7fa6281cf000 ---p 00029000 08:01 2321687                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_data_structures-4d186a5a2a9b2d12.so
[00:30:07] 7fa6281cf000-7fa6281d2000 r--p 00029000 08:01 2321687                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_data_structures-4d186a5a2a9b2d12.so
[00:30:07] 7fa6281d2000-7fa6281d3000 rw-p 0002c000 08:01 2321687                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_data_structures-4d186a5a2a9b2d12.so
[00:30:07] 7fa6281d3000-7fa6281d5000 r-xp 00000000 08:01 2321686                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libarena-59b6aa170dd18238.so
[00:30:07] 7fa6281d5000-7fa6283d5000 ---p 00002000 08:01 2321686                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libarena-59b6aa170dd18238.so
[00:30:07] 7fa6283d5000-7fa6283d6000 r--p 00002000 08:01 2321686                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libarena-59b6aa170dd18238.so
[00:30:07] 7fa6283d6000-7fa6283d7000 rw-p 00003000 08:01 2321686                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libarena-59b6aa170dd18238.so
[00:30:07] 7fa6283d7000-7fa628412000 r-xp 00000000 08:01 2321692                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_pos-70ac6e9befe6e999.so
[00:30:07] 7fa628412000-7fa628612000 ---p 0003b000 08:01 2321692                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_pos-70ac6e9befe6e999.so
[00:30:07] 7fa628612000-7fa628618000 r--p 0003b000 08:01 2321692                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_pos-70ac6e9befe6e999.so
[00:30:07] 7fa628618000-7fa628619000 rw-p 00041000 08:01 2321692                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax_pos-70ac6e9befe6e999.so
[00:30:07] 7fa628619000-7fa6286a2000 r-xp 00000000 08:01 2321697                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_errors-5632f2539e9ae150.so
[00:30:07] 7fa6286a2000-7fa6288a2000 ---p 00089000 08:01 2321697                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_errors-5632f2539e9ae150.so
[00:30:07] 7fa6288a2000-7fa6288a9000 r--p 00089000 08:01 2321697                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_errors-5632f2539e9ae150.so
[00:30:07] 7fa6288a9000-7fa6288aa000 rw-p 00090000 08:01 2321697                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_errors-5632f2539e9ae150.so
[00:30:07] 7fa6288aa000-7fa628999000 r-xp 00000000 08:01 2321695                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_target-e2397e11a8e1e1e0.so
[00:30:07] 7fa628999000-7fa628b98000 ---p 000ef000 08:01 2321695                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_target-e2397e11a8e1e1e0.so
[00:30:07] 7fa628b98000-7fa628b9c000 r--p 000ee000 08:01 2321695                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_target-e2397e11a8e1e1e0.so
[00:30:07] 7fa628b9c000-7fa628b9d000 rw-p 000f2000 08:01 2321695                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_target-e2397e11a8e1e1e0.so
[00:30:07] 7fa628b9d000-7fa628f0e000 r-xp 00000000 08:01 2321700                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax-b63c0d6d31f30b86.so
[00:30:07] 7fa628f0e000-7fa62910d000 ---p 00371000 08:01 2321700                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax-b63c0d6d31f30b86.so
[00:30:07] 7fa62910d000-7fa62912b000 r--p 00370000 08:01 2321700                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax-b63c0d6d31f30b86.so
[00:30:07] 7fa62912b000-7fa62912c000 rw-p 0038e000 08:01 2321700                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libsyntax-b63c0d6d31f30b86.so
[00:30:07] 7fa62912c000-7fa629184000 r-xp 00000000 08:01 2081451                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libtest-8612e47523425cd2.so
[00:30:07] 7fa629184000-7fa629384000 ---p 00058000 08:01 2081451                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libtest-8612e47523425cd2.so
[00:30:07] 7fa629384000-7fa629389000 r--p 00058000 08:01 2081451                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libtest-8612e47523425cd2.so
[00:30:07] 7fa629389000-7fa62938a000 rw-p 0005d000 08:01 2081451                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libtest-8612e47523425cd2.so
[00:30:07] 7fa62938a000-7fa62a3a9000 r-xp 00000000 08:01 2321705                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc-c3b86f1aefb9449e.so
[00:30:07] 7fa62a3a9000-7fa62a5a9000 ---p 0101f000 08:01 2321705                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc-c3b86f1aefb9449e.so
[00:30:07] 7fa62a5a9000-7fa62a5f0000 r--p 0101f000 08:01 2321705                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc-c3b86f1aefb9449e.so
[00:30:07] 7fa62a5f0000-7fa62a5f1000 rw-p 01066000 08:01 2321705                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc-c3b86f1aefb9449e.so
[00:30:07] 7fa62a5f1000-7fa62a9a0000 r-xp 00000000 08:01 2321719                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_metadata-cdae7847e75e1e2e.so
[00:30:07] 7fa62a9a0000-7fa62ab9f000 ---p 003af000 08:01 2321719                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_metadata-cdae7847e75e1e2e.so
[00:30:07] 7fa62ab9f000-7fa62abab000 r--p 003ae000 08:01 2321719                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_metadata-cdae7847e75e1e2e.so
[00:30:07] 7fa62abab000-7fa62abac000 rw-p 003ba000 08:01 2321719                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_metadata-cdae7847e75e1e2e.so
[00:30:07] 7fa62abac000-7fa62acfa000 r-xp 00000000 08:01 2321731                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_utils-4f0bb63db5f17f16.so
[00:30:07] 7fa62acfa000-7fa62aef9000 ---p 0014e000 08:01 2321731                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_utils-4f0bb63db5f17f16.so
[00:30:07] 7fa62aef9000-7fa62af00000 r--p 0014d000 08:01 2321731                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_utils-4f0bb63db5f17f16.so
[00:30:07] 7fa62af00000-7fa62af01000 rw-p 00154000 08:01 2321731                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_codegen_utils-4f0bb63db5f17f16.so
[00:30:07] 7fa62af01000-7fa62b0be000 r-xp 00000000 08:01 2321742                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_save_analysis-c90426a27b6dc38b.so
[00:30:07] 7fa62b0be000-7fa62b2bd000 ---p 001bd000 08:01 2321742                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_save_analysis-c90426a27b6dc38b.so
[00:30:07] 7fa62b2bd000-7fa62b2c8000 r--p 001bc000 08:01 2321742                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_save_analysis-c90426a27b6dc38b.so
[00:30:07] 7fa62b2c8000-7fa62b2c9000 rw-p 001c7000 08:01 2321742                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_save_analysis-c90426a27b6dc38b.so
[00:30:07] 7fa62b2c9000-7fa62bbd4000 r-xp 00000000 08:01 2321729                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_mir-de4a50c08ad258b8.so
[00:30:07] 7fa62bbd4000-7fa62bdd3000 ---p 0090b000 08:01 2321729                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_mir-de4a50c08ad258b8.so
[00:30:07] 7fa62bdd3000-7fa62be07000 r--p 0090a000 08:01 2321729                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_mir-de4a50c08ad258b8.so
[00:30:07] 7fa62be07000-7fa62be08000 rw-p 0093e000 08:01 2321729                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_mir-de4a50c08ad258b8.so
[00:30:07] 7fa62be08000-7fa62bef6000 r-xp 00000000 08:01 2321730                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_borrowck-92e1cdf71ea580e5.so
[00:30:07] 7fa62bef6000-7fa62c0f6000 ---p 000ee000 08:01 2321730                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_borrowck-92e1cdf71ea580e5.so
[00:30:07] 7fa62c0f6000-7fa62c0fe000 r--p 000ee000 08:01 2321730                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_borrowck-92e1cdf71ea580e5.so
[00:30:07] 7fa62c0fe000-7fa62c0ff000 rw-p 000f6000 08:01 2321730                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_borrowck-92e1cdf71ea580e5.so
[00:30:07] 7fa62c0ff000-7fa62c3ba000 r-xp 00000000 08:01 2321739                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_interface-632a879f82581358.so
[00:30:07] 7fa62c3ba000-7fa62c5b9000 ---p 002bb000 08:01 2321739                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_interface-632a879f82581358.so
[00:30:07] 7fa62c5b9000-7fa62c5c4000 r--p 002ba000 08:01 2321739                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_interface-632a879f82581358.so
[00:30:07] 7fa62c5c4000-7fa62c5c5000 rw-p 002c5000 08:01 2321739                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_interface-632a879f82581358.so
[00:30:07] 7fa62c5c5000-7fa62c785000 r-xp 00000000 08:01 1292104                    /lib/x86_64-linux-gnu/libc-2.23.so
[00:30:07] 7fa62c785000-7fa62c985000 ---p 001c0000 08:01 1292104                    /lib/x86_64-linux-gnu/libc-2.23.so
[00:30:07] 7fa62c985000-7fa62c989000 r--p 001c0000 08:01 1292104                    /lib/x86_64-linux-gnu/libc-2.23.so
[00:30:07] 7fa62c989000-7fa62c98b000 rw-p 001c4000 08:01 1292104                    /lib/x86_64-linux-gnu/libc-2.23.so
[00:30:07] 7fa62c98b000-7fa62c98f000 rw-p 00000000 00:00 0 
[00:30:07] 7fa62c98f000-7fa62ca8a000 r-xp 00000000 08:01 1816845                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-c844844bc956e13f.so
[00:30:07] 7fa62ca8a000-7fa62cc89000 ---p 000fb000 08:01 1816845                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-c844844bc956e13f.so
[00:30:07] 7fa62cc89000-7fa62cc98000 r--p 000fa000 08:01 1816845                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-c844844bc956e13f.so
[00:30:07] 7fa62cc98000-7fa62cc99000 rw-p 00109000 08:01 1816845                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-c844844bc956e13f.so
[00:30:07] 7fa62cc99000-7fa62ce2c000 r-xp 00000000 08:01 2321743                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-2539f3b09b1cdd91.so
[00:30:07] 7fa62ce2c000-7fa62d02c000 ---p 00193000 08:01 2321743                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-2539f3b09b1cdd91.so
[00:30:07] 7fa62d02c000-7fa62d038000 r--p 00193000 08:01 2321743                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-2539f3b09b1cdd91.so
[00:30:07] 7fa62d038000-7fa62d039000 rw-p 0019f000 08:01 2321743                    /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-2539f3b09b1cdd91.so
[00:30:07] 7fa62d039000-7fa62d05f000 r-xp 00000000 08:01 1292084                    /lib/x86_64-linux-gnu/ld-2.23.so
[00:30:07] 7fa62d241000-7fa62d258000 rw-p 00000000 00:00 0 
[00:30:07] 7fa62d25a000-7fa62d25e000 rw-p 00000000 00:00 0 
[00:30:07] 7fa62d25e000-7fa62d25f000 r--p 00025000 08:01 1292084                    /lib/x86_64-linux-gnu/ld-2.23.so
[00:30:07] 7fa62d25f000-7fa62d260000 rw-p 00026000 08:01 1292084                    /lib/x86_64-linux-gnu/ld-2.23.so
[00:30:07] 7fa62d260000-7fa62d261000 rw-p 00000000 00:00 0 
[00:30:07] 7ffc662e4000-7ffc66305000 rw-p 00000000 00:00 0                          [stack]
[00:30:07] 7ffc6633d000-7ffc66340000 r--p 00000000 00:00 0                          [vvar]
[00:30:07] 7ffc66340000-7ffc66342000 r-xp 00000000 00:00 0                          [vdso]
[00:30:07] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
[00:30:07] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-j" "4" "--release" "--locked" "--color" "always" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/checkout/src/libstd/Cargo.toml" "--message-format" "json"
[00:30:07] expected success, got: exit code: 101
[00:30:07] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[00:30:07] Build completed unsuccessfully in 0:23:25

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors

This comment has been minimized.

Copy link
Contributor

commented Jun 14, 2019

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
You can’t perform that action at this time.