1. 23 3月, 2019 1 次提交
  2. 22 3月, 2019 8 次提交
  3. 21 3月, 2019 7 次提交
  4. 20 3月, 2019 11 次提交
    • B
      Auto merge of #57018 - dcreager:redundant-linker, r=alexcrichton · 9c499ccf
      bors 提交于
      Keep last redundant linker flag, not first
      
      When a library (L1) is passed to the linker multiple times, this is sometimes purposeful: there might be several other libraries in the linker command (L2 and L3) that all depend on L1.  You'd end up with a (simplified) linker command that looks like:
      
      ```
      -l2 -l1 -l3 -l1
      ```
      
      With the previous behavior, when rustc encountered a redundant library, it would keep the first instance, and remove the later ones, resulting in:
      
      ```
      -l2 -l1 -l3
      ```
      
      This can cause a linker error, because on some platforms (e.g. Linux), the linker will only include symbols from L1 that are needed *at the point it's referenced in the command line*.  So if L3 depends on additional symbols from L1, which aren't needed by L2, the linker won't know to include them, and you'll end up with "undefined symbols" errors.
      
      A better behavior is to keep the *last* instance of the library:
      
      ```
      -l2 -l3 -l1
      ```
      
      This ensures that all "downstream" libraries have been included in the linker command before the "upstream" library is referenced.
      
      Fixes rust-lang#47989
      9c499ccf
    • B
      Auto merge of #59298 - kennytm:rollup, r=kennytm · 0c8700b9
      bors 提交于
      Rollup of 5 pull requests (all of which changes `src/ci/docker`)
      
      Successful merges:
      
       - #58986 ([CI] Update binutils for powerpc64 and powerpc64le)
       - #59038 (Track embedded-book in the toolstate)
       - #59055 (CI: Set job names.)
       - #59253 (Calculate Docker cache hash precisely from Dockerfile's dependencies)
       - #59257 (Update CI configuration for building Redox libraries)
      
      Failed merges:
      
      r? @ghost
      0c8700b9
    • K
      Rollup merge of #59257 - redox-os:upstream-redox, r=sanxiyn · f31974a1
      kennytm 提交于
      Update CI configuration for building Redox libraries
      
      This fixes https://github.com/rust-lang/rust/issues/59254
      f31974a1
    • K
      Rollup merge of #59253 - kennytm:precise-docker-cache-hash, r=pietroalbini · abdb7733
      kennytm 提交于
      Calculate Docker cache hash precisely from Dockerfile's dependencies
      
      #58549 changed the Docker cache calculation to include every file under `src/ci/docker`, so that when files under `dist-x86_64-linux` is changed, its dependent image `dist-i686-linux` will also be rebuilt.
      
      However, this ultraconservative solution caused the `dist-i686-linux` to be rebuilt every time an irrelevant Dockerfile (e.g. the PowerPC ones) is changed, which increases the building time beyond 3 hours and forcing a spurious but expected failure.
      
      This commit instead parses the Dockerfile itself and look for the actual dependencies. The scripts needs to be copied into the Docker image, which must be done with the COPY command, so we just need to find all lines with a COPY command and add the source file into the hash calculator.
      
      Note: this script only handles single-lined COPY command in the form `COPY src1 src2 src3 dst`, since these are the only variant used inside this repository.
      abdb7733
    • K
      Rollup merge of #59055 - ehuss:ci-job-name, r=alexcrichton · 9da8fe4e
      kennytm 提交于
      CI: Set job names.
      
      This should make it easier to identify what each job is doing when looking at the Travis or Appveyor UI.
      
      - Set `name` for each job in Travis.
      - Move `CI_JOB_NAME` to the front in Appveyor so that it appears first in the UI.
      9da8fe4e
    • K
      Rollup merge of #59038 - kennytm:track-embedded-book, r=oli-obk · 5d8a30d2
      kennytm 提交于
      Track embedded-book in the toolstate
      
      The embedded book was tested in the tools job but the test result was never published. This PR adds maintainer information of embedded-book. This PR also requires the next update to embedded-book to pass the all tests, currently its state is test-fail.
      
      rust-lang-nursery/rust-toolstate#10 should be merged before this PR.
      5d8a30d2
    • K
      Rollup merge of #58986 - cuviper:ppc64-binutils, r=alexcrichton · b3490cf4
      kennytm 提交于
      [CI] Update binutils for powerpc64 and powerpc64le
      
      Cargo powerpc64 and powerpc64le are seeing `SIGILL` crashes in openssl,
      which was found to be a linking problem, fixed by newer binutils. See
      <https://github.com/rust-lang/rust/issues/57345#issuecomment-462094555>
      
      For powerpc64 we're using crosstool-ng, which doesn't offer a newer
      binutils version, but we can just compile it separately. On powerpc64le
      we're already building binutils. Both are now updated to binutils 2.32.
      
      Closes rust-lang/cargo#6320
      Closes rust-lang/rust#57345
      Closes rust-lang/rustup.rs#1620
      
      r? @alexcrichton
      b3490cf4
    • K
      Use `curl` instead of `wget` in install-x86_64-redox.sh · f8bffad4
      kennytm 提交于
      f8bffad4
    • D
      Ignore test on Windows · 32d99efa
      Douglas Creager 提交于
      32d99efa
    • B
      Auto merge of #57842 - gnzlbg:extract_libtest, r=gnzlbg · 3eb4890d
      bors 提交于
      Move libtest out of rust-lang/rust
      
      This is a first step towards a number of goals explained in this internals post: https://internals.rust-lang.org/t/a-path-forward-towards-re-usable-libtest-functionality-custom-test-frameworks-and-a-stable-bench-macro
      
      This PR does not fully remove libtest from rust-lang/rust, we keep a shim that imports and re-exports the external libtest, and adds the proc_macro dependency, etc.
      
      r? @alexcrichton
      
      cc @djrenren @petrochenkov
      3eb4890d
    • G
      Remove libterm from bootstrap · 1446b242
      gnzlbg 提交于
      1446b242
  5. 19 3月, 2019 13 次提交
    • D
      Explicitly prefer dynamic linking in test case · b58e19db
      Douglas Creager 提交于
      b58e19db
    • B
      Auto merge of #59293 - Centril:rollup, r=Centril · 7a4df3b5
      bors 提交于
      Rollup of 11 pull requests
      
      Successful merges:
      
       - #56348 (Add todo!() macro)
       - #57729 (extra testing of how NLL handles wildcard type `_`)
       - #57847 (dbg!() without parameters)
       - #58778 (Implement ExactSizeIterator for ToLowercase and ToUppercase)
       - #58812 (Clarify distinction between floor() and trunc())
       - #58939 (Fix a tiny error in documentation of std::pin.)
       - #59116 (Be more discerning on when to attempt suggesting a comma in a macro invocation)
       - #59252 (add self to mailmap)
       - #59275 (Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs)
       - #59280 (Stabilize refcell_map_split feature)
       - #59290 (Run branch cleanup after copy prop)
      
      Failed merges:
      
      r? @ghost
      7a4df3b5
    • M
      Rollup merge of #59290 - oli-obk:trivial_move_prop, r=davidtwco · 7f7829fa
      Mazdak Farrokhzad 提交于
      Run branch cleanup after copy prop
      
      This is preliminary work for https://github.com/rust-lang/rust/pull/59288#issuecomment-474277172 which gets rid of `if` in the HIR.
      
      cc @rust-lang/wg-mir-opt 	@Centril
      7f7829fa
    • M
      Rollup merge of #59280 - joshlf:sandbox/joshlf/stabilize-refcell-map-split, r=cramertj,Centril · a3581aca
      Mazdak Farrokhzad 提交于
      Stabilize refcell_map_split feature
      
      Closes #51476.
      a3581aca
    • M
      Rollup merge of #59275 - regexident:docs-self, r=joshtriplett · 1ec1c5da
      Mazdak Farrokhzad 提交于
      Replaced self-reflective explicit types with clearer `Self` or `Self::…` in stdlib docs
      
      Many docs examples use explicit types instead of the semantically more clear `Self`/`Self::…` aliases.
      
      By using the latter it's clear that the value's type depends on either `Self`, or an associated type of `Self`, instead of some constant type. It's also more consistent (and I'd argue correct), as the current docs aren't really consistent in this, as can be seen from the diff.
      
      This is a best effort PR, as I was basically going through the docs manually, looking for offending examples. I'm sure I missed a few. Gotta start somewhere.
      1ec1c5da
    • M
      Rollup merge of #59252 - lcnr:mailmap, r=Centril · 05e8051d
      Mazdak Farrokhzad 提交于
      add self to mailmap
      05e8051d
    • M
      Rollup merge of #59116 - estebank:comma-sugg, r=petrochenkov · 8ebe2acb
      Mazdak Farrokhzad 提交于
      Be more discerning on when to attempt suggesting a comma in a macro invocation
      
      Fix #58796.
      8ebe2acb
    • M
      Rollup merge of #58939 - taeguk:fix-doc-about-pin, r=rkruppe · 61ff8879
      Mazdak Farrokhzad 提交于
      Fix a tiny error in documentation of std::pin.
      
      `new_unmoved` must be `mut` for passing to `std::mem::swap`.
      61ff8879
    • M
      Rollup merge of #58812 - jonhoo:floor_v_trunc, r=alexcrichton · 5abd9c7d
      Mazdak Farrokhzad 提交于
      Clarify distinction between floor() and trunc()
      
      `floor()` rounds towards `-INF`, `trunc()` rounds towards 0.
      This PR clarifies this in the examples.
      5abd9c7d
    • M
      Rollup merge of #58778 - xfix:exact_size_case_mapping_iter, r=SimonSapin · fff85861
      Mazdak Farrokhzad 提交于
      Implement ExactSizeIterator for ToLowercase and ToUppercase
      fff85861
    • M
      Rollup merge of #57847 - clarcharr:dbg_no_params, r=Centril · d4ef74b2
      Mazdak Farrokhzad 提交于
      dbg!() without parameters
      
      Fixes #57845.
      d4ef74b2
    • M
      Rollup merge of #57729 -... · c1975dbd
      Mazdak Farrokhzad 提交于
      Rollup merge of #57729 - pnkfelix:issue-55748-pat-types-are-constraints-on-bindings-too, r=nikomatsakis
      
      extra testing of how NLL handles wildcard type `_`
      
      test that wildcard type `_` is not duplicated by `type Foo<X> = (X, X);` and potentially instantiated at different types when used in type ascriptions in let bindings.
      
      (NLL's handling of this for the type ascription *expression form* is currently broken, or at least differs from what AST-borrowck does. I'll file a separate bug about that. Its not something critical to address since that expression is guarded by `#![feature(type_ascription)]`.)
      
      cc #55748
      c1975dbd
    • M
      Rollup merge of #56348 - matklad:todo-macro, r=withoutboats · d4dd8604
      Mazdak Farrokhzad 提交于
      Add todo!() macro
      
      The primary use-case of `todo!()` macro is to be a much easier to type
      alternative to `unimplemented!()` macro.
      
      EDIT: hide unpopular proposal about re-purposing unimplemented
      
      <details>
      However, instead of just replacing `unimplemented!()`, it gives it a
      more nuanced meaning: a thing which is intentionally left
      unimplemented and which should not be called at runtime. Usually,
      you'd like to prevent such cases statically, but sometimes you, for
      example, have to implement a trait only some methods of which are
      applicable. There are examples in the wild of code doing this thing,
      and in this case, the current message of `unimplemented`, "not *yet*
      implemented" is slightly misleading.
      
      With the addition of TODO, you have three nuanced choices for a
      `!`-returning macro (in addition to a good-old panic we all love):
      
        * todo!()
        * unreachable!()
        * unimplemented!()
      
      Here's a rough guideline what each one means:
      
      - `todo`: use it during development, as a "hole" or placeholder. It
        might be a good idea to add a pre-commit hook which checks that
        `todo` is not accidentally committed.
      
      - `unreachable!()`: use it when your code can statically guarantee
        that some situation can not happen. If you use a library and hit
        `unreachable!()` in the library's code, it's definitely a bug in the
        library. It's OK to have `unreachable!()` in the code base,
        although, if possible, it's better to replace it with
        compiler-verified exhaustive checks.
      
      - `unimplemented!()`: use it when the type checker forces you to
        handle some situation, but there's a contract that a callee must not
        actually call the code. If you use a library and hit
        `unimplemented!()`, it's probably a bug in your code, though
        it *could* be a bug in the library (or library docs) as well. It is
        ok-ish to see an `unimplemented!()` in real code, but it usually
        signifies a clunky, eyebrow-rising API.
      </details>
      d4dd8604