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

Rollup of 8 pull requests #68446

Closed
wants to merge 36 commits into from
Closed

Commits on Jan 15, 2020

  1. add bare metal ARM Cortex-A targets to rustc

    -> `rustc --target armv7-none-eabi` will work
    
    also build rust-std (rustup) components for them
    
    -> `rustup target add armv7-none-eabi` will work
    japaric committed Jan 15, 2020
    Configuration menu
    Copy the full SHA
    470cdf5 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2020

  1. Add -Wl,-znotext to default linker flags to link with lld 9 on FreeBS…

    …D 13.0-CURRENT i386
    
    rust-nightly has been failing to link since 2019-12-10 with variations of
    ```
     = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
    
              ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
              clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)
    
    error: aborting due to previous error
    
    error: could not compile `rustc_macros`.
    ```
    Full log: http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log
    
    AFAICT it stopped building after bumping compiler_builtins to 0.1.22
    in rust-lang#67110.
    Tobias Kortkamp committed Jan 19, 2020
    Configuration menu
    Copy the full SHA
    de38803 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2020

  1. Configuration menu
    Copy the full SHA
    a3a0776 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2c0845c View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2020

  1. Configuration menu
    Copy the full SHA
    d8c661a View commit details
    Browse the repository at this point in the history
  2. Make TooGeneric error in WF checking a proper error

    `TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.
    varkor committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    dd0507c View commit details
    Browse the repository at this point in the history
  3. for now, do not build rust-std for the armv7a-none-eabihf target

    it needs some upstream changes in the build script of the compiler-builtins
    crate
    japaric committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    8abbd0b View commit details
    Browse the repository at this point in the history
  4. Handle methods in try diagnostic

    The diagnostic for diagnostic for methods and trait provided
    methods would only show the empty string:
    
        error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
    
    Handle the missing cases so it reads ``a method'' / ``an async
    method'' / ``a trait method'' respectively.
    
    Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
    phi-gamma committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    5dee7dd View commit details
    Browse the repository at this point in the history
  5. Test try diagnostics for impl and trait methods

    Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
    phi-gamma committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    02e66ba View commit details
    Browse the repository at this point in the history
  6. Cleanup: rewrite conditional as match

    As suggested by @Centril.
    
    Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
    phi-gamma committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    db3b40c View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    d1bb7e1 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    8c6067c View commit details
    Browse the repository at this point in the history
  9. Do not base path to append extension

    We already have ownership of the base path, so no need to clone it (within
    Path::with_extension).
    Mark-Simulacrum authored and sinkuu committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    dc97181 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    ebd91f5 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    36f0322 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    387de7c View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    589fc04 View commit details
    Browse the repository at this point in the history
  14. Move builtin attribute logic to new rustc_attr crate.

    For now, this is all the crate contains, but more
    attribute logic & types will be moved there over time.
    Centril committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    893aa4c View commit details
    Browse the repository at this point in the history
  15. 1. move node_id to syntax

    2. invert rustc_session & syntax deps
    3. drop rustc_session dep in rustc_hir
    Centril committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    a0f179e View commit details
    Browse the repository at this point in the history
  16. 1. move allow_internal_unstable to rustc_attr

    2. as a result, drop rustc_errors dep from syntax
    Centril committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    294c323 View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    67a18c6 View commit details
    Browse the repository at this point in the history
  18. pacify the parallel compiler

    Centril committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    efe7c1f View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    203d255 View commit details
    Browse the repository at this point in the history
  20. syntax: reexport attr globals

    Centril committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    3860bc5 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    407f879 View commit details
    Browse the repository at this point in the history
  22. fix fallout in tests

    Centril committed Jan 21, 2020
    Configuration menu
    Copy the full SHA
    a278c96 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    03b515a View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2020

  1. bootstrap: update clippy subcmd decription

    Clarify where the clippy used in `./x.py clippy` is coming from.
    It uses whatever clippy binary was installed via rustup, cargo-install
    or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.
    matthiaskrgr committed Jan 22, 2020
    Configuration menu
    Copy the full SHA
    eb2da27 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#68133 - Centril:slimmer-syntax, r=petrochenkov

    Slimmer syntax
    
    High-level summary of changes:
    
    - The `syntax::node_count` pass is moved into `rustc_ast_passes`. This works towards improving rust-lang#65031 by making compiling `syntax` go faster.
    
    - The `syntax::{GLOBALS, with_globals, ..}` business is consolidated into `syntax::attr` for cleaner code and future possible improvements.
    
    - The pretty printer loses its dependency on `ParseSess`, opting to use `SourceMap` & friends directly instead.
    
    - Some drive by cleanup of `syntax::attr::HasAttr` happens.
    
    - Builtin attribute logic (`syntax::attr::builtin`) + `syntax::attr::allow_internal_unstable` is moved into a new `rustc_attr` crate. More logic from `syntax::attr` should be moved into that crate over time. This also means that `syntax` loses all mentions of `ParseSess`, which enables the next point.
    
    - The pretty printer `syntax::print` is moved into a new crate `rustc_ast_pretty`.
    
    - `rustc_session::node_id` is moved back as `syntax::node_id`. As a result, `syntax` gets to drop dependencies on `rustc_session` (and implicitly `rustc_target`), `rustc_error_codes`, and `rustc_errors`. Moreover `rustc_hir` gets to drop its dependency on `rustc_session` as well. At this point, these crates are mostly "pure data crates", which is approaching a desirable end state.
    
      - We should consider renaming `syntax` to `rustc_ast` now.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    4272585 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#68253 - japaric:bare-metal-cortex-a, r=alex…

    …crichton
    
    add bare metal ARM Cortex-A targets to rustc
    
    -> `rustc --target armv7a-none-eabi` will work
    
    also build rust-std (rustup) components for them
    
    -> `rustup target add armv7a-none-eabi` will work
    
    this completes our bare-metal support of ARMv7 cores on stable Rust (by 1.42 or 1.43)
    
    (these target specifications have been tested on a real (no emulation / QEMU) [Cortex-A7 core](https://github.com/iqlusioninc/usbarmory.rs/))
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    ab20ef4 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#68361 - t6:patch-freebsd-lld-i386, r=alexcr…

    …ichton
    
    Unbreak linking with lld 9 on FreeBSD 13.0-CURRENT i386
    
    Add -Wl,-znotext to default linker flags to link with lld 9 on FreeBSD 13.0-CURRENT i386 where rust-nightly has been failing to link since 2019-12-10 with variations of
    ```
     = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
    
              ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
              >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
              >>> referenced by std.4xivr03c-cgu.14
              >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
              clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)
    
    error: aborting due to previous error
    
    error: could not compile `rustc_macros`.
    ```
    Full log: http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log
    
    AFAICT it stopped building after bumping compiler_builtins to 0.1.22 in rust-lang#67110.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    4fe9d2f View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#68388 - varkor:toogeneric-wf, r=eddyb

    Make `TooGeneric` error in WF checking a proper error
    
    `TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.
    
    Fixes rust-lang#66962.
    
    r? @eddyb
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    917e683 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#68409 - sinkuu:temp_path, r=Mark-Simulacrum

    Micro-optimize OutputFilenames
    
    For example, its methods consume 6% of time during debug-compiling a `warp` example:
    ![Screenshot (debug-compiling a `warp` example)](https://user-images.githubusercontent.com/7091080/72780288-d74f1580-3c61-11ea-953b-34e59ca682f9.png)
    
    This PR optimize them a bit by using `PathBuf::set_extension` instead of `Path::with_extension`, to avoid cloning `PathBuf` excessively.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    53c1e6f View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#68410 - tmiasko:msan-lto, r=varkor

    Export weak symbols used by MemorySanitizer
    
    Export weak symbols defined by MemorySanitizer instrumentation, which are used
    to implement `-Zsanitizer-memory-track-origins` and `-Zsanitizer-recover=memory`.
    Previously, when using fat LTO, they would internalized and eliminated.
    
    Fixes rust-lang#68367.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    7e9608c View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#68425 - phi-gamma:try-method, r=varkor

    Fix try-op diagnostic in E0277 for methods
    
    For methods the try-op diagnostic displays the empty string where
    it has more descriptive strings like “a function” otherwise:
    
        error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
                                                          ^^
           | |             ^^ cannot use the `?` operator in  that returns `()`
                                                            ^^
    
    I’m seeing this on nightly (rustc 1.42.0-nightly (b5a3341
    2020-01-20)) and [on the playpen](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0e7ce7792c2aceb8056941710d539124).
    
    The changeset add strings for impl methods and trait provided
    methods and test cases for the option type.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    41b00c0 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#68440 - matthiaskrgr:xpyclippy, r=Mark-Simu…

    …lacrum
    
    bootstrap: update clippy subcmd decription
    
    Clarify where the clippy used in `./x.py clippy` is coming from.
    It uses whatever clippy binary was installed via rustup, cargo-install
    or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.
    tmandry authored Jan 22, 2020
    Configuration menu
    Copy the full SHA
    c6035ab View commit details
    Browse the repository at this point in the history