1. 31 7月, 2017 1 次提交
  2. 30 7月, 2017 16 次提交
  3. 29 7月, 2017 15 次提交
    • J
      Split FL and FD fcntls · a30092fb
      Jeremy Soller 提交于
      a30092fb
    • I
      c83f9753
    • G
      Update cargo version · 5636d325
      Guillaume Gomez 提交于
      5636d325
    • B
      Auto merge of #43534 - alexcrichton:cargo-target-runner, r=Mark-Simulacrum · ad36f8fe
      bors 提交于
      rustbuild: Use Cargo's "target runner"
      
      This commit leverages a relatively new feature in Cargo to execute
      cross-compiled tests, the `target.$target.runner` configuration. We configure it
      through environment variables in rustbuild and this avoids the need for us to
      locate and run tests after-the-fact, instead relying on Cargo to do all that
      execution for us.
      ad36f8fe
    • G
      changing E0623 error message · cb93cc62
      gaurikholkar 提交于
      cb93cc62
    • B
      Auto merge of #43530 - alexcrichton:update-freebsd-compilers, r=Mark-Simulacrum,cuviper · 91aff577
      bors 提交于
      rustbuild: Update cross-compilers for FreeBSD
      
      When working through bugs for the LLVM 5.0 upgrade it looks like the FreeBSD
      cross compilers we're currently using are unable to build LLVM, failing with
      references to the function `std::to_string` claiming it doesn't exist. I don't
      actually know what this function is, but assuming that it was added in a more
      recent version of a C++ standard I've updated the gcc versions for the
      toolchains we're using. This made the error go away!
      91aff577
    • B
      Auto merge of #43527 - alexcrichton:different-llvm-cross, r=Mark-Simulacrum · 8d0ad26b
      bors 提交于
      rustbuild: Tweak how we cross-compile LLVM
      
      In preparation for upgrading to LLVM 5.0 it looks like we need to tweak how we
      cross compile LLVM slightly. It's using `CMAKE_SYSTEM_NAME` to infer whether to
      build libFuzzer which only works on some platforms, and then once we configure
      that it needs to apparently reach into the host build area to try to compile
      `llvm-config` as well. Once these are both configured, though, it looks like we
      can successfully cross-compile LLVM.
      8d0ad26b
    • B
      Auto merge of #43492 - lu-zero:master, r=alexcrichton · 6dd8744a
      bors 提交于
      More Altivec Intrinsics
      6dd8744a
    • B
      Auto merge of #43518 - cuviper:aapcs_vfp, r=eddyb · 42a09c01
      bors 提交于
      Support homogeneous aggregates for hard-float ARM
      
      Hard-float ARM targets use the AAPCS-VFP ABI, which passes and returns
      homogeneous float/vector aggregates in the VFP registers.
      
      Fixes #43329.
      
      r? @EddyB
      42a09c01
    • A
      rustbuild: Use Cargo's "target runner" · 8e7849e7
      Alex Crichton 提交于
      This commit leverages a relatively new feature in Cargo to execute
      cross-compiled tests, the `target.$target.runner` configuration. We configure it
      through environment variables in rustbuild and this avoids the need for us to
      locate and run tests after-the-fact, instead relying on Cargo to do all that
      execution for us.
      8e7849e7
    • A
      rustbuild: Update cross-compilers for FreeBSD · 122fd188
      Alex Crichton 提交于
      When working through bugs for the LLVM 5.0 upgrade it looks like the FreeBSD
      cross compilers we're currently using are unable to build LLVM, failing with
      references to the function `std::to_string` claiming it doesn't exist. I don't
      actually know what this function is, but assuming that it was added in a more
      recent version of a C++ standard I've updated the gcc versions for the
      toolchains we're using. This made the error go away!
      122fd188
    • A
      rustbuild: Tweak how we cross-compile LLVM · 069a1b3c
      Alex Crichton 提交于
      In preparation for upgrading to LLVM 5.0 it looks like we need to tweak how we
      cross compile LLVM slightly. It's using `CMAKE_SYSTEM_NAME` to infer whether to
      build libFuzzer which only works on some platforms, and then once we configure
      that it needs to apparently reach into the host build area to try to compile
      `llvm-config` as well. Once these are both configured, though, it looks like we
      can successfully cross-compile LLVM.
      069a1b3c
    • B
      Auto merge of #43230 - alexcrichton:more-tokenstream, r=nrc,jseyfried · 126321e2
      bors 提交于
      Implement tokenization for some items in proc_macro
      
      This PR is a partial implementation of https://github.com/rust-lang/rust/issues/43081 targeted towards preserving span information in attribute-like procedural macros. Currently all attribute-like macros will lose span information with the input token stream if it's iterated over due to the inability of the compiler to losslessly tokenize an AST node. This PR takes a strategy of saving off a list of tokens in particular AST nodes to return a lossless tokenized version. There's a few limitations with this PR, however, so the old fallback remains in place.
      126321e2
    • A
      syntax: Capture a `TokenStream` when parsing items · 4886ec86
      Alex Crichton 提交于
      This is then later used by `proc_macro` to generate a new
      `proc_macro::TokenTree` which preserves span information. Unfortunately this
      isn't a bullet-proof approach as it doesn't handle the case when there's still
      other attributes on the item, especially inner attributes.
      
      Despite this the intention here is to solve the primary use case for procedural
      attributes, attached to functions as outer attributes, likely bare. In this
      situation we should be able to now yield a lossless stream of tokens to preserve
      span information.
      4886ec86
    • B
      Auto merge of #43298 - gaurikholkar:lifetime_errors, r=estebank · eba9d7f0
      bors 提交于
      improve case with both anonymous lifetime parameters #43269
      
      This is a fix to #43269.
      
      Sample output message-
      
      ```
      
      error[E0623]: lifetime mismatch
        --> $DIR/ex3-both-anon-regions.rs:12:12
         |
      11 | fn foo(x: &mut Vec<&u8>, y: &u8) {
         |                    ---      --- these references must have the same lifetime
      12 |     x.push(y);
         |            ^ data from `y` flows into `x` here
      
      error: aborting due to 2 previous errors
      
      ```
      r? @nikomatsakis
      eba9d7f0
  4. 28 7月, 2017 8 次提交
    • T
      Add Span to ast::WhereClause · 6375b77e
      topecongiro 提交于
      6375b77e
    • A
      Add a failing test for errors in proc macros · 036300aa
      Alex Crichton 提交于
      This test currently fails because the tokenization of an AST item during the
      expansion of a procedural macro attribute rounds-trips through strings, losing
      span information.
      036300aa
    • A
      proc_macro: Use an item's tokens if available · 36f2816a
      Alex Crichton 提交于
      This partly resolves the `FIXME` located in `src/libproc_macro/lib.rs` when
      interpreting interpolated tokens. All instances of `ast::Item` which have a list
      of tokens attached to them now use that list of tokens to losslessly get
      converted into a `TokenTree` instead of going through stringification and losing
      span information.
      
      cc #43081
      36f2816a
    • A
      syntax: Add `tokens: Option<TokenStream>` to Item · 9b2f7624
      Alex Crichton 提交于
      This commit adds a new field to the `Item` AST node in libsyntax to optionally
      contain the original token stream that the item itself was parsed from. This is
      currently `None` everywhere but is intended for use later with procedural
      macros.
      9b2f7624
    • L
      Make LLVMRustHasFeature more robust · c4710203
      Luca Barbato 提交于
      The function should accept feature strings that old LLVM might not
      support.
      
      Simplify the code using the same approach used by
      LLVMRustPrintTargetFeatures.
      
      Dummify the function for non 4.0 LLVM and update the tests accordingly.
      c4710203
    • B
      Auto merge of #43324 - Nashenas88:visit_locations, r=arielb1 · e2b5d7e6
      bors 提交于
      Provide positional information when visiting ty, substs and closure_substs in MIR
      
      This will enable the region renumbering portion of #43234 (non-lexical lifetimes). @nikomatsakis's current plan [here](https://gist.github.com/nikomatsakis/dfc27b28cd024eb25054b52bb11082f2) shows that we need spans of the original code to create new region variables, e.g. `self.infcx.next_region_var(infer::MiscVariable(span))`. The current visitor impls did not pass positional information (`Location` in some, `Span` and `SourceInfo` for others) for all types. I did not expand this to all visits, just the ones necessary for the above-mentioned plan.
      e2b5d7e6
    • B
      Auto merge of #43221 - MaulingMonkey:natvis-improvements, r=michaelwoerister · 6f815ca7
      bors 提交于
      Embed MSVC .natvis files into .pdbs and mangle debuginfo for &str, *T, and [T].
      
      No idea if these changes are reasonable - please feel free to suggest changes/rewrites.  And these are some of my first real commits to any rust codebase - *don't* be gentle, and nitpick away, I need to learn! ;)
      
      ### Overview
      Embedding `.natvis` files into `.pdb`s allows MSVC (and potentially other debuggers) to automatically pick up the visualizers without having to do any additional configuration (other than to perhaps add the relevant .pdb paths to symbol search paths.)
      
      The native debug engine for MSVC parses the type names, making various C++ish assumptions about what they mean and adding various limitations to valid type names.  `&str` cannot be matched against a visualizer, but if we emit `str&` instead, it'll be recognized as a reference to a `str`, solving the problem.  `[T]` is similarly problematic, but emitting `slice<T>` instead works fine as it looks like a template.  I've been unable to get e.g. `slice<u32>&` to match visualizers in VS2015u3, so I've gone with `str*` and `slice<u32>*` instead.
      
      ### Possible Issues
      * I'm not sure if `slice<T>` is a great mangling for `[T]` or if I should worry about name collisions.
      * I'm not sure if `linker.rs` is the right place to be enumerating natvis files.
      * I'm not sure if these type name mangling changes should actually be MSVC specific.  I recall seeing gdb visualizer tests that might be broken if made more general?  I'm hesitant to mess with them without a gdb install.  But perhaps I'm just wracking up technical debt.
        Should I try `pacman -S mingw-w64-x86_64-gdb` and to make things consistent?
      * I haven't touched `const` / `mut` yet, and I'm worried MSVC might trip up on `mut` or their placement.
      * I may like terse oneliners too much.
      * I don't know if there's broader implications for messing with debug type names here.
      * I may have been mistaken about bellow test failures being ignorable / unrelated to this changelist.
      
      ### Test Failures on `x86_64-pc-windows-gnu`
      
      ```
      ---- [debuginfo-gdb] debuginfo-gdb\associated-types.rs stdout ----
              thread '[debuginfo-gdb] debuginfo-gdb\associated-types.rs' panicked at 'gdb not available but debuginfo gdb debuginfo test requested', src\tools\compiletest\src\runtest.rs:48:16
      note: Run with `RUST_BACKTRACE=1` for a backtrace.
      
      [...identical panic causes omitted...]
      
      ---- [debuginfo-gdb] debuginfo-gdb\vec.rs stdout ----
              thread '[debuginfo-gdb] debuginfo-gdb\vec.rs' panicked at 'gdb not available but debuginfo gdb debuginfo test requested', src\tools\compiletest\src\runtest.rs:48:16
      ```
      
      ### Relevant Issues
      * https://github.com/rust-lang/rust/issues/40460 Metaissue for Visual Studio debugging Rust
      * https://github.com/rust-lang/rust/issues/36503 Investigate natvis for improved msvc debugging
      * https://github.com/PistonDevelopers/VisualRust/issues/160 Debug visualization of Rust data structures
      
      ### Pretty Pictures
      ![Collapsed Watch Window](https://user-images.githubusercontent.com/75894/28180998-e44c7516-67bb-11e7-8b48-d4f9605973ae.png)
      ![Expanded Watch Window](https://user-images.githubusercontent.com/75894/28181000-e8da252e-67bb-11e7-96b8-d613310c04dc.png)
      6f815ca7
    • B
      Auto merge of #43505 - eddyb:poly-const-eval-layout-of, r=nikomatsakis · 71678437
      bors 提交于
      rustc_const_eval: always require Substs and a ParamEnv.
      
      Fixes #43357 by tracking the `Substs` and `ParamEnv` for const-evaluation in generic contexts.
      71678437