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] Take 2: change how MIR represents Place #54426

Open
wants to merge 26 commits into
base: master
from

Conversation

Projects
None yet
7 participants
@csmoe
Member

csmoe commented Sep 21, 2018

Closes #52708
Introduce the new Place with "incremental refactoring" instead of the previous approach which is hard to maintain.
r? @nikomatsakis

@rust-highfive

This comment was marked as resolved.

Collaborator

rust-highfive commented Sep 21, 2018

The job x86_64-gnu-llvm-5.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.

[00:04:57] travis_fold:start:tidy
travis_time:start:tidy
tidy check
[00:04:58] tidy error: /checkout/src/librustc/mir/mod.rs:1748: TODO is deprecated; use FIXME
[00:04:59] some tidy checks failed
[00:04:59] 
[00:04:59] 
[00:04:59] 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:59] 
[00:04:59] 
[00:04:59] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
[00:04:59] Build completed unsuccessfully in 0:00:52
[00:04:59] Build completed unsuccessfully in 0:00:52
[00:04:59] make: *** [tidy] Error 1
[00:04:59] Makefile:79: recipe for target 'tidy' failed

The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:0ebed146
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
---
travis_time:end:20121a47:start=1537536983501905868,finish=1537536983506477722,duration=4571854
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:0a066021
$ 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:000f853a
travis_time:start:000f853a
$ 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:148353c0
$ 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)

@memoryruins memoryruins added the A-NLL label Sep 21, 2018

@csmoe csmoe force-pushed the csmoe:place2 branch from 7bde11b to dffd7ee Sep 22, 2018

@rust-highfive

This comment was marked as resolved.

Collaborator

rust-highfive commented Sep 23, 2018

The job x86_64-gnu-llvm-5.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.
[00:13:16]    Compiling rustc_allocator v0.0.0 (file:///checkout/src/librustc_allocator)
[00:13:16] error[E0433]: failed to resolve. Use of undeclared type or module `PlaceBase`
[00:13:16]    --> librustc_mir/borrow_check/borrow_set.rs:379:13
[00:13:16]     |
[00:13:16] 379 |             PlaceBase::Local(temp) if neo_place.has_no_projection() => temp,
[00:13:16]     |             ^^^^^^^^^ Use of undeclared type or module `PlaceBase`
[00:13:16] 
[00:13:19] error[E0616]: field `base` of struct `rustc::mir::NeoPlace` is private
[00:13:19]    --> librustc_mir/borrow_check/borrow_set.rs:260:38
[00:13:19]     |
[00:13:19] 260 |         if let Place::Local(temp) = &neo_place.base {
[00:13:19] 
[00:13:19] error[E0308]: mismatched types
[00:13:19]    --> librustc_mir/borrow_check/borrow_set.rs:260:16
[00:13:19]     |
[00:13:19]     |
[00:13:19] 260 |         if let Place::Local(temp) = &neo_place.base {
[00:13:19]     |                ^^^^^^^^^^^^^^^^^^ expected enum `rustc::mir::PlaceBase`, found enum `rustc::mir::Place`
[00:13:19]     |
[00:13:19]     = note: expected type `rustc::mir::PlaceBase<'_>`
[00:13:19]                found type `rustc::mir::Place<'_>`
[00:13:19] 
[00:13:19] error[E0616]: field `base` of struct `rustc::mir::NeoPlace` is private
[00:13:19]    --> librustc_mir/borrow_check/borrow_set.rs:378:27
[00:13:19]     |
[00:13:19] 378 |         let temp = match &neo_place.base {
[00:13:19] 
[00:13:27] error: aborting due to 4 previous errors
[00:13:27] 
[00:13:27] Some errors occurred: E0308, E0433, E0616.
[00:13:27] Some errors occurred: E0308, E0433, E0616.
[00:13:27] For more information about an error, try `rustc --explain E0308`.
[00:13:27] error: Could not compile `rustc_mir`.
[00:13:27] warning: build failed, waiting for other jobs to finish...
[00:14:38] error: build failed
[00:14:38] 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" " jemalloc" "--manifest-path" "/checkout/src/rustc/Cargo.toml" "--message-format" "json"
[00:14:38] expected success, got: exit code: 101
[00:14:38] thread 'main' panicked at 'cargo must succeed', bootstrap/compile.rs:1112:9
[00:14:38] travis_fold:end:stage0-rustc

[00:14:38] travis_time:end:stage0-rustc:start=1537712381058209369,finish=1537712936652559162,duration=555594349793


[00:14:38] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap build
[00:14:38] Build completed unsuccessfully in 0:10:10
[00:14:38] Makefile:28: recipe for target 'all' failed
[00:14:38] make: *** [all] Error 1

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)

@csmoe csmoe force-pushed the csmoe:place2 branch from b4d4654 to 83e476a Sep 23, 2018

@rust-highfive

This comment was marked as resolved.

Collaborator

rust-highfive commented Sep 23, 2018

The job x86_64-gnu-llvm-5.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.
[00:13:56]    Compiling rustc_traits v0.0.0 (file:///checkout/src/librustc_traits)
[00:13:57] error: unused import: `Place`
[00:13:57]   --> librustc_mir/borrow_check/borrow_set.rs:16:39
[00:13:57]    |
[00:13:57] 16 | use rustc::mir::{self, Location, Mir, Place, Local};
[00:13:57]    |
[00:13:57]    = note: `-D unused-imports` implied by `-D warnings`
[00:13:57] 
[00:14:00] error[E0308]: mismatched types
[00:14:00] error[E0308]: mismatched types
[00:14:00]    --> librustc_mir/borrow_check/borrow_set.rs:400:57
[00:14:00]     |
[00:14:00] 400 |         let old_value = self.pending_activations.insert(temp, borrow_index);
[00:14:00]     |                                                         |
[00:14:00]     |                                                         expected struct `rustc::mir::Local`, found reference
[00:14:00]     |                                                         expected struct `rustc::mir::Local`, found reference
[00:14:00]     |                                                         help: consider dereferencing the borrow: `*temp`
[00:14:00]     = note: expected type `rustc::mir::Local`
[00:14:00]                found type `&rustc::mir::Local`
[00:14:00] 
[00:14:08] error: aborting due to 2 previous errors
[00:14:08] error: aborting due to 2 previous errors
[00:14:08] 
[00:14:08] For more information about this error, try `rustc --explain E0308`.
[00:14:08] error: Could not compile `rustc_mir`.
[00:14:08] warning: build failed, waiting for other jobs to finish...
an/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:0238cde7
$ 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)

@csmoe csmoe force-pushed the csmoe:place2 branch 4 times, most recently from 22099d7 to 3cfa0bc Sep 23, 2018

pub fn split_projection<'cx, 'gcx>(
&self,
tcx: TyCtxt<'cx, 'gcx, 'tcx>,
) -> (NeoPlace<'tcx>, Option<&'tcx PlaceElem<'tcx>>) {

This comment has been minimized.

@eddyb

eddyb Sep 24, 2018

Member

I find this operation dishearteningly inefficient :(.

This comment has been minimized.

@nikomatsakis

nikomatsakis Sep 25, 2018

Contributor

If we don't "re-intern" the slice of elements, then in what way is it inefficient?

I think it'd be nice to be able to treat a NeoPlace as either a list or a tree as you choose, and this operation allows for that (although I would probably tweak the signature; I'd prefer it returns something like "Result<(NeoPlace, ProjectionElem), Base>`. ie., either you reached the base case, or else not.

This comment has been minimized.

@nikomatsakis

nikomatsakis Sep 25, 2018

Contributor

Maybe something like

enum NeoPlaceTree {
    Leaf(PlaceBase),
    Branch(NeoPlace<'tcx>, ProjectionElem<'tcx>),
}

and into_tree(self) -> NeoPlaceTree as the signature (lifetimes elided, clearly).

tcx: &TyCtxt<'cx, 'gcx, 'tcx>,
) -> Option<Field> {
let (place, by_ref) = if let Some(ProjectionElem::Deref) = self.elems.last() {
(self.projection_base(*tcx), true)

This comment has been minimized.

@eddyb

eddyb Sep 24, 2018

Member

You can rewrite this as going backwards in the projection list.

If you want, you can use let mut elems = self.elems.iter().rev(); and then call next() on that once, check whether it's Deref, and if it is, call next() again.

You can also use indices.

This comment has been minimized.

@nikomatsakis

nikomatsakis Sep 25, 2018

Contributor

It feels like this is a case where treating the projection as a tree (sort of what this code is doing) is a bit cleaner. In particular, we want to look for something like P.f or *P.f and then test the type of P. We can certainly "walk backwards" over the elements, but once we've peeled off the * and the .f we sitll kind of want to extract the P as a unit, right?

@bors

This comment was marked as resolved.

Contributor

bors commented Sep 25, 2018

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

@csmoe csmoe force-pushed the csmoe:place2 branch from 3cfa0bc to 674348d Sep 25, 2018

@rust-highfive

This comment was marked as resolved.

Collaborator

rust-highfive commented Sep 25, 2018

The job x86_64-gnu-llvm-5.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.
################                                                          22.8%
######################################################################## 100.0%
[00:02:00] extracting /checkout/obj/build/cache/2018-09-11/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:02:02]     Updating registry `https://github.com/rust-lang/crates.io-index`
[00:02:27] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:27] Build completed unsuccessfully in 0:00:43
[00:02:27] Makefile:81: recipe for target 'prepare' failed
[00:02:27] make: *** [prepare] Error 1
[00:02:28] Command failed. Attempt 2/5:
[00:02:28] Command failed. Attempt 2/5:
[00:02:29] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:29] Build completed unsuccessfully in 0:00:00
[00:02:29] Makefile:81: recipe for target 'prepare' failed
[00:02:29] make: *** [prepare] Error 1
[00:02:31] Command failed. Attempt 3/5:
[00:02:31] Command failed. Attempt 3/5:
[00:02:31] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:31] Build completed unsuccessfully in 0:00:00
[00:02:31] Makefile:81: recipe for target 'prepare' failed
[00:02:31] make: *** [prepare] Error 1
[00:02:34] Command failed. Attempt 4/5:
[00:02:34] Command failed. Attempt 4/5:
[00:02:34] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:34] Build completed unsuccessfully in 0:00:00
[00:02:34] Makefile:81: recipe for target 'prepare' failed
[00:02:34] make: *** [prepare] Error 1
[00:02:38] Command failed. Attempt 5/5:
[00:02:38] Command failed. Attempt 5/5:
[00:02:40] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:40] Build completed unsuccessfully in 0:00:01
[00:02:40] make: *** [prepare] Error 1
[00:02:40] Makefile:81: recipe for target 'prepare' failed
[00:02:40] The command has failed after 5 attempts.
---
travis_time:end:04f68138:start=1537848763506278542,finish=1537848763512828847,duration=6550305
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:04744b96
$ 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:1804147a
travis_time:start:1804147a
$ 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:0dd3cfcf
$ 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)

@csmoe csmoe force-pushed the csmoe:place2 branch from 674348d to 1c8399b Sep 25, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Sep 25, 2018

The job x86_64-gnu-llvm-5.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.
############################################                              61.8%
######################################################################## 100.0%
[00:02:16] extracting /checkout/obj/build/cache/2018-09-11/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:02:16]     Updating registry `https://github.com/rust-lang/crates.io-index`
[00:02:40] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:40] Build completed unsuccessfully in 0:00:55
[00:02:40] Makefile:81: recipe for target 'prepare' failed
[00:02:40] make: *** [prepare] Error 1
[00:02:41] Command failed. Attempt 2/5:
[00:02:41] Command failed. Attempt 2/5:
[00:02:41] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:41] Build completed unsuccessfully in 0:00:00
[00:02:41] make: *** [prepare] Error 1
[00:02:41] Makefile:81: recipe for target 'prepare' failed
[00:02:43] Command failed. Attempt 3/5:
[00:02:43] Command failed. Attempt 3/5:
[00:02:44] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:44] Build completed unsuccessfully in 0:00:00
[00:02:44] make: *** [prepare] Error 1
[00:02:44] Makefile:81: recipe for target 'prepare' failed
[00:02:47] Command failed. Attempt 4/5:
[00:02:47] Command failed. Attempt 4/5:
[00:02:47] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:47] Build completed unsuccessfully in 0:00:00
[00:02:47] Makefile:81: recipe for target 'prepare' failed
[00:02:47] make: *** [prepare] Error 1
[00:02:51] Command failed. Attempt 5/5:
[00:02:51] Command failed. Attempt 5/5:
[00:02:51] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:51] Build completed unsuccessfully in 0:00:00
[00:02:51] make: *** [prepare] Error 1
[00:02:51] Makefile:81: recipe for target 'prepare' failed
[00:02:51] The command has failed after 5 attempts.
---
travis_time:end:1b088b20:start=1537878486894660666,finish=1537878486900865480,duration=6204814
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:1583cf80
$ 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:0b83355a
travis_time:start:0b83355a
$ 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:029adc00
$ 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)

@csmoe csmoe force-pushed the csmoe:place2 branch from 1c8399b to ddf4b61 Sep 25, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Sep 25, 2018

The job x86_64-gnu-llvm-5.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.
###########################################################               82.6%
######################################################################## 100.0%
[00:02:06] extracting /checkout/obj/build/cache/2018-09-11/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:02:08]     Updating registry `https://github.com/rust-lang/crates.io-index`
[00:02:33] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:33] Build completed unsuccessfully in 0:00:49
[00:02:33] Makefile:81: recipe for target 'prepare' failed
[00:02:33] make: *** [prepare] Error 1
[00:02:34] Command failed. Attempt 2/5:
[00:02:34] Command failed. Attempt 2/5:
[00:02:34] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:34] Build completed unsuccessfully in 0:00:00
[00:02:34] make: *** [prepare] Error 1
[00:02:34] Makefile:81: recipe for target 'prepare' failed
[00:02:36] Command failed. Attempt 3/5:
[00:02:36] Command failed. Attempt 3/5:
[00:02:37] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:37] Build completed unsuccessfully in 0:00:00
[00:02:37] make: *** [prepare] Error 1
[00:02:37] Makefile:81: recipe for target 'prepare' failed
[00:02:40] Command failed. Attempt 4/5:
[00:02:40] Command failed. Attempt 4/5:
[00:02:40] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:40] Build completed unsuccessfully in 0:00:00
[00:02:40] Makefile:81: recipe for target 'prepare' failed
[00:02:40] make: *** [prepare] Error 1
[00:02:44] Command failed. Attempt 5/5:
[00:02:44] Command failed. Attempt 5/5:
[00:02:44] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:44] Build completed unsuccessfully in 0:00:00
[00:02:44] Makefile:81: recipe for target 'prepare' failed
[00:02:44] make: *** [prepare] Error 1
[00:02:44] The command has failed after 5 attempts.
---
travis_time:end:115098e0:start=1537879103814263946,finish=1537879103819496654,duration=5232708
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:009eeb96
$ 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:1b99cb19
travis_time:start:1b99cb19
$ 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:0c4fcf47
$ 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)

@csmoe csmoe force-pushed the csmoe:place2 branch from ddf4b61 to cd14a6d Sep 25, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Sep 25, 2018

The job x86_64-gnu-llvm-5.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.
#########################################                                 57.9%
######################################################################## 100.0%
[00:02:15] extracting /checkout/obj/build/cache/2018-09-11/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:02:15]     Updating registry `https://github.com/rust-lang/crates.io-index`
[00:02:39] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:39] Build completed unsuccessfully in 0:00:56
[00:02:39] Makefile:81: recipe for target 'prepare' failed
[00:02:39] make: *** [prepare] Error 1
[00:02:40] Command failed. Attempt 2/5:
[00:02:40] Command failed. Attempt 2/5:
[00:02:41] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:41] Build completed unsuccessfully in 0:00:00
[00:02:41] Makefile:81: recipe for target 'prepare' failed
[00:02:41] make: *** [prepare] Error 1
[00:02:43] Command failed. Attempt 3/5:
[00:02:43] Command failed. Attempt 3/5:
[00:02:43] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:43] Build completed unsuccessfully in 0:00:00
[00:02:43] Makefile:81: recipe for target 'prepare' failed
[00:02:43] make: *** [prepare] Error 1
[00:02:46] Command failed. Attempt 4/5:
[00:02:46] Command failed. Attempt 4/5:
[00:02:46] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:46] Build completed unsuccessfully in 0:00:00
[00:02:46] Makefile:81: recipe for target 'prepare' failed
[00:02:46] make: *** [prepare] Error 1
[00:02:50] Command failed. Attempt 5/5:
[00:02:50] Command failed. Attempt 5/5:
[00:02:50] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:50] Build completed unsuccessfully in 0:00:00
[00:02:50] Makefile:81: recipe for target 'prepare' failed
[00:02:50] make: *** [prepare] Error 1
[00:02:50] The command has failed after 5 attempts.
---
travis_time:end:02f80305:start=1537879553500602676,finish=1537879553504911071,duration=4308395
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:216350f7
$ 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:02ddecc4
travis_time:start:02ddecc4
$ 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:1a873f36
$ 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)

@csmoe csmoe force-pushed the csmoe:place2 branch from cd14a6d to dec68ed Sep 25, 2018

@rust-highfive

This comment was marked as outdated.

Collaborator

rust-highfive commented Sep 25, 2018

The job x86_64-gnu-llvm-5.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.
##########################                                                36.9%
######################################################################## 100.0%
[00:01:54] extracting /checkout/obj/build/cache/2018-09-11/cargo-beta-x86_64-unknown-linux-gnu.tar.gz
[00:01:54]     Updating registry `https://github.com/rust-lang/crates.io-index`
[00:02:18] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:18] Build completed unsuccessfully in 0:00:40
[00:02:18] make: *** [prepare] Error 1
[00:02:18] Makefile:81: recipe for target 'prepare' failed
[00:02:19] Command failed. Attempt 2/5:
[00:02:19] Command failed. Attempt 2/5:
[00:02:20] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:20] Build completed unsuccessfully in 0:00:00
[00:02:20] make: *** [prepare] Error 1
[00:02:20] Makefile:81: recipe for target 'prepare' failed
[00:02:22] Command failed. Attempt 3/5:
[00:02:22] Command failed. Attempt 3/5:
[00:02:22] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:22] Build completed unsuccessfully in 0:00:00
[00:02:22] make: *** [prepare] Error 1
[00:02:22] Makefile:81: recipe for target 'prepare' failed
[00:02:25] Command failed. Attempt 4/5:
[00:02:25] Command failed. Attempt 4/5:
[00:02:25] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:25] Build completed unsuccessfully in 0:00:00
[00:02:25] make: *** [prepare] Error 1
[00:02:25] Makefile:81: recipe for target 'prepare' failed
[00:02:29] Command failed. Attempt 5/5:
[00:02:29] Command failed. Attempt 5/5:
[00:02:30] error: the lock file needs to be updated but --locked was passed to prevent this
[00:02:30] Build completed unsuccessfully in 0:00:00
[00:02:30] make: *** [prepare] Error 1
[00:02:30] Makefile:81: recipe for target 'prepare' failed
[00:02:30] The command has failed after 5 attempts.
---
travis_time:end:22725a66:start=1537882223351525573,finish=1537882223358473768,duration=6948195
travis_fold:end:after_failure.3
travis_fold:start:after_failure.4
travis_time:start:063d3483
$ 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:031e52c3
travis_time:start:031e52c3
$ 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:127cceea
$ 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)

@csmoe csmoe force-pushed the csmoe:place2 branch 3 times, most recently from c18a525 to 0e689b1 Sep 25, 2018

Some((projection, place_elems)) => (
NeoPlace {
base: self.clone().base,
elems: tcx.intern_place_elems(place_elems),

This comment has been minimized.

@nikomatsakis

nikomatsakis Sep 25, 2018

Contributor

There is no need to intern again here; just use place_elems directly. It is already pointing into interned memory, right?

@bors

This comment has been minimized.

Contributor

bors commented Dec 8, 2018

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

@csmoe csmoe force-pushed the csmoe:place2 branch from 26ba4ac to c04e9ee Dec 9, 2018

@nikomatsakis

This comment has been minimized.

Contributor

nikomatsakis commented Dec 11, 2018

@csmoe ooh travis is happy =)

@bors

This comment has been minimized.

Contributor

bors commented Dec 14, 2018

☔️ The latest upstream changes (presumably #56536) 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