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 6 pull requests #63094

Merged
merged 17 commits into from
Jul 29, 2019
Merged

Rollup of 6 pull requests #63094

merged 17 commits into from
Jul 29, 2019

Commits on Jul 25, 2019

  1. rustc: Update wasm32 support for LLVM 9

    This commit brings in a number of minor updates for rustc's support for
    the wasm target which has changed in the LLVM 9 update. Notable updates
    include:
    
    * The compiler now no longer manually inserts the `producers` section,
      instead relying on LLVM to do so. LLVM uses the `llvm.ident` metadata
      for the `processed-by` directive (which is now emitted on the wasm
      target in this PR) and it uses debuginfo to figure out what `language`
      to put in the `producers` section.
    
    * Threaded WebAssembly code now requires different flags to be passed
      with LLD. In LLD we now pass:
    
      * `--shared-memory` - required since objects are compiled with
        atomics. This also means that the generated memory will be marked as
        `shared`.
      * `--max-memory=1GB` - required with the `--shared-memory` argument
        since shared memories in WebAssembly must have a maximum size. The
        1GB number is intended to be a conservative estimate for rustc, but
        it should be overridable with `-C link-arg` if necessary.
      * `--passive-segments` - this has become the default for multithreaded
        memory, but when compiling a threaded module all data segments need
        to be marked as passive to ensure they don't re-initialize memory
        for each thread. This will also cause LLD to emit a synthetic
        function to initialize memory which users will have to arrange to
        call.
      * The `__heap_base` and `__data_end` globals are explicitly exported
        since they're now hidden by default due to the `--export` flags we
        pass to LLD.
    alexcrichton committed Jul 25, 2019
    Configuration menu
    Copy the full SHA
    a120caf View commit details
    Browse the repository at this point in the history
  2. std: Use native #[thread_local] TLS on wasm

    This commit moves `thread_local!` on WebAssembly targets to using the
    `#[thread_local]` attribute in LLVM. This was recently implemented
    upstream and is [in the process of being documented][dox]. This change
    only takes affect if modules are compiled with `+atomics` which is
    currently unstable and a pretty esoteric method of compiling wasm
    artifacts.
    
    This "new power" of the wasm toolchain means that the old
    `wasm-bindgen-threads` feature of the standard library can be removed
    since it should now be possible to create a fully functioning threaded
    wasm module without intrusively dealing with libstd symbols or
    intrinsics. Yay!
    
    [dox]: WebAssembly/tool-conventions#116
    alexcrichton committed Jul 25, 2019
    Configuration menu
    Copy the full SHA
    dc50a63 View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2019

  1. Configuration menu
    Copy the full SHA
    a6d6eea View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5b82289 View commit details
    Browse the repository at this point in the history
  3. Simplify SaveHandler trait

    This extracts the core visiting logic
    Mark-Simulacrum committed Jul 27, 2019
    Configuration menu
    Copy the full SHA
    5ff0856 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2019

  1. miri: add get and get_mut to AllocMap; use that in get_size_and_align…

    … and avoid rightwards drift
    RalfJung committed Jul 28, 2019
    Configuration menu
    Copy the full SHA
    828e7b6 View commit details
    Browse the repository at this point in the history
  2. cleanup: Remove some language features related to built-in macros

    They are now library features.
    petrochenkov committed Jul 28, 2019
    Configuration menu
    Copy the full SHA
    b92697b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c119291 View commit details
    Browse the repository at this point in the history
  4. bypass x86stdcall.rs for vxworks

    ignore wait-forked-but-failed-child.rs as there is no command 'ps' on vxWorks
    
    ignore process-sigpipe.rs as there is no 'sh' on vxWorks
    
    ignore core-run-destroy.rs as there is no 'cat' and 'sleep' on vxWorks
    bpangWR committed Jul 28, 2019
    Configuration menu
    Copy the full SHA
    173cbf1 View commit details
    Browse the repository at this point in the history
  5. replace match by ok()

    RalfJung committed Jul 28, 2019
    Configuration menu
    Copy the full SHA
    0e602f1 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2a49dd0 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2019

  1. Rollup merge of rust-lang#62809 - alexcrichton:wasm-llvm-9, r=nikic

    rustc: Update wasm32 support for LLVM 9
    
    This commit brings in a number of minor updates for rustc's support for
    the wasm target which has changed in the LLVM 9 update. Notable updates
    include:
    
    * The compiler now no longer manually inserts the `producers` section,
      instead relying on LLVM to do so. LLVM uses the `llvm.ident` metadata
      for the `processed-by` directive (which is now emitted on the wasm
      target in this PR) and it uses debuginfo to figure out what `language`
      to put in the `producers` section.
    
    * Threaded WebAssembly code now requires different flags to be passed
      with LLD. In LLD we now pass:
    
      * `--shared-memory` - required since objects are compiled with
        atomics. This also means that the generated memory will be marked as
        `shared`.
      * `--max-memory=1GB` - required with the `--shared-memory` argument
        since shared memories in WebAssembly must have a maximum size. The
        1GB number is intended to be a conservative estimate for rustc, but
        it should be overridable with `-C link-arg` if necessary.
      * `--passive-segments` - this has become the default for multithreaded
        memory, but when compiling a threaded module all data segments need
        to be marked as passive to ensure they don't re-initialize memory
        for each thread. This will also cause LLD to emit a synthetic
        function to initialize memory which users will have to arrange to
        call.
      * The `__heap_base` and `__data_end` globals are explicitly exported
        since they're now hidden by default due to the `--export` flags we
        pass to LLD.
    Centril authored Jul 29, 2019
    Configuration menu
    Copy the full SHA
    778b631 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#63055 - Mark-Simulacrum:save-analysis-clean…

    …-2, r=Xanewok
    
    Various cleanups to save analysis
    Centril authored Jul 29, 2019
    Configuration menu
    Copy the full SHA
    b52a95d View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#63076 - RalfJung:miri-fn-ptr-alloc-size, r=…

    …oli-obk
    
    Miri: fix determining size of an "extra function" allocation
    
    Fixes [a bug](rust-lang/miri#862) introduced by rust-lang#62982. Best reviewed commit-by-commit.
    
    r? @oli-obk
    Centril authored Jul 29, 2019
    Configuration menu
    Copy the full SHA
    5922a19 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#63077 - petrochenkov:nolangfeat, r=petroche…

    …nkov
    
    cleanup: Remove some language features related to built-in macros
    
    They are now library features.
    Cleanup after rust-lang#62086.
    The unstable book files are moved because tidy complained.
    Centril authored Jul 29, 2019
    Configuration menu
    Copy the full SHA
    7f2c3e1 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#63086 - BaoshanPang:testcases, r=nagisa

    Ignore test cases that are not supported by vxWorks
    
    bypass x86stdcall.rs for vxworks
    
    ignore wait-forked-but-failed-child.rs as there is no command 'ps' on vxWorks
    
    ignore process-sigpipe.rs as there is no 'sh' on vxWorks
    
    ignore core-run-destroy.rs as there is no 'cat' and 'sleep' on vxWorks
    Centril authored Jul 29, 2019
    Configuration menu
    Copy the full SHA
    f6f2142 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#63092 - Centril:update-impl-trait-gates, r=…

    …varkor
    
    Update `impl Trait` gate issues
    
    cc rust-lang#63065
    cc rust-lang#63063
    
    r? @varkor cc @alexreg
    Centril authored Jul 29, 2019
    Configuration menu
    Copy the full SHA
    f8321d0 View commit details
    Browse the repository at this point in the history