1. 07 1月, 2018 4 次提交
    • K
      Rollup merge of #47205 - eddyb:alloc-id, r=oli-obk · c6bf11cf
      kennytm 提交于
      miri: use AllocId instead of u64.
      
      This makes @alexreg's miri allocation -> LLVM global translation more straight-forward.
      
      r? @oli-obk
      c6bf11cf
    • K
      Rollup merge of #47190 - EdSchouten:cloudabi-libpanic, r=alexcrichton · 48a0f3a5
      kennytm 提交于
      Port libpanic_abort and libpanic_unwind to CloudABI
      
      This change ports both the libpanic* libraries to CloudABI.
      
      The most interesting part of this pull request, however, is that it imports the CloudABI system call API into the Rust tree through a Git submodule. These will also be used by my port of libstd to CloudABI extensively, as that library obviously needs to invoke system calls to implement its primitives.
      
      I have taken the same approach as libc: `src/libcloudabi` + `src/rustc/cloudabi_shim`. If some other naming scheme is preferred, feel free to let me know! As `libcloudabi` is pretty small, maybe it makes sense to copy, instead of using a submodule?
      48a0f3a5
    • K
      Rollup merge of #47170 - eddyb:us-vs-usize, r=nikomatsakis · b63f8978
      kennytm 提交于
      rustc: use {U,I}size instead of {U,I}s shorthands.
      
      `Us`/`Is` come from a time when `us` and `is` were the literal suffixes that are now `usize` / `isize`.
      
      r? @nikomatsakis
      b63f8978
    • K
      Rollup merge of #46947 - tspiteri:checked-div-rem-none, r=frewsxcv · d9d5c667
      kennytm 提交于
      doc: improve None condition doc for `checked_div` and `checked_rem`
      
      This commit improves the condition mentioned in the docs for which `checked_div` and `checked_rem` return `None`.
      
      For signed division, the commit changes "the operation results in overflow" to "the division results in overflow", otherwise there is room for misinterpretation for `checked_rem`: Without considering overflow, `MIN % -1` would be simply zero, allowing the misinterpretation that "the operation" does not result in overflow in this case. This ambiguity is removed using "when the division results in overflow".
      
      For unsigned division, the condition for `None` should be simply when `rhs == 0`, as no other overflow is possible.
      d9d5c667
  2. 06 1月, 2018 12 次提交
  3. 05 1月, 2018 22 次提交
    • B
      Auto merge of #47142 - sdroege:trusted-random-access-chunks, r=kennytm · b98fd524
      bors 提交于
      Implement TrustedRandomAccess for slice::{Chunks, ChunksMut, Windows}
      
      As suggested by @bluss in https://github.com/rust-lang/rust/issues/47115#issuecomment-354888334
      b98fd524
    • S
      d301da55
    • S
      Disable failing tests temporarily · 0a24acda
      Sam 提交于
      0a24acda
    • B
      Auto merge of #47214 - kennytm:rollup, r=kennytm · dd582ac3
      bors 提交于
      Rollup of 10 pull requests
      
      - Successful merges: #47030, #47033, #47110, #47149, #47150, #47160, #47162, #47182, #47198, #47199
      - Failed merges:
      dd582ac3
    • K
      Rollup merge of #47199 - alexcrichton:stable-no-dev, r=kennytm · 3fcb9957
      kennytm 提交于
      rustbuild: Don't allow stable bootstrap from dev
      
      I forgot to update the bootstrap compiler for the 1.23.0 release so let's make
      sure it doesn't happen again!
      3fcb9957
    • K
      Rollup merge of #47198 - dzamlo:patch-2, r=frewsxcv · 71c8e106
      kennytm 提交于
      Fix an error in std::process documentation
      71c8e106
    • K
      Rollup merge of #47182 - aheart:master, r=steveklabnik · 1fea7519
      kennytm 提交于
      Equivalent example for ? operator
      
      The example with the ? operator in the documentation for try! macro was missing file.write_all.
      Now all three examples are consistent.
      1fea7519
    • K
      Rollup merge of #47162 - stjepang:cleanup-btreeset, r=alexcrichton · ff2f328d
      kennytm 提交于
      Remove `T: Ord` bound from `BTreeSet::{is_empty, len}`
      
      This change makes the API for `BTreeSet` more consistent with `BTreeMap`, where `BTreeMap::{is_empty, len}` don't require `T: Ord` either.
      
      Also, it reduces the number of `impl`s for `BTreeSet`, making the generated documentation look much cleaner. Closes #47138.
      
      cc @rust-lang/libs
      ff2f328d
    • K
      Rollup merge of #47160 - rust-lang:steveklabnik-patch-1, r=alexcrichton · a5dd5fe0
      kennytm 提交于
      This isn't in Rust 1.23
      
      r? @alexcrichton
      a5dd5fe0
    • K
      Rollup merge of #47150 - dtolnay:join, r=jseyfried · 5a5b16ad
      kennytm 提交于
      Return None from Span::join if in different files
      
      Fixes #47148. r? @abonander
      5a5b16ad
    • K
      Rollup merge of #47149 - dtolnay:spans, r=jseyfried · 2ac50feb
      kennytm 提交于
      Span::resolved_at and Span::located_at to combine behavior of two spans
      
      Proc macro spans serve two mostly unrelated purposes: controlling name resolution and controlling error messages. It can be useful to mix the name resolution behavior of one span with the line/column error message locations of a different span.
      
      In particular, consider the case of a trait brought into scope within the def_site of a custom derive. I want to invoke trait methods on the fields of the user's struct. If the field type does not implement the right trait, I want the error message to underline the corresponding struct field.
      
      Generating the method call with the def_site span is not ideal -- it compiles and runs but error messages sadly always point to the derive attribute like we saw with Macros 1.1.
      
      ```
        |
      4 | #[derive(HeapSize)]
        |          ^^^^^^^^
      ```
      
      Generating the method call with the same span as the struct field's ident or type is not correct -- it shows the right underlines but fails to resolve to the trait in scope at the def_site.
      
      ```
        |
      7 |     bad: std::thread::Thread,
        |     ^^^^^^^^^^^^^^^^^^^^^^^^
      ```
      
      The correct span for the method call is one that combines the def_site's name resolution with the struct field's line/column.
      
      ```rust
      field.span.resolved_at(Span::def_site())
      
      // equivalently
      Span::def_site().located_at(field.span)
      ```
      
      Adding both because which one is more natural will depend on context.
      
      Addresses https://github.com/rust-lang/rust/issues/38356#issuecomment-354947143. r? @jseyfried
      2ac50feb
    • K
      Rollup merge of #47110 - EdSchouten:cloudabi-tls, r=kennytm · 26d129ce
      kennytm 提交于
      Use the right TLS model for CloudABI.
      
      CloudABI doesn't do dynamic linking. For this reason, there is no need
      to handle any other TLS model than local-exec. CloudABI's C library
      doesn't provide a __tls_get_addr() function to do Dynamic TLS.
      
      By forcing local-exec to be used here, we ensure that we don't generate
      function calls to __tls_get_addr().
      26d129ce
    • K
      Rollup merge of #47033 - EdSchouten:cloudabi-oom, r=kennytm · 016f7f49
      kennytm 提交于
      Disable printing of error message on file descriptor 2 on CloudABI.
      
      As CloudABI is a capability-based runtime environment, file descriptors
      are the mechanism that grants rights to a process. These file
      descriptors may be passed into processes on startup using a utility
      called cloudabi-run. Unlike the POSIX shell, cloudabi-run does not
      follow the UNIX model where file descriptors 0, 1 and 2 represent stdin,
      stdout and stderr. There can be arbitrary many (or few) file descriptors
      that can be provided. For this reason, CloudABI's C library also doesn't
      define STD*_FILENO. liblibc should also not declare these.
      
      Disable the code in liballoc_system that tries to print error messages
      over file descriptor 2. For now, let's keep this function quiet. We'll
      see if we can think of some other way to log this in the future.
      016f7f49
    • K
      Rollup merge of #47030 - ollie27:stab, r=alexcrichton · 63c8e0c8
      kennytm 提交于
      Correct a few stability attributes
      
      * The extra impls for `ManuallyDrop` were added in #44310 which was only stabilised in 1.22.0.
      * The impls for `SliceIndex` were stabilised in #43373 but as `RangeInclusive` and `RangeToInclusive` are still unstable the impls should remain unstable.
      * The `From` impls for atomic integers were added in #45610 but most atomic integers are still unstable.
      * The `shared_from_slice2` impls were added in #45990 but they won't be stable until 1.24.0.
      * The `Mutex` and `RwLock` impls were added in #46082 but won't be stable until 1.24.0.
      63c8e0c8
    • B
      Auto merge of #46907 - varkor:contrib-8, r=nagisa · 8a11b8cd
      bors 提交于
      Allow non-alphabetic underscores in camel case
      
      Certain identifiers, such as `X86_64`, cannot currently be unambiguously represented in camel case (`X8664`, `X86_64`, `X8_664`, etc. are all transformed to the same identifier). This change relaxes the rules so that underscores are permitted between two non-alphabetic characters under `#[forbid(non_camel_case_types)]`. Fixes #34633 and fixes #41621.
      8a11b8cd
    • E
      miri: use AllocId instead of u64. · 0907494a
      Eduard-Mihai Burtescu 提交于
      0907494a
    • B
      Auto merge of #46739 - arielb1:simple-loops, r=nikomatsakis · 5e66887f
      bors 提交于
      [needs perf run] Try to improve LLVM pass ordering
      
      Fixes #45466
      5e66887f
    • G
      Fix search bar defocus · eea860f8
      Guillaume Gomez 提交于
      eea860f8
    • M
      [unix] Don't clone command-line args on startup · 91c3eee1
      Matt Brubeck 提交于
      91c3eee1
    • A
      rustbuild: Don't allow stable bootstrap from dev · 0e795a21
      Alex Crichton 提交于
      I forgot to update the bootstrap compiler for the 1.23.0 release so let's make
      sure it doesn't happen again!
      0e795a21
    • L
      Fix an error in std::process documentation · 8fc4a240
      Loïc Damien 提交于
      8fc4a240
    • E
      Make libpanic_unwind build on CloudABI. · 9a8f0a8c
      Ed Schouten 提交于
      CloudABI uses LLVM's libunwind for stack unwinding. There was a small
      bug that went by unnoticed, namely that it was not built with -fno-rtti.
      This caused it to (indirectly) depend on the entire C++ runtime.
      
      Now that that issue has been resolved, it is also perfectly fine to make
      use of this library for programming languages other than C++.
      9a8f0a8c
  4. 04 1月, 2018 2 次提交
    • A
      rustc: Don't use relative paths for extended errors · 8c9bf663
      Alex Crichton 提交于
      These no longer work now that Cargo changes the cwd of rustc while it's running.
      Instead use an absolute path that's set by rustbuild.
      8c9bf663
    • A
      Bump to 1.25.0 · 53fd0c50
      Alex Crichton 提交于
      * Bump the release version to 1.25
      * Bump the bootstrap compiler to the recent beta
      * Allow using unstable rustdoc features on beta - this fix has been applied to
        the beta branch but needed to go to the master branch as well.
      53fd0c50