Commit graph

65108 commits

Author SHA1 Message Date
bors 39220a9d9f Auto merge of #42751 - arielb1:fast-representable, r=eddyb
Memoize types in `is_representable` to avoid exponential worst-case

I could have made representability a cached query, but that would have
been added complexity for not much benefit - outside of the exponential
worst-case, this pass is fast enough already.

Fixes #42747.

r? @eddyb
2017-06-21 12:28:48 +00:00
bors 03198da2ad Auto merge of #42750 - arielb1:unwind-stack, r=eddyb
Update LLVM to pick StackColoring improvement

Fixes #40883.

r? @eddyb
2017-06-21 10:06:13 +00:00
bors 37a991abc0 Auto merge of #42664 - alexcrichton:moar-crates, r=eddyb
Remove in-tree flate/getopts crates

Remove `src/libflate` in favor of `flate2` on crates.io and `src/libgetopts` in favor of `getopts` on crates.io. The replacements have slightly different APIs and the usage in the compiler has been updated to reflect this.

This uncovered an unfortunate limitation of the compiler today to deal with linking everything correctly, and the workaround can be found documented in `src/librustc/Cargo.toml`.
2017-06-21 06:27:36 +00:00
bors 6ccfe68076 Auto merge of #42002 - sfackler:trusted-read, r=alexcrichton
Add a Read::initializer method

This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.

cc @SimonSapin

r? @alexcrichton
2017-06-21 04:14:46 +00:00
Steven Fackler ecbb896b9e Add Read::initializer.
This is an API that allows types to indicate that they can be passed
buffers of uninitialized memory which can improve performance.
2017-06-20 20:26:22 -07:00
bors bb143890a4 Auto merge of #42076 - alex-ozdemir:master, r=nrc
Clearer Error Message for Duplicate Definition

Clearer use of the error message and span labels to communicate duplication definitions/imports.

fixes #42061
2017-06-21 00:06:02 +00:00
bors 445077963c Auto merge of #42780 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #42271, #42717, #42728, #42749, #42756, #42772
- Failed merges:
2017-06-20 21:08:28 +00:00
Corey Farwell 58425ef71d Rollup merge of #42772 - MaloJaffre:libc, r=alexcrichton
Update libc to 0.2.24

Fixes  #42427.
2017-06-20 16:28:32 -04:00
Corey Farwell f9edbcccc5 Rollup merge of #42756 - sanxiyn:name-for-must-use, r=estebank
Show type name for unused_must_use lint

Fix #42688.
2017-06-20 16:28:31 -04:00
Corey Farwell d3e116a945 Rollup merge of #42749 - frewsxcv:frewsxcxv/doc-examples, r=QuietMisdreavus
Additions/improvements for doc examples.

None
2017-06-20 16:28:30 -04:00
Corey Farwell d92edacf8e Rollup merge of #42728 - jseyfried:fix_resolve_perf, r=nrc
resolve: fix perf bug

Fixes #42544.
r? @nrc
2017-06-20 16:28:27 -04:00
Corey Farwell dbe16e067f Rollup merge of #42717 - ollie27:into_to_from2, r=sfackler
Convert `Into<Box<[T]>> for Vec<T>` into `From<Vec<T>> for Box<[T]>`

As the `collections` crate has been merged into `alloc` in #42648 this impl is now possible. This is the final part of #42129 missing from #42227.
2017-06-20 16:28:26 -04:00
Corey Farwell 4c43bc32b7 Rollup merge of #42271 - tinaun:charfromstr, r=alexcrichton
add `FromStr` Impl for `char`

fixes #24939.

is it possible to use pub(restricted) instead of using a stability attribute for the internal error representation? is it needed at all?
2017-06-20 16:28:25 -04:00
Alex Crichton 5c3d0e6de3 Switch to the crates.io getopts crate
This commit deletes the in-tree `getopts` crate in favor of the crates.io-based
`getopts` crate. The main difference here is with a new builder-style API, but
otherwise everything else remains relatively standard.
2017-06-20 12:43:12 -07:00
Corey Farwell 58bbe1d68c Add a couple doc additional examples for env::join_paths. 2017-06-20 13:49:42 -04:00
Corey Farwell 93abc2f877 Add doc example for CString::from_raw. 2017-06-20 13:49:42 -04:00
Corey Farwell d3c26fe7e3 Add doc example for FromBytesWithNulError. 2017-06-20 13:49:42 -04:00
Corey Farwell 4797d8446c Add doc example for NulError. 2017-06-20 13:49:42 -04:00
Corey Farwell e52d2f2ad0 Add doc example for CStr::to_str. 2017-06-20 13:49:42 -04:00
Corey Farwell 0962394b84 Add doc example for CString::as_c_str. 2017-06-20 13:49:42 -04:00
Corey Farwell 65793b30d3 Add doc example for Box<CStr>::into_c_string. 2017-06-20 13:49:27 -04:00
Corey Farwell db97145150 Add doc example for CString::into_boxed_c_str. 2017-06-20 13:49:27 -04:00
Corey Farwell 82ba871c70 Add doc example for CStr::to_string_lossy. 2017-06-20 13:49:27 -04:00
Corey Farwell 5d71e8cd7e Add error scenario doc examples for CStr::from_bytes_with_nul. 2017-06-20 13:49:27 -04:00
Corey Farwell 7f687f8602 Add doc example for CStr::to_bytes_with_nul. 2017-06-20 13:49:27 -04:00
Corey Farwell 0fad2e038a Add doc example for CStr::to_bytes. 2017-06-20 13:49:10 -04:00
Alex Crichton a4024c58e1 Remove the in-tree flate crate
A long time coming this commit removes the `flate` crate in favor of the
`flate2` crate on crates.io. The functionality in `flate2` originally flowered
out of `flate` itself and is additionally the namesake for the crate. This will
leave a gap in the naming (there's not `flate` crate), which will likely cause a
particle collapse of some form somewhere.
2017-06-20 07:11:29 -07:00
bors 29bce6e220 Auto merge of #42716 - alexbool:cstr-inlines, r=BurntSushi
Mark smaller CStr and CString functions as #[inline]
2017-06-20 13:25:21 +00:00
Malo Jaffré 174a7fc4e8 Update libc to 0.2.24
Fixes  #42427.
2017-06-20 13:42:52 +02:00
bors 380100c568 Auto merge of #42571 - tlively:wasm-dev, r=alexcrichton
Enable wasm LLVM backend

Enables compilation to WebAssembly with the LLVM backend using the target triple "wasm32-unknown-unknown". This is the beginning of my work on #38804.

**edit:** The new new target is now wasm32-experimental-emscripten instead of wasm32-unknown-unknown.
2017-06-20 09:44:40 +00:00
tinaun fd9d7aa2cf added FromStr Impl for char 2017-06-20 04:38:02 -04:00
Alexander Bulaev bcb5b13b85 Mark smaller CStr and CString functions as #[inline] 2017-06-20 11:18:52 +03:00
bors 753fee4ab6 Auto merge of #42495 - alexcrichton:new-stage0, r=Mark-Simulacrum
Bump to 1.20.0 and update stage0 compiler

Betas are hot off the bots, let's get them while they're fresh.
2017-06-20 07:22:38 +00:00
Alex Crichton be7ebdd512 Bump version and stage0 compiler 2017-06-19 22:25:05 -07:00
bors 1143eb26a2 Auto merge of #42313 - pnkfelix:allocator-integration, r=alexcrichton
Allocator integration

Lets start getting some feedback on `trait Alloc`.

Here is:
 *  the `trait Alloc` itself,
 * the `struct Layout` and `enum AllocErr` that its API relies on
 * a `struct HeapAlloc` that exposes the system allocator as an instance of `Alloc`
 * an integration of `Alloc` with `RawVec`
 * ~~an integration of `Alloc` with `Vec`~~

 TODO
 * [x] split `fn realloc_in_place` into `grow` and `shrink` variants
 * [x] add `# Unsafety` and `# Errors` sections to documentation for all relevant methods
 * [x] remove `Vec` integration with `Allocator`
 * [x] add `allocate_zeroed` impl to `HeapAllocator`
 * [x] remove typedefs e.g. `type Size = usize;`
 * [x] impl `trait Error` for all error types in PR
 * [x] make `Layout::from_size_align` public
 * [x] clarify docs of `fn padding_needed_for`.
 * [x] revise `Layout` constructors to ensure that [size+align combination is valid](https://github.com/rust-lang/rust/pull/42313#issuecomment-306845446)
 * [x] resolve mismatch re requirements of align on dealloc. See [comment](https://github.com/rust-lang/rust/pull/42313#issuecomment-306202489).
2017-06-20 05:02:19 +00:00
bors e00c0401b8 Auto merge of #42754 - alexcrichton:update-cargo, r=jonathandturner
Update `wincolor` dep for Cargo

Closes rust-lang/cargo#4189
2017-06-20 02:34:41 +00:00
Alex Crichton 55a629d496 Ignore a spuriously failing test on asmjs
Other tests are already ignored for missing `rust_begin_unwind`, let's add
another.
2017-06-19 12:40:51 -07:00
Seo Sanghyeon 05540bf08b Show type name for unused_must_use lint 2017-06-20 04:36:56 +09:00
Ariel Ben-Yehuda 4f1da874b8 Update LLVM to pick StackColoring improvement
Fixes #40883.
2017-06-19 20:55:56 +03:00
Alex Crichton 5bc4031e63 Update wincolor dep for Cargo
Closes rust-lang/cargo#4189
2017-06-19 10:44:12 -07:00
Ariel Ben-Yehuda ae8545bd14 Memoize types in is_representable to avoid exponential worst-case
I could have made representability a cached query, but that would have
been added complexity for not much benefit - outside of the exponential
worst-case, this pass is fast enough already.

Fixes #42747.
2017-06-19 18:44:57 +03:00
Alex Crichton 609d43a15a Minor Allocator doc fix 2017-06-19 07:51:00 -07:00
Alex Crichton 879ec55d2e Ignore test for not-closed issue
Confirmed on IRC that the bug isn't fully fixed, and the "resurgence" here isn't
the fault of this PR.
2017-06-19 07:49:50 -07:00
bors 04145943a2 Auto merge of #39409 - pnkfelix:mir-borrowck2, r=nikomatsakis
MIR EndRegion Statements (was MIR dataflow for Borrows)

This PR adds an `EndRegion` statement to MIR (where the `EndRegion` statement is what terminates a borrow).

An earlier version of the PR implemented a dataflow analysis on borrow expressions, but I am now factoring that into a follow-up PR so that reviewing this one is easier. (And also because there are some revisions I want to make to that dataflow code, but I want this PR to get out of WIP status...)

This is a baby step towards MIR borrowck. I just want to get the review process going while I independently work on the remaining steps.
2017-06-19 13:01:27 +00:00
bors 5ce5126199 Auto merge of #42737 - fhahn:rust-log-crash, r=michaelwoerister
rustc: Check if def_path_hash_to_def_id is populated before accessing.

Without this patch, there is an ICE when running rustc with
RUST_LOG=debug. This patch updates extract_def_id to check if the map
has been populated before accessing it. This fixes the problem, but
maybe we do not need to compute the incremental hashes maps in the first
place when we are not in incremental mode?
2017-06-19 08:45:00 +00:00
Jeffrey Seyfried 3c1af32abb resolve: fix perf bug. 2017-06-19 07:23:26 +00:00
bors 8525eb820b Auto merge of #42722 - est31:master, r=Mark-Simulacrum
Remove SUMMARY.md of the unstable book as its autogenerated

Its being autogenerated now, as of PR #42612.
It seems I forgot to remove it.

Also, sort the entries of SUMMARY.md alphabetically.
2017-06-19 03:42:27 +00:00
bors 8e26c0eb38 Auto merge of #42740 - arielb1:bad-arm-2, r=alexcrichton
Backport fixes to LLVM 4.0 ARM codegen bugs

So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM
trunk. This backports 5 of them:
r297871 - ARM: avoid clobbering register in v6 jump-table expansion.
    - fixes rust-lang/rust#42248
r294949 - [Thumb-1] TBB generation: spot redefinitions of index
r295816 - [ARM] Fix constant islands pass.
r300870 - [Thumb-1] Fix corner cases for compressed jump tables
r302650 - [IfConversion] Add missing check in
IfConversion/canFallThroughTo
    - unblocks rust-lang/rust#39409

r? @alexcrichton
beta-nominating because this fixes regressions introduced by LLVM 4.0.
2017-06-19 01:31:31 +00:00
bors 30322efee2 Auto merge of #42735 - arielb1:generic-closure-fn, r=eddyb
collector: apply param substs to closures cast to fn items

Fixes #42718.

r? @eddyb
beta-nominating because serious ICE in newly-stabilized feature.
2017-06-18 23:22:35 +00:00
Ariel Ben-Yehuda 207951b169 Backport fixes to LLVM 4.0 ARM codegen bugs
So ARM had quite a few codegen bugs on LLVM 4.0 which are fixed on LLVM
trunk. This backports 5 of them:
r297871 - ARM: avoid clobbering register in v6 jump-table expansion.
    - fixes rust-lang/rust#42248
r294949 - [Thumb-1] TBB generation: spot redefinitions of index
r295816 - [ARM] Fix constant islands pass.
r300870 - [Thumb-1] Fix corner cases for compressed jump tables
r302650 - [IfConversion] Add missing check in
IfConversion/canFallThroughTo
    - unblocks rust-lang/rust#39409
2017-06-19 00:53:27 +03:00