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

Be more permissive with required bounds on existential types #57896

Open
wants to merge 10 commits into
base: master
from

Conversation

Projects
None yet
8 participants
@oli-obk
Copy link
Contributor

oli-obk commented Jan 25, 2019

fixes #54184

r? @pnkfelix

@rust-highfive

This comment was marked as outdated.

Copy link
Collaborator

rust-highfive commented Jan 25, 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:2808cc92:start=1548429521201394146,finish=1548429619795964557,duration=98594570411
$ 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
Setting environment variables from .travis.yml
$ export IMAGE=x86_64-gnu-llvm-6.0
---
[01:00:14] ..................................................................................................ii 1000/5330
[01:00:18] iii................................................................................................. 1100/5330
[01:00:21] .................................................................................................... 1200/5330
[01:00:23] .................................................................................................... 1300/5330
[01:00:26] ........................................................................F............F.............. 1400/5330
[01:00:31] ........................................................................................i........... 1600/5330
[01:00:34] ..............................................................i..................................... 1700/5330
[01:00:38] .................................................................................................... 1800/5330
[01:00:41] .................................................................................................... 1900/5330
---
[01:02:46] 
[01:02:46] - error[E0091]: type parameter `U` is unused
[01:02:46] -   --> $DIR/generic_duplicate_param_use.rs:5:25
[01:02:46] -    |
[01:02:46] - LL | existential type Two<T, U>: 'static; //~ ERROR type parameter `U` is unused
[01:02:46] -    |                         ^ unused type parameter
[01:02:46] - error: aborting due to previous error
[01:02:46] - 
[01:02:46] - For more information about this error, try `rustc --explain E0091`.
[01:02:46] - 
[01:02:46] - 
[01:02:46] 
[01:02:46] 
[01:02:46] error: failed to delete `/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/existential_types/generic_duplicate_param_use/generic_duplicate_param_use.stderr`: No such file or directory (os error 2)
[01:02:46] note: Run with `RUST_BACKTRACE=1` for a backtrace.
[01:02:46] 
[01:02:46] ---- [ui] ui/existential_types/unused_generic_param.rs stdout ----
[01:02:46] diff of stderr:
[01:02:46] diff of stderr:
[01:02:46] 
[01:02:46] - error[E0091]: type parameter `T` is unused
[01:02:46] -   --> $DIR/unused_generic_param.rs:6:35
[01:02:46] -    |
[01:02:46] - LL | existential type PartiallyDefined<T>: 'static; //~ `T` is unused
[01:02:46] -    |                                   ^ unused type parameter
[01:02:46] - 
[01:02:46] - error[E0091]: type parameter `T` is unused
[01:02:46] -   --> $DIR/unused_generic_param.rs:12:36
[01:02:46] -    |
[01:02:46] - LL | existential type PartiallyDefined2<T>: 'static; //~ `T` is unused
[01:02:46] -    |                                    ^ unused type parameter
[01:02:46] - error: aborting due to 2 previous errors
[01:02:46] - 
[01:02:46] - For more information about this error, try `rustc --explain E0091`.
[01:02:46] - 
[01:02:46] - 
[01:02:46] 
[01:02:46] 
[01:02:46] error: failed to delete `/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/existential_types/unused_generic_param/unused_generic_param.stderr`: No such file or directory (os error 2)
[01:02:46] 
[01:02:46] 
[01:02:46] failures:
[01:02:46]     [ui] ui/existential_types/generic_duplicate_param_use.rs
[01:02:46]     [ui] ui/existential_types/generic_duplicate_param_use.rs
[01:02:46]     [ui] ui/existential_types/unused_generic_param.rs
[01:02:46] 
[01:02:46] test result: FAILED. 5305 passed; 2 failed; 23 ignored; 0 measured; 0 filtered out
[01:02:46] 
[01:02:46] thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:495:22
[01:02:46] 
[01:02:46] 
[01:02:46] command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-6.0/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "6.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
[01:02:46] 
[01:02:46] 
[01:02:46] failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
[01:02:46] Build completed unsuccessfully in 0:04:00
[01:02:46] Build completed unsuccessfully in 0:04:00
[01:02:46] Makefile:48: recipe for target 'check' failed
[01:02:46] make: *** [check] Error 1
The command "stamp sh -x -c "$RUN_SCRIPT"" exited with 2.
travis_time:start:3952679e
$ date && (curl -fs --head https://google.com | grep ^Date: | sed 's/Date: //g' || true)
Fri Jan 25 16:23:15 UTC 2019

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)

@oli-obk

This comment has been minimized.

Copy link
Contributor Author

oli-obk commented Jan 28, 2019

So... I was looking at the various examples and found one reason not to just outright treat any generic parameter equal to any other generic parameter, as long as all the other types match up. My considerations basically boil down to: if

fn foo<T>() -> Foo<T, T> { ... }
fn bar<T, U>() -> Foo<T, U> { ... }
fn mep<U, T>() -> Foo<T, U> { ... }

all are defining uses as long as the concrete type they return has the same structure. Then the following concrete return types are ok:

foo bar meh
Vec Vec Vec Vec Vec Vec
T T T, U T, U
tuple (T, T) (T, U), (U, T), (T, T), (U, U) (T, U), (U, T), (T, T), (U, U)
tuple2 (T, u32, T) (T, u32, U), (U, u32, T), (T, u32, T), (U, u32, U) (T, u32, U), (U, u32, T), (T, u32, T), (U, u32, U)

So if we chose the tuple variant:

fn foo<T: Copy>(t: T) -> Foo<T, T> { (t, t) }
fn bar<T, U>(t: T, u: U) -> Foo<T, U> { (t, u) }
fn mep<U, T>(u: U, t: T) -> Foo<T, U> { (t, u) }

Means that, assuming we could reveal existential types, the following would compile:

let _: (&str, &str) = foo("foo"); // Foo<&str, &str>
let _: (&str, i32) = bar("", 42); // Foo<&str, i32>
let _: (&str, i32) = mep(42, ""); // Foo<&str, i32>
let _: (i32, &str) = bar(42, ""); // Foo<i32, &str>
let _: (i32, &str) = mep("", 42); // Foo<i32, &str>

Now if we swapped the (t, u) in mep:

fn foo<T: Copy>(t: T) -> Foo<T, T> { (t, t) }
fn bar<T, U>(t: T, u: U) -> Foo<T, U> { (t, u) }
fn mep<U, T>(u: U, t: T) -> Foo<T, U> { (u, t) }

We'd get

let _: (&str, &str) = foo("foo"); // Foo<&str, &str>
let _: (&str, i32) = bar("", 42); // Foo<&str, i32>
let _: (i32, &str) = mep(42, ""); // Foo<&str, i32>
let _: (i32, &str) = bar(42, ""); // Foo<i32, &str>
let _: (&str, i32) = mep("", 42); // Foo<i32, &str>

Which would mean that Foo<i32, &str> could resolve both to (i32, &str) and (&str, i32), which is clearly wrong.

Which means we need to take the generic parameters from the existential type and not the function parameters, because the latter are irrelevant.

For simplicity (and forward compat to a more lenient approach), I will make it so that

fn foo<T>() -> Foo<T, T> { ... }
fn bar<T, U>() -> Foo<T, U> { ... }

and

fn foo<T>() -> Foo<T, T> { ... }
fn mep<U, T>() -> Foo<T, U> { ... }

are forbidden, but

fn bar<T, U>() -> Foo<T, U> { ... }
fn mep<U, T>() -> Foo<T, U> { ... }

and

fn bar<T, U>() -> Foo<T, U> { ... }
fn mep<T, U>() -> Foo<U, T> { ... }

are allowed as long as there is an injective mapping from Foo<X, Y> to the concrete type

@oli-obk oli-obk force-pushed the oli-obk:permissive_existence branch from 24e93ee to a4cda21 Jan 29, 2019

@oli-obk

This comment has been minimized.

Copy link
Contributor Author

oli-obk commented Jan 30, 2019

r? @cramertj This PR is ready now

@rust-highfive rust-highfive assigned cramertj and unassigned pnkfelix Jan 30, 2019

@bors

This comment was marked as resolved.

Copy link
Contributor

bors commented Feb 1, 2019

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

@oli-obk oli-obk force-pushed the oli-obk:permissive_existence branch from a4cda21 to f2241f6 Feb 1, 2019

@cramertj

This comment has been minimized.

Copy link
Member

cramertj commented Feb 5, 2019

Talked at the all hands-- I'm still of the opinion that we can't allow defining uses which don't keep both type parameters as fully universal:

existential type X<A, B>;

fn foo<A>(a: A) -> X<A, u32> {
    (a, 5u32)
}

This could force the concrete type to be X<A,B> = (A, B), or it could be X<A, B> = (A, u32), we don't know which one it is (it could also be something like X<A, B> = (A, <A as SomeTrait>::Output))

@oli-obk

This comment has been minimized.

Copy link
Contributor Author

oli-obk commented Feb 13, 2019

So... we've come full circle. We are now again requiring defining uses to use all the generic parameters of the existential type in the concrete type.

@cramertj

This comment has been minimized.

Copy link
Member

cramertj commented Feb 13, 2019

I'm a bit confused by the latest error. It's fine to not use the generic parameter in the concrete type, but each generic parameter has to be left fully variant in the type signature of the function that includes the defining use. The example you added unambiguously (afaict) does not use type U, which is fine. The thing that wouldn't be fine would be if it is unclear whether or not it uses U.

@oli-obk oli-obk force-pushed the oli-obk:permissive_existence branch from f000382 to eb98d31 Feb 14, 2019

@oli-obk

This comment has been minimized.

Copy link
Contributor Author

oli-obk commented Feb 14, 2019

Yea that was a brain-afk moment for me. I cleaned it up and it makes much more sense now (and still fixes the original issue that caused this PR)

Right now we are erroring on all potential defining uses that end up not being a defining use. As a next step (separate from this PR), we can instead collect all the potential sites and add them as notes to the "no defining use" error. If a single defining use site exists, we don't need to emit an error for the potential use sites (except if their concrete types conflict with the defining use sites)

@cramertj

This comment has been minimized.

Copy link
Member

cramertj commented Feb 14, 2019

Nice, this looks good to me! Thanks for the fixes :)

@bors r+

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 14, 2019

📌 Commit eb98d31 has been approved by cramertj

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 15, 2019

⌛️ Testing commit eb98d31 with merge 08a8932...

bors added a commit that referenced this pull request Feb 15, 2019

Auto merge of #57896 - oli-obk:permissive_existence, r=cramertj
 Be more permissive with required bounds on existential types

fixes  #54184

r? @pnkfelix
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 15, 2019

💔 Test failed - checks-travis

@RalfJung

This comment has been minimized.

Copy link
Member

RalfJung commented Feb 15, 2019

Same macOS failure as in other PRs...

Cc @rust-lang/infra

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 15, 2019

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.

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)

@pietroalbini

This comment has been minimized.

Copy link
Member

pietroalbini commented Feb 15, 2019

@bors retry -- apparently we can't clone the repo anymore on macOS

@pietroalbini

This comment has been minimized.

Copy link
Member

pietroalbini commented Feb 15, 2019

@bors retry -- apparently we can't clone the repo anymore on macOS

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 16, 2019

⌛️ Testing commit eb98d31 with merge 6dc850d...

bors added a commit that referenced this pull request Feb 16, 2019

Auto merge of #57896 - oli-obk:permissive_existence, r=cramertj
 Be more permissive with required bounds on existential types

fixes  #54184

r? @pnkfelix
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 16, 2019

💔 Test failed - checks-travis

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 16, 2019

The job dist-i686-linux 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.
 95 82.1M   95 78.7M    0     0  2197k      0  0:00:38  0:00:36  0:00:02 2196k
 98 82.1M   98 81.1M    0     0  2205k      0  0:00:38  0:00:37  0:00:01 2391k
100 82.1M  100 82.1M    0     0  2209k      0  0:00:38  0:00:38 --:--:-- 2382k
[00:05:17] + cd gcc-4.8.5
[00:05:17] + sed -i 's|ftp://gcc\.gnu\.org/|http://gcc.gnu.org/|g' ./contrib/download_prerequisites
[00:05:17] --2019-02-16 06:54:49--  http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
[00:05:17] Resolving gcc.gnu.org... 209.132.180.131
[00:05:17] Connecting to gcc.gnu.org|209.132.180.131|:80... connected.
[00:05:17] HTTP request sent, awaiting response... 200 OK
---
[00:44:03]  ---> 53189f0c88f2
[00:44:03] Step 25/41 : RUN ./build-clang.sh
[00:44:03]  ---> Running in 3151550acbdb
[00:44:04] + source shared.sh
[00:44:04] + LLVM=032b00a5404865765cda7db3039f39d54964d8b0
[00:44:04] + LLD=3e4aa4e8671523321af51449e0569f455ef3ad43
[00:44:04] + CLANG=a6b9739069763243020f4ea6fe586bc135fde1f9
[00:44:04] + mkdir clang
[00:44:04] + cd clang
[00:44:04] + curl -L https://github.com/llvm-mirror/llvm/archive/032b00a5404865765cda7db3039f39d54964d8b0.tar.gz
[00:44:04] + tar xzf - --strip-components=1
[00:44:04]                                  Dload  Upload   Total   Spent    Left  Speed
[00:44:04] 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   158    0   158    0     0    762      0 --:--:-- --:--:-- --:--:--   806
---
100 9540k    0 9540k    0     0  4283k      0 --:--:--  0:00:02 --:--:-- 5600k
100 14.6M    0 14.6M    0     0  4644k      0 --:--:--  0:00:03 --:--:-- 5521k
100 17.1M    0 17.1M    0     0  4945k      0 --:--:--  0:00:03 --:--:-- 5867k
[00:44:16] + mkdir -p tools/lld
[00:44:16] + tar zxf - --strip-components=1 -C tools/lld
[00:44:16] + curl -L https://github.com/llvm-mirror/lld/archive/3e4aa4e8671523321af51449e0569f455ef3ad43.tar.gz
[00:44:16]                                  Dload  Upload   Total   Spent    Left  Speed
[00:44:16] 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   157    0   157    0     0    814      0 --:--:-- --:--:-- --:--:--   830
100   157    0   157    0     0    814      0 --:--:-- --:--:-- --:--:--   830
[00:44:16] 
100 1346k    0 1346k    0     0  2146k      0 --:--:-- --:--:-- --:--:-- 2146k
[00:44:16] + mkdir clang-build
[00:44:16] + cd clang-build
[00:44:16] + INC=/rustroot/include
[00:44:16] + INC=/rustroot/include:/rustroot/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed
[00:44:16] + INC=/rustroot/include:/rustroot/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed:/usr/include
[00:44:16] + hide_output cmake .. -DCMAKE_C_COMPILER=/rustroot/bin/gcc -DCMAKE_CXX_COMPILER=/rustroot/bin/g++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/rustroot -DLLVM_TARGETS_TO_BUILD=X86 -DC_INCLUDE_DIRS=/rustroot/include:/rustroot/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed:/usr/include
[00:44:46] Sat Feb 16 07:34:19 UTC 2019 - building ...
[00:44:53] + hide_output make -j10
[00:44:53] + set +x
[00:45:23] Sat Feb 16 07:34:55 UTC 2019 - building ...
---
[01:54:03]  ---> fed169bab981
[01:54:03] Step 32/41 : RUN ./build-perl.sh
[01:54:03]  ---> Running in 6550ce607346
[01:54:04] + source shared.sh
[01:54:04] + curl https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz
[01:54:04]   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
[01:54:04]                                  Dload  Upload   Total   Spent    Left  Speed
[01:54:05] 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
---
[02:59:14] [RUSTC-TIMING] tendril test:false 1.030
[02:59:14]    Compiling clap v2.32.0
[02:59:14]    Compiling phf_generator v0.7.22
[02:59:14]    Compiling url v1.7.2
The job exceeded the maximum time limit for jobs, and has been terminated.

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)

@oli-obk

This comment has been minimized.

Copy link
Contributor Author

oli-obk commented Feb 16, 2019

@bors retry timout

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 16, 2019

⌛️ Testing commit eb98d31 with merge 235a5f7...

bors added a commit that referenced this pull request Feb 16, 2019

Auto merge of #57896 - oli-obk:permissive_existence, r=cramertj
 Be more permissive with required bounds on existential types

fixes  #54184

r? @pnkfelix
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 16, 2019

💔 Test failed - checks-travis

@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Feb 16, 2019

The job dist-i686-linux 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.
 93 82.1M   93 77.0M    0     0  1547k      0  0:00:54  0:00:51  0:00:03 2758k
 97 82.1M   97 79.8M    0     0  1570k      0  0:00:53  0:00:52  0:00:01 2819k
100 82.1M  100 82.1M    0     0  1592k      0  0:00:52  0:00:52 --:--:-- 2861k
[00:05:28] + cd gcc-4.8.5
[00:05:28] + sed -i 's|ftp://gcc\.gnu\.org/|http://gcc.gnu.org/|g' ./contrib/download_prerequisites
[00:05:28] --2019-02-16 12:57:23--  http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
[00:05:28] Resolving gcc.gnu.org... 209.132.180.131
[00:05:28] Connecting to gcc.gnu.org|209.132.180.131|:80... connected.
[00:05:29] HTTP request sent, awaiting response... 200 OK
---
[00:42:26]  ---> a4e8d576cc17
[00:42:26] Step 25/41 : RUN ./build-clang.sh
[00:42:26]  ---> Running in 79a2496171af
[00:42:26] + source shared.sh
[00:42:26] + LLVM=032b00a5404865765cda7db3039f39d54964d8b0
[00:42:26] + LLD=3e4aa4e8671523321af51449e0569f455ef3ad43
[00:42:26] + CLANG=a6b9739069763243020f4ea6fe586bc135fde1f9
[00:42:26] + mkdir clang
[00:42:26] + cd clang
[00:42:26] + curl -L https://github.com/llvm-mirror/llvm/archive/032b00a5404865765cda7db3039f39d54964d8b0.tar.gz
[00:42:26] + tar xzf - --strip-components=1
[00:42:26]                                  Dload  Upload   Total   Spent    Left  Speed
[00:42:27] 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
---
100 8816k    0 8816k    0     0  4461k      0 --:--:--  0:00:01 --:--:-- 5694k
100 13.7M    0 13.7M    0     0  4748k      0 --:--:--  0:00:02 --:--:-- 5503k
100 17.1M    0 17.1M    0     0  5013k      0 --:--:--  0:00:03 --:--:-- 5716k
[00:42:38] + mkdir -p tools/lld
[00:42:38] + curl -L https://github.com/llvm-mirror/lld/archive/3e4aa4e8671523321af51449e0569f455ef3ad43.tar.gz
[00:42:38] + tar zxf - --strip-components=1 -C tools/lld
[00:42:38]                                  Dload  Upload   Total   Spent    Left  Speed
[00:42:38] 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   157    0   157    0     0    727      0 --:--:-- --:--:-- --:--:--   740
---
[00:42:39] + cd clang-build
[00:42:39] + INC=/rustroot/include
[00:42:39] + INC=/rustroot/include:/rustroot/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed
[00:42:39] + INC=/rustroot/include:/rustroot/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed:/usr/include
[00:42:39] + hide_output cmake .. -DCMAKE_C_COMPILER=/rustroot/bin/gcc -DCMAKE_CXX_COMPILER=/rustroot/bin/g++ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/rustroot -DLLVM_TARGETS_TO_BUILD=X86 -DC_INCLUDE_DIRS=/rustroot/include:/rustroot/lib/gcc/x86_64-unknown-linux-gnu/4.8.5/include-fixed:/usr/include
[00:43:09] Sat Feb 16 13:35:04 UTC 2019 - building ...
[00:43:14] + hide_output make -j10
[00:43:14] + set +x
[00:43:44] Sat Feb 16 13:35:39 UTC 2019 - building ...
---
[01:50:32]  ---> 4a096348fc26
[01:50:32] Step 32/41 : RUN ./build-perl.sh
[01:50:32]  ---> Running in f043392dc0e4
[01:50:33] + source shared.sh
[01:50:33] + curl https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz
[01:50:33]   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
[01:50:33]                                  Dload  Upload   Total   Spent    Left  Speed
[01:50:34] 
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0

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)

@kennytm

This comment has been minimized.

Copy link
Member

kennytm commented Feb 16, 2019

@bors retry

3 hour timeout 🤔 (caused by rebuilding docker images)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment