1. 09 1月, 2020 1 次提交
  2. 29 12月, 2019 1 次提交
  3. 24 12月, 2019 1 次提交
  4. 23 12月, 2019 1 次提交
  5. 22 12月, 2019 1 次提交
  6. 18 12月, 2019 2 次提交
  7. 11 12月, 2019 1 次提交
    • A
      rustc: Link LLVM directly into rustc again · 7f23e6e8
      Alex Crichton 提交于
      This commit builds on #65501 continue to simplify the build system and
      compiler now that we no longer have multiple LLVM backends to ship by
      default. Here this switches the compiler back to what it once was long
      long ago, which is linking LLVM directly to the compiler rather than
      dynamically loading it at runtime. The `codegen-backends` directory of
      the sysroot no longer exists and all relevant support in the build
      system is removed. Note that `rustc` still supports a dynamically loaded
      codegen backend as it did previously, it just no longer supports
      dynamically loaded codegen backends in its own sysroot.
      
      Additionally as part of this the `librustc_codegen_llvm` crate now once
      again explicitly depends on all of its crates instead of implicitly
      loading them through the sysroot. This involved filling out its
      `Cargo.toml` and deleting all the now-unnecessary `extern crate`
      annotations in the header of the crate. (this in turn required adding a
      number of imports for names of macros too).
      
      The end results of this change are:
      
      * Rustbuild's build process for the compiler as all the "oh don't forget
        the codegen backend" checks can be easily removed.
      * Building `rustc_codegen_llvm` is much simpler since it's simply
        another compiler crate.
      * Managing the dependencies of `rustc_codegen_llvm` is much simpler since
        it's "just another `Cargo.toml` to edit"
      * The build process should be a smidge faster because there's more
        parallelism in the main rustc build step rather than splitting
        `librustc_codegen_llvm` out to its own step.
      * The compiler is expected to be slightly faster by default because the
        codegen backend does not need to be dynamically loaded.
      * Disabling LLVM as part of rustbuild is still supported, supporting
        multiple codegen backends is still supported, and dynamic loading of a
        codegen backend is still supported.
      7f23e6e8
  8. 11 11月, 2019 1 次提交
  9. 26 10月, 2019 2 次提交
  10. 22 10月, 2019 1 次提交
    • A
      Remove `src/llvm-emscripten` submodule · c7d285b7
      Alex Crichton 提交于
      With #65251 landed there's no need to build two LLVM backends and ship
      them with rustc, every target we have now uses the same LLVM backend!
      
      This removes the `src/llvm-emscripten` submodule and additionally
      removes all support from rustbuild for building the emscripten LLVM
      backend. Multiple codegen backend support is left in place for now, and
      this is intended to be an easy 10-15 minute win on CI times by avoiding
      having to build LLVM twice.
      c7d285b7
  11. 19 10月, 2019 1 次提交
  12. 17 10月, 2019 1 次提交
    • T
      Upgrade Emscripten targets to use upstream LLVM backend · 2bf59bea
      Thomas Lively 提交于
       - Compatible with Emscripten 1.38.46-upstream or later upstream.
       - Refactors the Emscripten target spec to share code with other wasm
         targets.
       - Replaces the old incorrect wasm32 C call ABI with the correct one,
         preserving the old one as wasm32_bindgen_compat for wasm-bindgen
         compatibility.
       - Updates the varargs ABI used by Emscripten and deletes the old one.
       - Removes the obsolete wasm32-experimental-emscripten target.
       - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
      2bf59bea
  13. 06 10月, 2019 1 次提交
  14. 04 10月, 2019 2 次提交
    • T
      Fix ABI, run and fix more tests, re-enable CI for PRs · 5b56c660
      Thomas Lively 提交于
      5b56c660
    • T
      Upgrade Emscripten targets to use upstream LLVM backend · 9a55103b
      Thomas Lively 提交于
       - Refactors the Emscripten target spec to share code with other wasm
         targets.
       - Replaces the incorrect wasm32 C call ABI with the old asmjs
         version, which is correct for both wasm32 and JS.
       - Updates the varargs ABI used by Emscripten and deletes the old one.
       - Removes the obsolete wasm32-experimental-emscripten target.
       - Temporarily makes Emscripten targets use panic=abort by default
         because supporting unwinding will require an LLVM patch.
      9a55103b
  15. 24 9月, 2019 3 次提交
  16. 06 9月, 2019 1 次提交
  17. 28 8月, 2019 1 次提交
    • A
      std: Remove the `wasm_syscall` feature · 8fe65da9
      Alex Crichton 提交于
      This commit removes the `wasm_syscall` feature from the
      wasm32-unknown-unknown build of the standard library. This feature was
      originally intended to allow an opt-in way to interact with the
      operating system in a posix-like way but it was never stabilized.
      Nowadays with the advent of the `wasm32-wasi` target that should
      entirely replace the intentions of the `wasm_syscall` feature.
      8fe65da9
  18. 24 8月, 2019 1 次提交
    • A
      bootstrap: Merge the libtest build step with libstd · b47c9690
      Alex Crichton 提交于
      Since its inception rustbuild has always worked in three stages: one for
      libstd, one for libtest, and one for rustc. These three stages were
      architected around crates.io dependencies, where rustc wants to depend
      on crates.io crates but said crates don't explicitly depend on libstd,
      requiring a sysroot assembly step in the middle. This same logic was
      applied for libtest where libtest wants to depend on crates.io crates
      (`getopts`) but `getopts` didn't say that it depended on std, so it
      needed `std` built ahead of time.
      
      Lots of time has passed since the inception of rustbuild, however,
      and we've since gotten to the point where even `std` itself is depending
      on crates.io crates (albeit with some wonky configuration). This
      commit applies the same logic to the two dependencies that the `test`
      crate pulls in from crates.io, `getopts` and `unicode-width`. Over the
      many years since rustbuild's inception `unicode-width` was the only
      dependency picked up by the `test` crate, so the extra configuration
      necessary to get crates building in this crate graph is unlikely to be
      too much of a burden on developers.
      
      After this patch it means that there are now only two build phasese of
      rustbuild, one for libstd and one for rustc. The libtest/libproc_macro
      build phase is all lumped into one now with `std`.
      
      This was originally motivated by rust-lang/cargo#7216 where Cargo was
      having to deal with synthesizing dependency edges but this commit makes
      them explicit in this repository.
      b47c9690
  19. 20 8月, 2019 1 次提交
    • M
      Remove serialization of diagnostics to files · 72e2cfd9
      Mark Rousskov 提交于
      This is no longer used by the index generator and was always an unstable
      compiler detail, so strip it out.
      
      This also leaves in RUSTC_ERROR_METADATA_DST since the stage0 compiler
      still needs it to be set.
      72e2cfd9
  20. 09 8月, 2019 7 次提交
  21. 03 8月, 2019 1 次提交
  22. 02 8月, 2019 1 次提交
  23. 29 7月, 2019 1 次提交
  24. 27 7月, 2019 1 次提交
  25. 26 7月, 2019 2 次提交
    • A
      rustc: Stabilize options for pipelined compilation · 17312337
      Alex Crichton 提交于
      This commit stabilizes options in the compiler necessary for Cargo to
      enable "pipelined compilation" by default. The concept of pipelined
      compilation, how it's implemented, and what it means for rustc are
      documented in #60988. This PR is coupled with a PR against Cargo
      (rust-lang/cargo#7143) which updates Cargo's support for pipelined
      compliation to rustc, and also enables support by default in Cargo.
      (note that the Cargo PR cannot land until this one against rustc lands).
      
      The technical changes performed here were to stabilize the functionality
      proposed in #60419 and #60987, the underlying pieces to enable pipelined
      compilation support in Cargo. The issues have had some discussion during
      stabilization, but the newly stabilized surface area here is:
      
      * A new `--json` flag was added to the compiler.
      * The `--json` flag can be passed multiple times.
      * The value of the `--json` flag is a comma-separated list of
        directives.
      * The `--json` flag cannot be combined with `--color`
      * The `--json` flag must be combined with `--error-format=json`
      * The acceptable list of directives to `--json` are:
        * `diagnostic-short` - the `rendered` field of diagnostics will have a
          "short" rendering matching `--error-format=short`
        * `diagnostic-rendered-ansi` - the `rendered` field of diagnostics
          will be colorized with ansi color codes embedded in the string field
        * `artifacts` - JSON blobs will be emitted for artifacts being emitted
          by the compiler
      
      The unstable `-Z emit-artifact-notifications` and `--json-rendered`
      flags have also been removed during this commit as well.
      
      Closes #60419
      Closes #60987
      Closes #60988
      17312337
    • G
      `run_quiet` outputs stdout/stderr when things go wrong. · 9d796ebb
      Giles Cope 提交于
      (was `run` uses `run_silent` under the covers.)
      9d796ebb
  26. 16 7月, 2019 1 次提交
    • A
      ci: Remove Travis/AppVeyor configuration · 3dd00bac
      Alex Crichton 提交于
      Now that we've fully moved to Azure Pipelines and bors has been updated
      to only gate on Azure this commit removes the remaining Travis/AppVeyor
      support contained in this repository. Most of the deletions here are
      related to producing better output on Travis by folding certain
      sections. This isn't supported by Azure so there's no need to keep it
      around, and if Azure ever adds support we can always add it back!
      3dd00bac
  27. 06 7月, 2019 2 次提交