1. 03 3月, 2018 21 次提交
  2. 02 3月, 2018 17 次提交
    • S
      Revert "correct subtle bug in the type variable code" · f5f53e96
      Sean Griffin 提交于
      This reverts commit ccd92c2a.
      
      This commit is the source of a major perf regression, and was not
      intended to be included in #47861. At some point I must have
      accidentally re-added the commit.
      f5f53e96
    • J
      Impl !Send and !Sync for SourceFile · fce72016
      John Kåre Alsaker 提交于
      fce72016
    • J
      Replace Rc with Lrc for shared data · b74e97cf
      John Kåre Alsaker 提交于
      b74e97cf
    • J
      Fix Decodable impl for Arc · 878f5b05
      John Kåre Alsaker 提交于
      878f5b05
    • P
      Remove print_what_bootstrap_means · 2269ff52
      Phlosioneer 提交于
      It was an existing solution to tell the user why a --help command
      takes a long time to process. However, it would only print if the
      stage0 rust compiler needed to be downloaded, it came after
      update_submodules (which took a long time), and it was immediately
      followed by download messages and loading bars, meaning users could
      easily gloss over the message.
      
      This commit also moves the help message out of main(), and instead
      puts it at the top of bootstrap(). main() is intended to be minimal,
      only handling error messages.
      2269ff52
    • B
      Auto merge of #48653 - Manishearth:rollup2, r=Manishearth · 9cb18a92
      bors 提交于
      Another rollup
      
      None
      9cb18a92
    • B
      Auto merge of #47861 - sgrif:sg-rebase-chalkify-universe-refactorings, r=nikomatsakis · ddfbf2b0
      bors 提交于
      Rebased refactorings for Chalk
      
      The code is Niko's, I just handled the rebase.
      
      r? @nikomatsakis
      ddfbf2b0
    • A
      rustc: More stable hashes of command line arguments · 2e9d9d48
      Alex Crichton 提交于
      Currently rustc isn't always the best at producing deterministic builds of a
      crate when the source directory of a crate is changed. This is happening due to
      what appears two different sources:
      
      * First the `-L` paths passed to rustc are hashed into the crate hash. These
        paths through Cargo are typically absolute paths that can vary if the build
        directory changes.
      
      * Next the paths passed to `--extern` are also hashed which like `-L` can change
        if the build directory changes.
      
      This commit fixes these two sources of nondeterminism by ensuring that avoiding
      tracking the hashes of these arguments on the command line. For `-L` paths
      they're either related to loading crates (whose hashes are tracked elsewhere) or
      native librarise used in the linking phase (which isn't incremental). The
      `--extern` paths are similar in that they're related to crate resolution which
      is already tracked independently of the command line arguments.
      
      Closes #48019
      2e9d9d48
    • K
      Rollup merge of #48570 - Amanieu:aarch64_features, r=alexcrichton · 2b3c815d
      kennytm 提交于
      Add AArch64 features to whitelist
      2b3c815d
    • M
      Rollup merge of #48626 - teiesti:fix-readme, r=frewsxcv · a080d7b2
      Manish Goregaokar 提交于
      Fix link to rustc guide in README.md
      
      This is a follow-up to #48479 and fixes a minor bug with the link to the rustc guide in the README.
      
      r? @nikomatsakis
      
      cc @mark-i-m
      a080d7b2
    • M
      cf0638cf
    • M
      Rollup merge of #48585 - stjepang:stabilize-localkey-try_with, r=alexcrichton · b812b770
      Manish Goregaokar 提交于
      Stabilize LocalKey::try_with
      
      The `LocalKey::try_with` method is now stabilized.
      
      `LocalKey::state` and `LocalKeyState` marked as deprecated. Although, is there any reason to keep them - should we perhaps remove them completely?
      
      Closes #27716
      
      r? @alexcrichton
      b812b770
    • M
      Rollup merge of #48572 - alexcrichton:noexcept-msvc2, r=eddyb · 8025e155
      Manish Goregaokar 提交于
      rustc: Tweak funclet cleanups of ffi functions
      
      This commit is targeted at addressing #48251 by specifically fixing a case where
      a longjmp over Rust frames on MSVC runs cleanups, accidentally running the
      "abort the program" cleanup as well. Added in #46833 `extern` ABI functions in
      Rust will abort the process if Rust panics, and currently this is modeled as a
      normal cleanup like all other destructors.
      
      Unfortunately it turns out that `longjmp` on MSVC is implemented with SEH, the
      same mechanism used to implement panics in Rust. This means that `longjmp` over
      Rust frames will run Rust cleanups (even though we don't necessarily want it
      to). Notably this means that if you `longjmp` over a Rust stack frame then that
      probably means you'll abort the program because one of the cleanups will abort
      the process.
      
      After some discussion on IRC it turns out that `longjmp` doesn't run cleanups
      for *caught* exceptions, it only runs cleanups for cleanup pads. Using this
      information this commit tweaks the codegen for an `extern` function to
      a catch-all clause for exceptions instead of a cleanup block. This catch-all is
      equivalent to the C++ code:
      
          try {
              foo();
          } catch (...) {
              bar();
          }
      
      and in fact our codegen here is designed to match exactly what clang emits for
      that C++ code!
      
      With this tweak a longjmp over Rust code will no longer abort the process. A
      longjmp will continue to "accidentally" run Rust cleanups (destructors) on MSVC.
      Other non-MSVC platforms will not rust destructors with a longjmp, so we'll
      probably still recommend "don't have destructors on the stack", but in any case
      this is a more surgical fix than #48567 and should help us stick to standard
      personality functions a bit longer.
      8025e155
    • M
      Rollup merge of #48522 - etaoins:fix-find-width-of-character-at-span-bounds-check, r=estebank · 75b8c103
      Manish Goregaokar 提交于
      Fix find_width_of_character_at_span bounds check
      
      Commit 0bd96671 added bounds checking of our current target byte position to prevent infinite loops. Unfortunately it was comparing the file-relative `target` versus the global `file_start_pos` and `file_end_pos`.
      
      The result is failing to detect multibyte characters unless their file-relative offset fit within their global offset. This causes other parts of the compiler to generate spans pointing to the middle of a
      multibyte character which will ultimately panic in `bytepos_to_file_charpos`.
      
      Fix by comparing the `target` to the total file size when moving forward and doing checked subtraction when moving backwards. This should preserve the intent of the bounds check while removing the offset confusion.
      
      cc @davidtwco
      
      Fixes #48508
      75b8c103
    • M
      Rollup merge of #48500 - petrochenkov:parpat, r=nikomatsakis · 38f4d557
      Manish Goregaokar 提交于
      Support parentheses in patterns under feature gate
      
      This is a prerequisite for any other extensions to pattern syntax - `|` with multiple patterns, type ascription, `..PAT` in slice patterns.
      
      Closes https://github.com/rust-lang/rfcs/issues/554
      38f4d557
    • M
      Rollup merge of #48446 - mark-i-m:e0245, r=mark-i-m · 39d5e1cb
      Manish Goregaokar 提交于
      Remove E0245; improve E0404
      
      Fix #36337
      
      Somehow this is currently breaking --explain, but I don't understand how.
      
      r? @estebank
      39d5e1cb
    • M
      Rollup merge of #48405 - kennytm:autotoolstate-follow-up, r=Mark-Simulacrum · eadea4ab
      Manish Goregaokar 提交于
      Auto-toolstate management follow-up.
      
      Tracking comment: https://github.com/rust-lang/rust/issues/45861#issuecomment-367302777
      
      * Fixed rust-lang-nursery/rust-toolstate#1, a proper link to the PR will be included.
      * Fixed rust-lang-nursery/rust-toolstate#2, a comment will be posted to the PR if the toolstate changed
      * Toolstate regression will be rejected at the last week of the 6-week cycle (currently entirely date-based).
      * Implemented https://internals.rust-lang.org/t/the-current-submodule-setup-is-not-tenable/6593, moved doc tests of Nomicon, Reference, Rust-by-Example and The Book to the "tools" job and thus allowed to fail like other external tools.
      eadea4ab
  3. 01 3月, 2018 2 次提交