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

Separate unsized fn param from unsized locals #72029

Closed

Conversation

spastorino
Copy link
Member

@spastorino spastorino commented May 8, 2020

Closes #71694

@rust-highfive
Copy link
Collaborator

r? @varkor

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

@rust-highfive rust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 8, 2020
@spastorino
Copy link
Member Author

r? @pnkfelix @eddyb

@rust-highfive rust-highfive assigned pnkfelix and unassigned varkor May 8, 2020
@spastorino spastorino force-pushed the separate-unsized-locals branch from 1f81b5c to c072dc1 Compare May 8, 2020 22:39
@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed (pretty log, 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.
##[section]Starting: Linux mingw-check
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 6'
Agent machine name: 'fv-az578'
Current agent version: '2.168.2'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200430.2
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200430.2/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.1)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/98f560b1-ffeb-491b-9805-68353affde97.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> 3adb0605cc65
Step 6/7 : ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
 ---> Using cache
 ---> 28dbc326cb7f
Step 7/7 : ENV SCRIPT python3 ../x.py test src/tools/expand-yaml-anchors &&            python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu &&            python3 ../x.py build --stage 0 src/tools/build-manifest &&            python3 ../x.py test --stage 0 src/tools/compiletest &&            python3 ../x.py test src/tools/tidy &&            python3 ../x.py doc --stage 0 src/libstd &&            /scripts/validate-toolstate.sh
 ---> 537a01811900
Successfully built 537a01811900
Successfully tagged rust-ci:latest
Built container sha256:537a018119009dc218456238dec90b5530050db1e2a1e166550c218003f6159d
---
  local time: Fri May  8 22:44:53 UTC 2020
  network time: Fri, 08 May 2020 22:44:53 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (4759) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@spastorino spastorino force-pushed the separate-unsized-locals branch from c072dc1 to 8a0d3f6 Compare May 8, 2020 23:20
@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed (pretty log, 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.
##[section]Starting: Linux mingw-check
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 11'
Agent machine name: 'fv-az578'
Current agent version: '2.168.2'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200430.2
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200430.2/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.1)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/3ca27bb8-731f-46ed-8268-d11fe59167dc.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> 3adb0605cc65
Step 6/7 : ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
 ---> Using cache
 ---> 28dbc326cb7f
Step 7/7 : ENV SCRIPT python3 ../x.py test src/tools/expand-yaml-anchors &&            python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu &&            python3 ../x.py build --stage 0 src/tools/build-manifest &&            python3 ../x.py test --stage 0 src/tools/compiletest &&            python3 ../x.py test src/tools/tidy &&            python3 ../x.py doc --stage 0 src/libstd &&            /scripts/validate-toolstate.sh
 ---> 537a01811900
Successfully built 537a01811900
Successfully tagged rust-ci:latest
Built container sha256:537a018119009dc218456238dec90b5530050db1e2a1e166550c218003f6159d
---
    Checking rustc_feature v0.0.0 (/checkout/src/librustc_feature)
    Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
    Checking rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
    Checking rustc_hir v0.0.0 (/checkout/src/librustc_hir)
    Checking rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
    Checking rustc_parse v0.0.0 (/checkout/src/librustc_parse)
    Checking rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
    Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
    Checking rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
---
configure: build.locked-deps    := True
configure: rust.dist-src        := False
configure: rust.channel         := nightly
configure: llvm.ccache          := sccache
configure: build.configure-args := ['--enable-sccache', '--disable-manage-submodu ...
configure: writing `config.toml` in current directory
configure: 
configure: run `python /checkout/x.py --help`
configure: 
---
Hugepagesize:       2048 kB
DirectMap4k:      128960 kB
DirectMap2M:     4065280 kB
DirectMap1G:     5242880 kB
+ python3 ../x.py test src/tools/expand-yaml-anchors
Ensuring the YAML anchors in the GitHub Actions config were expanded
Ensuring the YAML anchors in the GitHub Actions config were expanded
Building stage0 tool expand-yaml-anchors (x86_64-unknown-linux-gnu)
   Compiling unicode-xid v0.2.0
   Compiling syn v1.0.11
   Compiling linked-hash-map v0.5.2
   Compiling lazy_static v1.4.0
   Compiling lazy_static v1.4.0
   Compiling yaml-rust v0.4.3
   Compiling quote v1.0.2
   Compiling thiserror-impl v1.0.5
   Compiling thiserror v1.0.5
   Compiling yaml-merge-keys v0.4.0
   Compiling expand-yaml-anchors v0.1.0 (/checkout/src/tools/expand-yaml-anchors)
Build completed successfully in 0:00:27
+ python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu
    Finished dev [unoptimized] target(s) in 0.18s
Checking rustdoc artifacts (x86_64-unknown-linux-gnu -> i686-pc-windows-gnu)
---
    Checking rustc_feature v0.0.0 (/checkout/src/librustc_feature)
    Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
    Checking rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
    Checking rustc_hir v0.0.0 (/checkout/src/librustc_hir)
    Checking rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
    Checking rustc_parse v0.0.0 (/checkout/src/librustc_parse)
    Checking rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
    Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
    Checking rustc_ast_passes v0.0.0 (/checkout/src/librustc_ast_passes)
---
    Finished release [optimized] target(s) in 23.14s
tidy check
* 596 error codes
* highest error code: E0753
Expected a gate test for the feature 'unsized_fn_params'.
Hint: create a failing test file named 'feature-gate-unsized_fn_params.rs'
      in the 'ui' test suite, with its failures due to
      missing usage of `#![feature(unsized_fn_params)]`.
Hint: If you already have such a test and don't want to rename it,
      you can also add a // gate-test-unsized_fn_params line to the test file.
tidy error: Found 1 features without a gate test.
some tidy checks failed
Found 492 error codes
Found 0 error codes with no tests
Done!
Done!


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"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
Build completed unsuccessfully in 0:00:34
Build completed unsuccessfully in 0:00:34
== clock drift check ==
  local time: Sat May  9 00:34:03 UTC 2020
  network time: Sat, 09 May 2020 00:34:03 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (4024) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@@ -1,4 +1,5 @@
#![feature(unsized_locals)]
//~^ WARN the feature `unsized_locals` is incomplete and may cause the compiler to crash
Copy link
Member

Choose a reason for hiding this comment

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

That message doesn't really capture "or produce wrong code".

I am changing the message to something more appropriate for cases like this in #71420, but that PR is seemingly stuck unfortunately.

Copy link
Member

Choose a reason for hiding this comment

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

I'll make a PR with just the message change.

@RalfJung
Copy link
Member

RalfJung commented May 9, 2020

Ideally we'd have a sanity check in codegen to make sure we only reach the "dynamic alloca" path (confusingly called "array alloca" in codegen and not to be confused with dynamic_alloca which is static in size) when this feature is enabled.

But I think we can get there when the feature was enabled anywhere in the crate tree, so... not sure if there is a good way to do that.

RalfJung added a commit to RalfJung/rust that referenced this pull request May 11, 2020
…ochenkov

Incomplete features can also be unsound

Some incomplete features do not just ICE, they are also currently unsound (e.g. rust-lang#72029, and also `specialization` -- which is not yet marked incomplete but [should be](rust-lang#71420)). This makes the message reflect that.

While at it I also added a link to the tracking issue, which hopefully should explain what is incomplete/unsound about the feature.
RalfJung added a commit to RalfJung/rust that referenced this pull request May 14, 2020
…ochenkov

Incomplete features can also be unsound

Some incomplete features do not just ICE, they are also currently unsound (e.g. rust-lang#72029, and also `specialization` -- which is not yet marked incomplete but [should be](rust-lang#71420)). This makes the message reflect that.

While at it I also added a link to the tracking issue, which hopefully should explain what is incomplete/unsound about the feature.
RalfJung added a commit to RalfJung/rust that referenced this pull request May 16, 2020
…ochenkov

Incomplete features can also be unsound

Some incomplete features do not just ICE, they are also currently unsound (e.g. rust-lang#72029, and also `specialization` -- which is not yet marked incomplete but [should be](rust-lang#71420)). This makes the message reflect that.

While at it I also added a link to the tracking issue, which hopefully should explain what is incomplete/unsound about the feature.
@spastorino
Copy link
Member Author

spastorino commented May 18, 2020

Tests are failing here because I still didn't add a gate test for the feature unsized_fn_params.
So I need to add a test that passes with the feature flag but fails without it and I'm not sure how to find one exactly. Tried this ...

#![feature(unsized_locals)]
#![feature(unsized_fn_params)]

use std::any::Any;

#[repr(align(256))]
#[allow(dead_code)]
struct A {
    v: u8,
}

impl A {
    fn f(&self) -> *const A {
        assert_eq!(self as *const A as usize % 256, 0);
        self
    }
}

fn foo(x: Box<dyn Any>) {
    let x = *x;
    let dwncst = x.downcast_ref::<A>().unwrap();
    let addr = dwncst.f();
    assert_eq!(addr as usize % 256, 0);
}

fn main() {
    let x = Box::new(A { v: 4 });
    foo(x);
}

But this seems to be the case described in #71416 that doesn't work with the feature flag added. I'm still unsure why, need to investigate a bit on that.

cc @RalfJung

@spastorino spastorino force-pushed the separate-unsized-locals branch 2 times, most recently from 1a62fe8 to e8d880a Compare May 18, 2020 19:16
@spastorino
Copy link
Member Author

Just migrated some of the code from unsized_locals to use the new flag unsized_fn_params. I'm not sure if there's more stuff I should migrate but right now, this test ...

#![feature(unsized_fn_params)]

#[repr(align(256))]
#[allow(dead_code)]
struct A {
    v: u8,
}

trait Foo {
    fn foo(&self);
}

impl Foo for A {
    fn foo(&self) {
        assert_eq!(self as *const A as usize % 256, 0);
    }
}

fn foo(x: dyn Foo) {
    x.foo()
}

fn main() {
    let x: Box<dyn Foo> = Box::new(A { v: 22 });
    foo(*x);
}

Gives ...

error[E0277]: the size for values of type `(dyn Foo + 'static)` cannot be known at compilation time
  --> src/test/ui/feature-gates/feature-gate-unsized_fn_params.rs:19:8
   |
19 | fn foo(x: dyn Foo) {
   |        ^ doesn't have a size known at compile-time
   |
   = help: the trait `std::marker::Sized` is not implemented for `(dyn Foo + 'static)`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all local variables must have a statically known size
   = help: unsized locals are gated as an unstable feature

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.

Unsure what else I should have migrated.

@rust-highfive
Copy link
Collaborator

The job mingw-check of your PR failed (pretty log, 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.
##[section]Starting: Linux mingw-check
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 37'
Agent machine name: 'fv-az578'
Current agent version: '2.168.2'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200512.2
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200512.2/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.2)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/2b7371be-2d99-4e7c-9be1-d749fdd90228.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> 3adb0605cc65
Step 6/7 : ENV RUN_CHECK_WITH_PARALLEL_QUERIES 1
 ---> Using cache
 ---> 28dbc326cb7f
Step 7/7 : ENV SCRIPT python3 ../x.py test src/tools/expand-yaml-anchors &&            python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu &&            python3 ../x.py build --stage 0 src/tools/build-manifest &&            python3 ../x.py test --stage 0 src/tools/compiletest &&            python3 ../x.py test src/tools/tidy &&            python3 ../x.py doc --stage 0 src/libstd &&            /scripts/validate-toolstate.sh
 ---> 537a01811900
Successfully built 537a01811900
Successfully tagged rust-ci:latest
Built container sha256:537a018119009dc218456238dec90b5530050db1e2a1e166550c218003f6159d
---
    Checking rustc_feature v0.0.0 (/checkout/src/librustc_feature)
    Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
    Checking rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
    Checking rustc_hir v0.0.0 (/checkout/src/librustc_hir)
    Checking rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
    Checking chalk-rust-ir v0.10.0
    Checking rustc_parse v0.0.0 (/checkout/src/librustc_parse)
    Checking rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
    Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
configure: rust.verify-llvm-ir  := True
configure: rust.debug-assertions := True
configure: llvm.ccache          := sccache
configure: build.cargo-native-static := True
configure: build.configure-args := ['--enable-sccache', '--disable-manage-submodu ...
configure: writing `config.toml` in current directory
configure: 
configure: run `python /checkout/x.py --help`
configure: 
---
Hugepagesize:       2048 kB
DirectMap4k:      137152 kB
DirectMap2M:     4057088 kB
DirectMap1G:     5242880 kB
+ python3 ../x.py test src/tools/expand-yaml-anchors
Ensuring the YAML anchors in the GitHub Actions config were expanded
Ensuring the YAML anchors in the GitHub Actions config were expanded
Building stage0 tool expand-yaml-anchors (x86_64-unknown-linux-gnu)
   Compiling unicode-xid v0.2.0
   Compiling syn v1.0.11
   Compiling linked-hash-map v0.5.2
   Compiling lazy_static v1.4.0
   Compiling lazy_static v1.4.0
   Compiling yaml-rust v0.4.3
   Compiling quote v1.0.2
   Compiling thiserror-impl v1.0.5
   Compiling thiserror v1.0.5
   Compiling yaml-merge-keys v0.4.0
   Compiling expand-yaml-anchors v0.1.0 (/checkout/src/tools/expand-yaml-anchors)
Build completed successfully in 0:00:32
+ python3 ../x.py check --target=i686-pc-windows-gnu --host=i686-pc-windows-gnu
    Finished dev [unoptimized] target(s) in 0.24s
Checking rustdoc artifacts (x86_64-unknown-linux-gnu -> i686-pc-windows-gnu)
---
    Checking rustc_feature v0.0.0 (/checkout/src/librustc_feature)
    Checking fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
    Checking rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
    Checking rustc_hir v0.0.0 (/checkout/src/librustc_hir)
    Checking rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
    Checking chalk-rust-ir v0.10.0
    Checking rustc_parse v0.0.0 (/checkout/src/librustc_parse)
    Checking rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
    Checking rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
    Finished release [optimized] target(s) in 25.90s
tidy check
* 597 error codes
* highest error code: E0754
tidy error: Found 1 features without a gate test.
Expected a gate test for the feature 'unsized_fn_params'.
Hint: create a failing test file named 'feature-gate-unsized_fn_params.rs'
      in the 'ui' test suite, with its failures due to
      missing usage of `#![feature(unsized_fn_params)]`.
Hint: If you already have such a test and don't want to rename it,
      you can also add a // gate-test-unsized_fn_params line to the test file.
some tidy checks failed
Found 493 error codes
Found 0 error codes with no tests
Done!
Done!


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"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test src/tools/tidy
Build completed unsuccessfully in 0:00:35
Build completed unsuccessfully in 0:00:35
== clock drift check ==
  local time: Mon May 18 19:37:29 UTC 2020
  network time: Mon, 18 May 2020 19:37:29 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (3535) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@RalfJung
Copy link
Member

RalfJung commented May 19, 2020

So I need to add a test that passes with the feature flag but fails without it and I'm not sure how to find one exactly. Tried this ...

With which feature flag? For the "sound unsized locals" flag, the existing code for FnOnce should do it. I presume that's the one you mean. Just take the code from #68304 and replace FnOnce by a local trait.

And for the "unsound unsized locals" flag, the test in #71416 is the right one -- but that test is different from what you quoted! Having mk in a different function is very important, otherwise the stack will be sufficiently aligned before the unsizing conversion even happens. So I am very confused both by the question and by what you are saying about the example code you gave and why this test would be relevant for the new sound feature flag at all.

So there should be a test ensuring that even with the sound feature flag, the test in #71416 gets rejected.

@RalfJung
Copy link
Member

Just migrated some of the code from unsized_locals to use the new flag unsized_fn_params. I'm not sure if there's more stuff I should migrate but right now, this test ...

That test looks like it should pass, unsized stuff is only used in argument position so can be passed by reference to the heap.

@spastorino
Copy link
Member Author

@RalfJung to clarify a bit ...

Right now what the PR tries to do is to split all that is related to unsized_fn_params (this is the new flag I'm taking about) from what already exists in unsized_locals. I need a test that passes with unsized_fn_params and fails without it.
For this purpose I'm using ...

#![feature(unsized_fn_params)]

#[repr(align(256))]
#[allow(dead_code)]
struct A {
    v: u8,
}

trait Foo {
    fn foo(&self);
}

impl Foo for A {
    fn foo(&self) {
        assert_eq!(self as *const A as usize % 256, 0);
    }
}

fn foo(x: dyn Foo) {
    x.foo()
}

fn main() {
    let x: Box<dyn Foo> = Box::new(A { v: 22 });
    foo(*x);
}

Which I think should suffice, but getting ...

error[E0277]: the size for values of type `(dyn Foo + 'static)` cannot be known at compilation time
  --> src/test/ui/feature-gates/feature-gate-unsized_fn_params.rs:19:8
   |
19 | fn foo(x: dyn Foo) {
   |        ^ doesn't have a size known at compile-time
   |
   = help: the trait `std::marker::Sized` is not implemented for `(dyn Foo + 'static)`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all local variables must have a statically known size
   = help: unsized locals are gated as an unstable feature

error: aborting due to previous error

For more information about this error, try `rustc --explain E0277`.

And I currently don't know why exactly. As you can see here, here, here and here, I've migrated existing code to use the new flag but it seems that I'm lacking something because the error I'm getting.

That's the current problem I'm having, then I can go back the tidy asking for a test with the feature flag (unsized_fn_params) and all that but for now, what I've described above is the problem I'm hitting.

@pnkfelix
Copy link
Member

pnkfelix commented May 19, 2020

@spastorino wrote:

As you can see here, here, here and here, I've migrated existing code to use the new flag but it seems that I'm lacking something because the error I'm getting.

I skimmed over the branch and noticed a few places in visit_pat code where your branch is looking solely for the unsized_locals feature. Those spots will probably need to be modified/generalized in some way to also behave properly when the unsized_fn_params feature is on, if and only if the pat in question is a fn param.

(This is a consequence of the general observation that fn params are a special case of patterns...)

(The above note is a summary of commentary I wrote on zulip over here)

@pnkfelix pnkfelix added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 19, 2020
@RalfJung
Copy link
Member

Yeah, looks to me like there are "just" a few places where the code still checks for the wrong feature gate. I think the test case is right.

I don't think I can help with this, I have no familiarity with this code.

@@ -1,4 +1,5 @@
#![feature(unsized_tuple_coercion, unsized_locals)]
#![feature(unsized_tuple_coercion, unsized_locals, unsized_fn_params)]
Copy link
Member

Choose a reason for hiding this comment

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

Why does this need unsized_locals?

Copy link
Member Author

Choose a reason for hiding this comment

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

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
  --> src/test/ui/unsized-locals/unsized-exprs.rs:22:26
   |
22 |     udrop::<(i32, [u8])>((42, *foo()));
   |                          ^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: within `({integer}, [u8])`, the trait `std::marker::Sized` is not implemented for `[u8]`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: required because it appears within the type `({integer}, [u8])`
   = note: tuples must have a statically known size to be initialized

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
  --> src/test/ui/unsized-locals/unsized-exprs.rs:24:22
   |
24 |     udrop::<A<[u8]>>(A { 0: *foo() });
   |                      ^^^^^^^^^^^^^^^ doesn't have a size known at compile-time
   |
   = help: within `A<[u8]>`, the trait `std::marker::Sized` is not implemented for `[u8]`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: required because it appears within the type `A<[u8]>`
   = note: structs must have a statically known size to be initialized

error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
  --> src/test/ui/unsized-locals/unsized-exprs.rs:26:22
   |
26 |     udrop::<A<[u8]>>(A(*foo()));
   |                      ^ doesn't have a size known at compile-time
   |
   = help: within `A<[u8]>`, the trait `std::marker::Sized` is not implemented for `[u8]`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: required because it appears within the type `A<[u8]>`
   = note: the return type of a function must have a statically known size

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0277`.

Copy link
Member

Choose a reason for hiding this comment

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

Ah I see, there's an unsized return value?

Seems a bit odd that you would need both feature gates, but maybe that makes sense?

src/liballoc/lib.rs Outdated Show resolved Hide resolved
@@ -117,6 +117,7 @@
#![feature(track_caller)]
#![feature(transparent_unions)]
#![feature(unboxed_closures)]
#![cfg_attr(not(bootstrap), feature(unsized_fn_params))]
#![feature(unsized_locals)]
Copy link
Member

Choose a reason for hiding this comment

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

unsized_locals should not be needed any more, so can you gate this by cfg_attr(bootstrap, ...)?

Copy link
Member Author

Choose a reason for hiding this comment

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

If I do this change in libcore I get ...

Building stage1 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling cc v1.0.52
   Compiling core v0.0.0 (/home/santiago/src/oss/rust2/src/libcore)
   Compiling libc v0.2.69
   Compiling autocfg v0.1.7
   Compiling std v0.0.0 (/home/santiago/src/oss/rust2/src/libstd)
   Compiling hashbrown v0.6.2
   Compiling compiler_builtins v0.1.28
   Compiling backtrace-sys v0.1.37
   Compiling unwind v0.0.0 (/home/santiago/src/oss/rust2/src/libunwind)
error[E0161]: cannot move a value of type T: the size of T cannot be statically determined
   --> src/libcore/mem/mod.rs:162:33
    |
162 |     unsafe { intrinsics::forget(t) }
    |                                 ^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0161`.
error: could not compile `core`.

To learn more, run the command again with --verbose.
command did not execute successfully: "/home/santiago/src/oss/rust2/build/x86_64-unknown-linux-gnu/stage0/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-Zbinary-dep-depinfo" "-j" "8" "--release" "--features" "panic-unwind backtrace compiler-builtins-c" "--manifest-path" "/home/santiago/src/oss/rust2/src/libtest/Cargo.toml" "--message-format" "json-render-diagnostics"
expected success, got: exit code: 101
failed to run: /home/santiago/src/oss/rust2/build/bootstrap/debug/bootstrap build --stage 1 src/libstd
Build completed unsuccessfully in 0:02:00

Copy link
Member

Choose a reason for hiding this comment

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

Something is wrong then. The unsound feature must not be used in libcore/liballoc.

Copy link
Member Author

@spastorino spastorino May 26, 2020

Choose a reason for hiding this comment

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

If I'm not wrong this is the last missing bit to fix but I don't understand it exactly.
Wasn't libcore/liballoc already using that?. Isn't fixing some of this stuff for a different PR? or am I not understanding what you're suggesting?.

Copy link
Member

@RalfJung RalfJung May 26, 2020

Choose a reason for hiding this comment

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

Wasn't libcore/liballoc already using that?

Using what?

libstd/liballoc/libcore (and all of rustc really except for the test suite) should only be using the sound version of the feature. After all, we don't want unsound code in our standard library or the compiler. So clearly unsized_locals should not be enabled. Does this make sense so far?

The claim, back when passing unsized parameters to functions was carved out as a "soundly implementable subset", was that this would suffice for what libstd is doing. So assuming that claim is correct, no further changes should be needed to disable unsized_locals.

However, the bootstrap compiler does not understand unsized_fn_params, so we still have to enable the unsound unsized_locals but only when building the standard library with the bootstrap compiler.

Copy link
Member

Choose a reason for hiding this comment

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

The error here looks like this is just an unsized parameter, not an arbitrary unsized local. So probably, your PR has a bug somewhere where it is still checking the wrong feature gate at some place.

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-8 of your PR failed (pretty log, 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.
##[section]Starting: Linux x86_64-gnu-llvm-8
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 2'
Agent machine name: 'fv-az619'
Current agent version: '2.169.0'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200517.1
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200517.1/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.2)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/e3b000cd-f35b-409a-9d8a-866e0d853917.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> cb2676f08729
Step 5/8 : ENV RUST_CONFIGURE_ARGS       --build=x86_64-unknown-linux-gnu       --llvm-root=/usr/lib/llvm-8       --enable-llvm-link-shared       --set rust.thin-lto-import-instr-limit=10
 ---> Using cache
 ---> df25ce111862
Step 6/8 : ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy &&            python2.7 ../x.py test src/test/mir-opt --pass=build                                   --target=armv5te-unknown-linux-gnueabi &&            python2.7 ../x.py test src/tools/tidy
 ---> 599b9ac96b27
Step 7/8 : ENV NO_DEBUG_ASSERTIONS=1
 ---> Using cache
 ---> 091087e35a36
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
...........................................................................i........................ 1800/10219
.................................................................................................... 1900/10219
..............................................................................................i..i.. 2000/10219
.................................................................................................... 2100/10219
....................................................................................iiiii........... 2200/10219
.................................................................................................... 2400/10219
.................................................................................................... 2500/10219
.................................................................................................... 2600/10219
.................................................................................................... 2700/10219
---
...........i...............i........................................................................ 5200/10219
.................................................................................................... 5300/10219
..........................................................i......................................... 5400/10219
...................................................i................................................ 5500/10219
.............................................................ii.ii........i...i..................... 5600/10219
...i................................................................................................ 5800/10219
...........i........................................................................................ 5900/10219
...............................................................ii................................... 6000/10219
..i................................................................................................. 6100/10219
..i................................................................................................. 6100/10219
.................................................................................................... 6200/10219
.................................................................................................... 6300/10219
........................ii...i..ii...........i...................................................... 6400/10219
.................................................................................................... 6600/10219
.................................................................................................... 6700/10219
.................................................................................................... 6700/10219
.........................................................i..ii...................................... 6800/10219
.................................................................................................... 7000/10219
.................................................................................................... 7100/10219
...........i........................................................................................ 7200/10219
.................................................................................................... 7300/10219
---
.................................................................................................... 8100/10219
.................................................................................................... 8200/10219
.................................................................................................... 8300/10219
....................................i............................................................... 8400/10219
..........................................................................................iiiiii.iii 8500/10219
iii.i............................................................................................... 8600/10219
.................................................................................................... 8800/10219
.................................................................................................... 8900/10219
.................................................................................................... 9000/10219
.................................................................................................... 9100/10219
---
---- [run-pass-valgrind] run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs stdout ----

error: compilation failed!
status: exit code: 1
command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary/auxiliary"
------------------------------------------

------------------------------------------
stderr:
stderr:
------------------------------------------
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:1:12
  |
1 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
warning: trait objects without an explicit `dyn` are deprecated
 --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:5:21
  |
  |
5 | fn gen_foo() -> Box<fmt::Display> {
  |                     ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`
  = note: `#[warn(bare_trait_objects)]` on by default

warning: trait objects without an explicit `dyn` are deprecated
 --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:9:11
 --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:9:11
  |
9 | fn foo(x: fmt::Display) {
  |           ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`

warning: trait objects without an explicit `dyn` are deprecated
  --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:13:20
   |
13 | fn foo_indirect(x: fmt::Display) {
   |                    ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`
warning: trait objects without an explicit `dyn` are deprecated
  --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:22:16
   |
   |
22 |         let x: fmt::Display = *gen_foo();
   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`
warning: trait objects without an explicit `dyn` are deprecated
  --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:27:16
   |
   |
27 |         let x: fmt::Display = *gen_foo();
   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`
warning: trait objects without an explicit `dyn` are deprecated
  --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:28:16
   |
   |
28 |         let y: fmt::Display = *gen_foo();
   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`
warning: trait objects without an explicit `dyn` are deprecated
  --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:36:20
   |
   |
36 |             let x: fmt::Display = *gen_foo();
   |                    ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`
warning: trait objects without an explicit `dyn` are deprecated
  --> /checkout/src/test/run-pass-valgrind/unsized-locals/long-live-the-unsized-temporary.rs:47:16
   |
   |
47 |         let x: fmt::Display = *gen_foo();
   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn fmt::Display`

error[E0277]: the size for values of type `(dyn std::fmt::Display + 'static)` cannot be known at compilation time
  |
9 | fn foo(x: fmt::Display) {
  |        ^ doesn't have a size known at compile-time
  |
  |
  = help: the trait `std::marker::Sized` is not implemented for `(dyn std::fmt::Display + 'static)`
  = note: all function arguments must have a statically known size
  = help: unsized fn params are gated as an unstable feature


error[E0277]: the size for values of type `(dyn std::fmt::Display + 'static)` cannot be known at compilation time
   |
   |
13 | fn foo_indirect(x: fmt::Display) {
   |                 ^ doesn't have a size known at compile-time
   |
   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::fmt::Display + 'static)`
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature


error[E0277]: the size for values of type `(dyn std::fmt::Display + 'static)` cannot be known at compilation time
   |
14 |     foo(x);
   |     ^^^ doesn't have a size known at compile-time
   |
   |
   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::fmt::Display + 'static)`
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature


error[E0277]: the size for values of type `(dyn std::fmt::Display + 'static)` cannot be known at compilation time
   |
   |
18 |     foo(*gen_foo());
   |
   |
   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::fmt::Display + 'static)`
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature


error: aborting due to 4 previous errors; 9 warnings emitted
For more information about this error, try `rustc --explain E0277`.

------------------------------------------

---
thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace


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/run-pass-valgrind" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-pass-valgrind" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "run-pass-valgrind" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-8/bin/FileCheck" "--nodejs" "/usr/bin/node" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -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" "8.0.0" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"


failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test --exclude src/tools/tidy
Build completed unsuccessfully in 1:03:44
Build completed unsuccessfully in 1:03:44
== clock drift check ==
  local time: Sat May 23 20:35:41 UTC 2020
  network time: Sat, 23 May 2020 20:35:41 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (5436) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@spastorino spastorino force-pushed the separate-unsized-locals branch from 7dbd3f0 to 5a0baa5 Compare May 23, 2020 21:09
@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-8 of your PR failed (pretty log, 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.
##[section]Starting: Linux x86_64-gnu-llvm-8
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 2'
Agent machine name: 'fv-az578'
Current agent version: '2.169.0'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200517.1
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200517.1/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.2)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/3028d56f-6c97-4a22-88b9-0a80126b2abd.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> cb2676f08729
Step 5/8 : ENV RUST_CONFIGURE_ARGS       --build=x86_64-unknown-linux-gnu       --llvm-root=/usr/lib/llvm-8       --enable-llvm-link-shared       --set rust.thin-lto-import-instr-limit=10
 ---> Using cache
 ---> df25ce111862
Step 6/8 : ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy &&            python2.7 ../x.py test src/test/mir-opt --pass=build                                   --target=armv5te-unknown-linux-gnueabi &&            python2.7 ../x.py test src/tools/tidy
 ---> 599b9ac96b27
Step 7/8 : ENV NO_DEBUG_ASSERTIONS=1
 ---> Using cache
 ---> 091087e35a36
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
...........................................................................i........................ 1800/10219
.................................................................................................... 1900/10219
..............................................................................................i..i.. 2000/10219
.................................................................................................... 2100/10219
....................................................................................iiiii........... 2200/10219
.................................................................................................... 2400/10219
.................................................................................................... 2500/10219
.................................................................................................... 2600/10219
.................................................................................................... 2700/10219
---
...........i...............i........................................................................ 5200/10219
.................................................................................................... 5300/10219
..........................................................i......................................... 5400/10219
...................................................i................................................ 5500/10219
.............................................................ii.ii........i...i..................... 5600/10219
...i................................................................................................ 5800/10219
...........i........................................................................................ 5900/10219
...............................................................ii................................... 6000/10219
..i................................................................................................. 6100/10219
..i................................................................................................. 6100/10219
.................................................................................................... 6200/10219
.................................................................................................... 6300/10219
........................ii...i..ii...........i...................................................... 6400/10219
.................................................................................................... 6600/10219
.................................................................................................... 6700/10219
.................................................................................................... 6700/10219
.........................................................i..ii...................................... 6800/10219
.................................................................................................... 7000/10219
.................................................................................................... 7100/10219
...........i........................................................................................ 7200/10219
.................................................................................................... 7300/10219
---
.................................................................................................... 8100/10219
.................................................................................................... 8200/10219
.................................................................................................... 8300/10219
....................................i............................................................... 8400/10219
..........................................................................................iiiiii.iii 8500/10219
iii.i............................................................................................... 8600/10219
.................................................................................................... 8800/10219
.................................................................................................... 8900/10219
.................................................................................................... 9000/10219
.................................................................................................... 9100/10219
---
Suite("src/test/codegen") not skipped for "bootstrap::test::Codegen" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 191 tests
iiii......i..............ii.i..........i.................................i..i................i....i. 100/191
............i.i.i...iii..iiiiiiiiiiiiiiii.......................iii................ii......

 finished in 5.452
Suite("src/test/codegen-units") not skipped for "bootstrap::test::CodegenUnits" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 20 tests
iiiiiiiiiiiiiiiiiiii

 finished in 0.143
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 115 tests
iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii.........i.....i..i.......ii.i.ii.. 100/115
...iiii.....ii.

 finished in 14.856
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["src/tools/tidy"]
Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---

   Doc-tests core

running 2568 tests
......iiiii......................................................................................... 100/2568
.................................................................................................ii. 200/2568
...................................i................................................................ 400/2568
.........................................................................................i..i....... 500/2568
.........................................................................................i..i....... 500/2568
...........iiii..................................................................................... 600/2568
.................................................................................................... 800/2568
.................................................................................................... 900/2568
.................................................................................................... 1000/2568
.................................................................................................... 1100/2568
---

running 1020 tests
i................................................................................................... 100/1020
.................................................................................................... 200/1020
...................iii.......i.....i...i......i..................................................... 300/1020
.................................................................................................... 400/1020
....................................................i....i......................................ii.. 500/1020
.................................................................................................... 700/1020
.................................................................................................... 700/1020
..............................................iiii.................................................. 800/1020
.................................................................................................... 900/1020
....................................................................iiii............................ 1000/1020
test result: ok. 1000 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out

 finished in 151.729
Set({"src/libterm"}) not skipped for "bootstrap::test::Crate" -- not in ["src/tools/tidy"]
---

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

 finished in 0.973
Set({"/checkout/src/librustc_query_system"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Testing rustc_query_system stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
     Running build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_query_system-badfa60cf5f683cd

running 0 tests

---
Set({"/checkout/src/librustc_parse"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_passes"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_plugin_impl"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_privacy"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_query_system"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_save_analysis"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_session"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_span"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_symbol_mangling"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
---
Suite("src/test/run-make-fulldeps") not skipped for "bootstrap::test::RunMakeFullDeps" -- not in ["src/tools/tidy"]
Check compiletest suite=run-make-fulldeps mode=run-make (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 211 tests
......................i...ii.......................................................................i 100/211
........................................iiiiii......i..............iii.............................. 200/211
.......ii..

 finished in 67.403
Set({"src/doc/rustdoc"}) not skipped for "bootstrap::test::RustdocBook" -- not in ["src/tools/tidy"]
doc tests for: /checkout/src/doc/rustdoc/src/advanced-features.md
---
  |
2 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
error[E0277]: the size for values of type `(dyn std::any::Any + 'static)` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:23:5
   |
11 |     foo(x);
---

error[E0277]: the size for values of type `(dyn std::any::Any + 'static)` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:26:8
   |
14 | fn foo(_: dyn Any) {}
   |        ^ doesn't have a size known at compile-time
   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::any::Any + 'static)`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature
   = help: unsized fn params are gated as an unstable feature

error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
Couldn't compile the test.
---- /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md - The_tracking_issue_for_this_feature_is__::By_value_trait_objects (line 104) stdout ----
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:105:12
  |
2 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
error[E0277]: the size for values of type `Self` cannot be known at compilation time
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:108:12
  |
5 |     fn foo(self) {}
---
  = note: all function arguments must have a statically known size
  = help: unsized fn params are gated as an unstable feature
help: consider further restricting `Self`
  |
5 |     fn foo(self) where Self: std::marker::Sized {}

error[E0277]: the size for values of type `dyn Foo` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:116:5
   |
   |
13 |     <dyn Foo as Foo>::foo(*slice);
   |
   = help: the trait `std::marker::Sized` is not implemented for `dyn Foo`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all function arguments must have a statically known size
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature

error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
Couldn't compile the test.
---- /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md - The_tracking_issue_for_this_feature_is__::By_value_trait_objects (line 87) stdout ----
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:88:12
  |
2 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
error[E0277]: the size for values of type `Self` cannot be known at compilation time
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:91:12
  |
5 |     fn foo(self) {}
---
  = note: all function arguments must have a statically known size
  = help: unsized fn params are gated as an unstable feature
help: consider further restricting `Self`
  |
5 |     fn foo(self) where Self: std::marker::Sized {}

error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:98:5
   |
   |
12 |     <[i32] as Foo>::foo(*slice);
   |
   = help: the trait `std::marker::Sized` is not implemented for `[i32]`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all function arguments must have a statically known size
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature

error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
Couldn't compile the test.

failures:
---
  local time: Sat May 23 22:56:01 UTC 2020
  network time: Sat, 23 May 2020 22:56:01 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (3956) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-8 of your PR failed (pretty log, 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.
##[section]Starting: Linux x86_64-gnu-llvm-8
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 3'
Agent machine name: 'fv-az578'
Current agent version: '2.169.0'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200517.1
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200517.1/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.2)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/b2749ab5-6b7a-4f53-8e80-f78d6e1a608e.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> cb2676f08729
Step 5/8 : ENV RUST_CONFIGURE_ARGS       --build=x86_64-unknown-linux-gnu       --llvm-root=/usr/lib/llvm-8       --enable-llvm-link-shared       --set rust.thin-lto-import-instr-limit=10
 ---> Using cache
 ---> df25ce111862
Step 6/8 : ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy &&            python2.7 ../x.py test src/test/mir-opt --pass=build                                   --target=armv5te-unknown-linux-gnueabi &&            python2.7 ../x.py test src/tools/tidy
 ---> 599b9ac96b27
Step 7/8 : ENV NO_DEBUG_ASSERTIONS=1
 ---> Using cache
 ---> 091087e35a36
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
...........................................................................i........................ 1800/10220
.................................................................................................... 1900/10220
..............................................................................................i..i.. 2000/10220
.................................................................................................... 2100/10220
....................................................................................iiiii........... 2200/10220
.................................................................................................... 2400/10220
.................................................................................................... 2500/10220
.................................................................................................... 2600/10220
.................................................................................................... 2700/10220
---
...........i...............i........................................................................ 5200/10220
.................................................................................................... 5300/10220
..........................................................i......................................... 5400/10220
...................................................i................................................ 5500/10220
..............................................................ii.ii........i...i.................... 5600/10220
....i............................................................................................... 5800/10220
............i....................................................................................... 5900/10220
................................................................ii.................................. 6000/10220
...i................................................................................................ 6100/10220
...i................................................................................................ 6100/10220
.................................................................................................... 6200/10220
.................................................................................................... 6300/10220
.........................ii...i..ii...........i..................................................... 6400/10220
.................................................................................................... 6600/10220
.................................................................................................... 6700/10220
.................................................................................................... 6700/10220
..........................................................i..ii..................................... 6800/10220
.................................................................................................... 7000/10220
.................................................................................................... 7100/10220
............i....................................................................................... 7200/10220
.................................................................................................... 7300/10220
---
.................................................................................................... 8100/10220
.................................................................................................... 8200/10220
.................................................................................................... 8300/10220
.....................................i.............................................................. 8400/10220
...........................................................................................iiiiii.ii 8500/10220
iiii.i.............................................................................................. 8600/10220
.................................................................................................... 8800/10220
.................................................................................................... 8900/10220
.................................................................................................... 9000/10220
.................................................................................................... 9100/10220
---
Suite("src/test/codegen") not skipped for "bootstrap::test::Codegen" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 191 tests
iiii......i..............ii.i..........i.................................i..i................i....i. 100/191
............i.i.i...iii..iiiii.iiiiiiiiiii......................iii................ii......

 finished in 6.076
Suite("src/test/codegen-units") not skipped for "bootstrap::test::CodegenUnits" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 20 tests
iiiiiiiiiiiiiiiiiiii

 finished in 0.158
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/debuginfo") not skipped for "bootstrap::test::Debuginfo" -- not in ["src/tools/tidy"]
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 115 tests
iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii.........i.....i..i.......ii.i.ii.. 100/115
...iiii.....ii.

 finished in 15.188
Suite("src/test/ui-fulldeps") not skipped for "bootstrap::test::UiFullDeps" -- not in ["srcUplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---

   Doc-tests core

running 2568 tests
......iiiii......................................................................................... 100/2568
.................................................................................................ii. 200/2568
...................................i................................................................ 400/2568
.........................................................................................i..i....... 500/2568
.........................................................................................i..i....... 500/2568
...........iiii..................................................................................... 600/2568
.................................................................................................... 800/2568
.................................................................................................... 900/2568
.................................................................................................... 1000/2568
.................................................................................................... 1100/2568
---

running 1020 tests
i................................................................................................... 100/1020
.................................................................................................... 200/1020
...................iii......i......i...i......i..................................................... 300/1020
.................................................................................................... 400/1020
....................................................i....i......................................ii.. 500/1020
.................................................................................................... 700/1020
.................................................................................................... 700/1020
..............................................iiii.................................................. 800/1020
.................................................................................................... 900/1020
....................................................................iiii............................ 1000/1020
test result: ok. 1000 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out

 finished in 158.400
Set({"src/libterm"}) not skipped for "bootstrap::test::Crate" -- not in ["src/tools/tidy"]
---

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

 finished in 1.039
Set({"/checkout/src/librustc_query_system"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Testing rustc_query_system stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
     Running build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_query_system-badfa60cf5f683cd

running 0 tests

---
Set({"/checkout/src/librustc_parse"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_passes"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_plugin_impl"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_privacy"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_query_system"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_save_analysis"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_session"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_span"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_symbol_mangling"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
---
Suite("src/test/run-make-fulldeps") not skipped for "bootstrap::test::RunMakeFullDeps" -- not in ["src/tools/tidy"]
Check compiletest suite=run-make-fulldeps mode=run-make (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 211 tests
......................i...ii.......................................................................i 100/211
........................................iiiiii......i..............iii.............................. 200/211
.......ii..

 finished in 71.001
Set({"src/doc/rustdoc"}) not skipped for "bootstrap::test::RustdocBook" -- not in ["src/tools/tidy"]
doc tests for: /checkout/src/doc/rustdoc/src/advanced-features.md
---
  |
2 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
error[E0277]: the size for values of type `(dyn std::any::Any + 'static)` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:23:5
   |
11 |     foo(x);
---

error[E0277]: the size for values of type `(dyn std::any::Any + 'static)` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:26:8
   |
14 | fn foo(_: dyn Any) {}
   |        ^ doesn't have a size known at compile-time
   = help: the trait `std::marker::Sized` is not implemented for `(dyn std::any::Any + 'static)`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature
   = help: unsized fn params are gated as an unstable feature

error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
Couldn't compile the test.
---- /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md - The_tracking_issue_for_this_feature_is__::By_value_trait_objects (line 104) stdout ----
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:105:12
  |
2 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
error[E0277]: the size for values of type `Self` cannot be known at compilation time
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:108:12
  |
5 |     fn foo(self) {}
---
  = note: all function arguments must have a statically known size
  = help: unsized fn params are gated as an unstable feature
help: consider further restricting `Self`
  |
5 |     fn foo(self) where Self: std::marker::Sized {}

error[E0277]: the size for values of type `dyn Foo` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:116:5
   |
   |
13 |     <dyn Foo as Foo>::foo(*slice);
   |
   = help: the trait `std::marker::Sized` is not implemented for `dyn Foo`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all function arguments must have a statically known size
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature

error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
Couldn't compile the test.
---- /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md - The_tracking_issue_for_this_feature_is__::By_value_trait_objects (line 87) stdout ----
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
warning: the feature `unsized_locals` is incomplete and may not be safe to use and/or cause compiler crashes
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:88:12
  |
2 | #![feature(unsized_locals)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #48055 <***/issues/48055> for more information
error[E0277]: the size for values of type `Self` cannot be known at compilation time
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:91:12
  |
5 |     fn foo(self) {}
---
  = note: all function arguments must have a statically known size
  = help: unsized fn params are gated as an unstable feature
help: consider further restricting `Self`
  |
5 |     fn foo(self) where Self: std::marker::Sized {}

error[E0277]: the size for values of type `[i32]` cannot be known at compilation time
  --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:98:5
   |
   |
12 |     <[i32] as Foo>::foo(*slice);
   |
   = help: the trait `std::marker::Sized` is not implemented for `[i32]`
   = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
   = note: all function arguments must have a statically known size
   = note: all function arguments must have a statically known size
   = help: unsized fn params are gated as an unstable feature

error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.
Couldn't compile the test.

failures:
---
  local time: Sun May 24 01:25:38 UTC 2020
  network time: Sun, 24 May 2020 01:25:38 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (3287) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@rust-highfive
Copy link
Collaborator

The job x86_64-gnu-llvm-8 of your PR failed (pretty log, 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.
##[section]Starting: Linux x86_64-gnu-llvm-8
##[section]Starting: Initialize job
Agent name: 'Azure Pipelines 7'
Agent machine name: 'fv-az578'
Current agent version: '2.169.0'
##[group]Operating System
16.04.6
LTS
LTS
##[endgroup]
##[group]Virtual Environment
Environment: ubuntu-16.04
Version: 20200517.1
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu16/20200517.1/images/linux/Ubuntu1604-README.md
##[endgroup]
Agent running as: 'vsts'
Prepare build directory.
Set build variables.
Download all required tasks.
Download all required tasks.
Downloading task: Bash (3.163.2)
Checking job knob settings.
   Knob: AgentToolsDirectory = /opt/hostedtoolcache Source: ${AGENT_TOOLSDIRECTORY} 
   Knob: AgentPerflog = /home/vsts/perflog Source: ${VSTS_AGENT_PERFLOG} 
Start tracking orphan processes.
##[section]Finishing: Initialize job
##[section]Starting: Configure Job Name
==============================================================================
---
========================== Starting Command Output ===========================
[command]/bin/bash --noprofile --norc /home/vsts/work/_temp/7f6698c6-57db-469a-b8fd-42e5168c9aa3.sh

##[section]Finishing: Disable git automatic line ending conversion
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
---
##[command]git remote add origin https://github.com/rust-lang/rust
##[command]git config gc.auto 0
##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
##[command]git config --get-all http.proxy
##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/72029/merge:refs/remotes/pull/72029/merge
---
 ---> cb2676f08729
Step 5/8 : ENV RUST_CONFIGURE_ARGS       --build=x86_64-unknown-linux-gnu       --llvm-root=/usr/lib/llvm-8       --enable-llvm-link-shared       --set rust.thin-lto-import-instr-limit=10
 ---> Using cache
 ---> df25ce111862
Step 6/8 : ENV SCRIPT python2.7 ../x.py test --exclude src/tools/tidy &&            python2.7 ../x.py test src/test/mir-opt --pass=build                                   --target=armv5te-unknown-linux-gnueabi &&            python2.7 ../x.py test src/tools/tidy
 ---> 599b9ac96b27
Step 7/8 : ENV NO_DEBUG_ASSERTIONS=1
 ---> Using cache
 ---> 091087e35a36
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
   Compiling fmt_macros v0.0.0 (/checkout/src/libfmt_macros)
   Compiling chalk-rust-ir v0.10.0
   Compiling rustc_ast_pretty v0.0.0 (/checkout/src/librustc_ast_pretty)
   Compiling rustc_hir v0.0.0 (/checkout/src/librustc_hir)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
   Compiling chalk-solve v0.10.0
   Compiling rustc_hir_pretty v0.0.0 (/checkout/src/librustc_hir_pretty)
   Compiling rustc_parse v0.0.0 (/checkout/src/librustc_parse)
   Compiling rustc_ast_lowering v0.0.0 (/checkout/src/librustc_ast_lowering)
---
...........................................................................i........................ 1800/10223
.................................................................................................... 1900/10223
..............................................................................................i..i.. 2000/10223
.................................................................................................... 2100/10223
....................................................................................iiiii........... 2200/10223
.................................................................................................... 2400/10223
.................................................................................................... 2500/10223
.................................................................................................... 2600/10223
.................................................................................................... 2700/10223
---
............i...............i....................................................................... 5200/10223
.................................................................................................... 5300/10223
...........................................................i........................................ 5400/10223
....................................................i............................................... 5500/10223
...............................................................ii.ii........i...i................... 5600/10223
.....i.............................................................................................. 5800/10223
.............i...................................................................................... 5900/10223
.................................................................ii................................. 6000/10223
....i............................................................................................... 6100/10223
....i............................................................................................... 6100/10223
.................................................................................................... 6200/10223
.................................................................................................... 6300/10223
..........................ii...i..ii...........i.................................................... 6400/10223
.................................................................................................... 6600/10223
.................................................................................................... 6700/10223
.................................................................................................... 6700/10223
...........................................................i..ii.................................... 6800/10223
.................................................................................................... 7000/10223
.................................................................................................... 7100/10223
.............i...................................................................................... 7200/10223
.................................................................................................... 7300/10223
---
.................................................................................................... 8100/10223
.................................................................................................... 8200/10223
.................................................................................................... 8300/10223
.......................................i............................................................ 8400/10223
.............................................................................................iiiiii. 8500/10223
iiiiii.i............................................................................................ 8600/10223
.................................................................................................... 8800/10223
.................................................................................................... 8900/10223
.................................................................................................... 9000/10223
.................................................................................................... 9100/10223
---
Suite("src/test/codegen") not skipped for "bootstrap::test::Codegen" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen mode=codegen (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 191 tests
iiii......i..............ii.i..........i.................................i..i................i....i. 100/191
............i.i.i...iii..iiiiiiiiiiiiiiii.......................iii................ii......

 finished in 5.859
Suite("src/test/codegen-units") not skipped for "bootstrap::test::CodegenUnits" -- not in ["src/tools/tidy"]
Check compiletest suite=codegen-units mode=codegen-units (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
Suite("src/test/assembly") not skipped for "bootstrap::test::Assembly" -- not in ["src/tools/tidy"]
Check compiletest suite=assembly mode=assembly (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 20 tests
iiiiiiiiiiiiiiiiiiii

 finished in 0.148
Suite("src/test/incremental") not skipped for "bootstrap::test::Incremental" -- not in ["src/tools/tidy"]
Check compiletest suite=incremental mode=incremental (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
---
 finished in 20.951
Check compiletest suite=debuginfo mode=debuginfo (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 115 tests
iiiii..i.....i..i...i..i.i.i..i..i..ii....i.i....ii..........iiii.........i.....i..i.......ii.i.ii.. 100/115
...iiii.....ii.

 finished in 14.997
Uplifting stage1 rustc (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
Copying stage2 rustc from stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu / x86_64-unknown-linux-gnu)
---

   Doc-tests core

running 2568 tests
......iiiii......................................................................................... 100/2568
.................................................................................................ii. 200/2568
...................................i................................................................ 400/2568
.........................................................................................i..i....... 500/2568
.........................................................................................i..i....... 500/2568
...........iiii..................................................................................... 600/2568
.................................................................................................... 800/2568
.................................................................................................... 900/2568
.................................................................................................... 1000/2568
.................................................................................................... 1100/2568
---
.................................................thread '<unnamed>' panicked at 'explicit panic', src/libstd/io/stdio.rs:944:13
. 300/764
.................................................................................................... 400/764
.................................................................................................... 500/764
......................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2741:22
.....thread '<unnamed>.thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: "SendError(..)"', src/libstd/sync/mpsc/mod.rs:2766:17
' panicked at '.......called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2778:21
........................................thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1997:22
...........thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:1916:13
.......thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: RecvError', src/libstd/sync/mpsc/mod.rs:2034:21
....... 600/764
---

running 1020 tests
i................................................................................................... 100/1020
.................................................................................................... 200/1020
....................iii......i.....i...i......i..................................................... 300/1020
.................................................................................................... 400/1020
....................................................i....i......................................ii.. 500/1020
.................................................................................................... 700/1020
.................................................................................................... 700/1020
..............................................iiii.................................................. 800/1020
.................................................................................................... 900/1020
....................................................................iiii............................ 1000/1020
test result: ok. 1000 passed; 0 failed; 20 ignored; 0 measured; 0 filtered out

 finished in 161.690
Set({"src/libterm"}) not skipped for "bootstrap::test::Crate" -- not in ["src/tools/tidy"]
---

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

 finished in 1.131
Set({"/checkout/src/librustc_query_system"}) not skipped for "bootstrap::test::CrateLibrustc" -- not in ["src/tools/tidy"]
Testing rustc_query_system stage1 (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
   Compiling rustc_query_system v0.0.0 (/checkout/src/librustc_query_system)
     Running build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/rustc_query_system-badfa60cf5f683cd

running 0 tests

---
Set({"/checkout/src/librustc_parse"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_passes"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_plugin_impl"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_privacy"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_query_system"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_save_analysis"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_session"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_span"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
Set({"/checkout/src/librustc_symbol_mangling"}) not skipped for "bootstrap::doc::Rustc" -- not in ["src/tools/tidy"]
---
Suite("src/test/run-make-fulldeps") not skipped for "bootstrap::test::RunMakeFullDeps" -- not in ["src/tools/tidy"]
Check compiletest suite=run-make-fulldeps mode=run-make (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)

running 211 tests
......................i...ii.......................................................................i 100/211
........................................iiiiii......i..............iii.............................. 200/211
.......ii..

 finished in 77.846
doc tests for: /checkout/src/doc/rustdoc/src/advanced-features.md
Set({"src/doc/rustdoc"}) not skipped for "bootstrap::test::RustdocBook" -- not in ["src/tools/tidy"]
---
---- /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md - The_tracking_issue_for_this_feature_is__ (line 13) stdout ----
error[E0277]: the size for values of type `(dyn std::any::Any + 'static)` cannot be known at compilation time
 --> /checkout/src/doc/unstable-book/src/language-features/unsized-locals.md:20:9
  |
8 |     let x: dyn Any = *x;
  |         ^ doesn't have a size known at compile-time
  = help: the trait `std::marker::Sized` is not implemented for `(dyn std::any::Any + 'static)`
  = note: to learn more, visit <https://doc.rust-lang.org/book/ch19-04-advanced-types.html#dynamically-sized-types-and-the-sized-trait>
  = note: all local variables must have a statically known size
  = help: unsized locals are gated as an unstable feature
---
  local time: Sun May 24 22:17:08 UTC 2020
  network time: Sun, 24 May 2020 22:17:08 GMT
== end clock drift check ==

##[error]Bash exited with code '1'.
##[section]Finishing: Run build
##[section]Starting: Checkout rust-lang/rust@refs/pull/72029/merge to s
Task         : Get sources
Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
Version      : 1.0.0
Author       : Microsoft
Author       : Microsoft
Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
==============================================================================
Cleaning any cached credential from repository: rust-lang/rust (GitHub)
##[section]Finishing: Checkout rust-lang/rust@refs/pull/72029/merge to s
Cleaning up task key
Start cleaning up orphan processes.
Terminate orphan process: pid (3616) (python)
##[section]Finishing: Finalize Job

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 @rust-lang/infra. (Feature Requests)

@spastorino spastorino force-pushed the separate-unsized-locals branch from dba6a87 to f194518 Compare May 25, 2020 14:29
@bors
Copy link
Contributor

bors commented May 30, 2020

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

@Elinvynia Elinvynia added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jun 25, 2020
@RalfJung
Copy link
Member

@spastorino what is the status of this? Would be nice to see libcore and friends not rely on an unsound feature. :)

@spastorino
Copy link
Member Author

@RalfJung hey, I didn't do any investigation since our last exchanges. Hope I'm able to do so next week but if someone else wants to take this over I'm more than happy to let others continue this work which is probably very very close to be ready.

@Muirrum Muirrum added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Jul 30, 2020
@Dylan-DPC-zz
Copy link

closing this as it is reworked in #74971

@Dylan-DPC-zz Dylan-DPC-zz added S-inactive Status: Inactive and waiting on the author. This is often applied to closed PRs. and removed S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Aug 1, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this pull request Oct 28, 2020
… r=oli-obk

Separate unsized locals

Closes rust-lang#71694

Takes over again rust-lang#72029 and rust-lang#74971

cc @RalfJung @oli-obk @pnkfelix @eddyb as they've participated in previous reviews of this PR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-inactive Status: Inactive and waiting on the author. This is often applied to closed PRs.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Separate unsized_locals into "sound" and "unsound" (i.e. incorrectly implemented) parts
10 participants