Commit Graph

61561 Commits

Author SHA1 Message Date
Jeffrey Seyfried b3d73995da Fix ICE on certain sequence repetitions. 2017-02-10 23:58:18 +00:00
bors 064a0ee131 Auto merge of #39490 - RReverser:em-linker, r=alexcrichton
Add Emscripten-specific linker

Emscripten claims to accept most GNU linker options, but in fact most of `-Wl,...` are useless for it and instead it requires some additional special options which are easier to handle in a separate trait.

Currently added:
 - `export_symbols`: works on executables as special Emscripten case since staticlibs/dylibs aren't compiled to JS, while exports are required to be accessible from JS.
Fixes #39171.
 - `optimize` - translates Rust's optimization level to Emscripten optimization level (whether passed via `-C opt-level=...` or `-O...`).
Fixes #36899.
 - `debuginfo` - translates debug info; Emscripten has 5 debug levels while Rust has 3, so chose to translate `-C debuginfo=1` to `-g3` (preserves whitespace, variable and function names for easy debugging).
Fixes #36901.
 - `no_default_libraries` - tells Emscripten to exclude `memcpy` and co.

TODO (in future PR): dynamic linking via `SIDE_MODULE` / `MAIN_MODULE` mechanism.
2017-02-10 23:50:46 +00:00
bors 2425b22774 Auto merge of #39438 - clarcharr:box_from, r=alexcrichton
Conversions between slices and boxes

This allows conversion for `Copy` slices, `str`, and `CStr` into their boxed counterparts.

This also adds the method `CString::into_boxed_c_str`.

I would like to add similar implementations for `OsStr` as well, but I have not figured out how.
2017-02-10 21:11:29 +00:00
whataloadofwhat ca92c51682 Change std::panicking::try::Data into a union
No longer potentially call `mem::uninitialized::<!>()`

Fixes #39432
2017-02-10 19:20:28 +00:00
Aaron Power 5c295110fd Updated installing nightly instructions 2017-02-10 18:44:32 +00:00
Marco A L Barbosa a8364acafb Allow rustc data structures compile to android
flock structure is defined in asm*/fcntl.h. This file on android is
generated from the linux kernel source, so they are the same.
2017-02-10 16:34:10 -02:00
Simonas Kazlauskas f3bd723101 Fix intcast, use it where appropriate 2017-02-10 19:47:09 +02:00
Simonas Kazlauskas 7d1f36a482 Inline open_drop_for_variant & clean matches::test 2017-02-10 19:47:09 +02:00
Simonas Kazlauskas 49ccc106da Rebase fixups 2017-02-10 19:47:09 +02:00
Simonas Kazlauskas 1949bdf531 Fix tests 2017-02-10 19:47:08 +02:00
Simonas Kazlauskas 6c19104c43 Fix build
Additionally, revert unnecessary changes to ty::layout
2017-02-10 19:47:06 +02:00
Simonas Kazlauskas eb727a8faa Add TerminatorKind::if_ convenience constructor
Constructs a TerminatorKind::SwitchInt for an equivalent conditional true-false branch.
2017-02-10 19:45:55 +02:00
Simonas Kazlauskas a8b7b62185 Revert use of layout code in typeck::collect 2017-02-10 19:45:53 +02:00
Simonas Kazlauskas 362eb7ea07 Inspect now does not force on-stack Lvalue 2017-02-10 19:44:00 +02:00
Simonas Kazlauskas 76d9a4e646 Fix codegen test 2017-02-10 19:44:00 +02:00
Simonas Kazlauskas 8e00d28ff4 Prefer switching on false for boolean switches
This ends up not really mattering because we generate a plain conditional branch in LLVM either
way.
2017-02-10 19:44:00 +02:00
Simonas Kazlauskas 4be18488a7 Fix SwitchInt building in ElaborateDrops pass
Previously it used to build a switch in a way that didn’t preserve the invariat of SwitchInt. Now
it builds it in an optimal way too, where otherwise branch becomes all the branches which did not
have partial variant drops.
2017-02-10 19:44:00 +02:00
Simonas Kazlauskas c9939863ca Fix the IntTypeExt::to_ty() lifetime bounds 2017-02-10 19:43:57 +02:00
Simonas Kazlauskas 64182a587c Reimplement simplify_cfg for SwitchInt
First example of optimisation that applies to many more cases than originally.
2017-02-10 19:42:41 +02:00
Simonas Kazlauskas 92c56f607b Fix build on further stages 2017-02-10 19:42:41 +02:00
Simonas Kazlauskas a00a0adc79 Only SwitchInt over integers, not all consts
Also use a Cow to avoid full Vec for all SwitchInts
2017-02-10 19:42:41 +02:00
Simonas Kazlauskas aac82d9b13 SwitchInt over Switch
This removes another special case of Switch by replacing it with the more general SwitchInt. While
this is more clunky currently, there’s no reason we can’t make it nice (and efficient) to use.
2017-02-10 19:42:41 +02:00
Simonas Kazlauskas 5d70a7fbe4 AdtDef now contains discr_ty same as layouted 2017-02-10 19:42:39 +02:00
Simonas Kazlauskas 24c93efbb5 Move type of discriminant to AdtDef
Previously AdtDef variants contained ConstInt for each discriminant, which did not really reflect
the actual type of the discriminants. Moving the type into AdtDef allows to easily put the type
into metadata and also saves bytes from ConstVal overhead for each discriminant.

Also arguably the code is cleaner now :)
2017-02-10 19:38:36 +02:00
Ingvar Stepanyan f35b598bbf Disable memory init file until further notice
It's support is currently too buggy in both Rust tests and Cargo.
2017-02-10 17:34:05 +00:00
Simonas Kazlauskas 98d1db7fe3 If is now always a SwitchInt in MIR 2017-02-10 19:31:37 +02:00
Simonas Kazlauskas 779c6b6cb8 Add Rvalue::Discriminant to retrieve discriminant 2017-02-10 19:31:37 +02:00
Ingvar Stepanyan 84c2a67160 Reenable exception catching in Emscripten even on optimized targets 2017-02-10 17:31:04 +00:00
Ingvar Stepanyan eed6168a3b Add Emscripten-specific linker
It claims to accept most GNU linker options, but in fact most of them
have no effect and instead it requires some special options which are
easier to handle in a separate trait.

Currently added:
 - `export_symbols`: works on executables as special Emscripten case
since staticlibs/dylibs aren't compiled to JS, while exports are
required to be accessible from JS.
Fixes #39171.
 - `optimize` - translates Rust's optimization level to Emscripten
optimization level (whether passed via `-C opt-level=...` or `-O...`).
Fixes #36899.
 - `debuginfo` - translates debug info; Emscripten has 5 debug levels
while Rust has 3, so chose to translate `-C debuginfo=1` to `-g3`
(preserves whitespace, variable and function names for easy debugging).
Fixes #36901.
 - `no_default_libraries` - tells Emscripten to exlude `memcpy` and co.
2017-02-10 17:31:04 +00:00
bors bc524d3d55 Auto merge of #39708 - jethrogb:patch-4, r=frewsxcv
Update set operations documentation

Reminding people of set terminology.
2017-02-10 14:26:18 +00:00
Rob Speer 11d36aec83 iterator docs: Move paragraph about discarding; clarify "consumed" 2017-02-10 01:35:29 -05:00
Rob Speer ebf29ef073 Rephrase my proposed edit ("objects" -> "elements") 2017-02-10 01:31:14 -05:00
Rob Speer 5cc5e0851e Fix a misleading statement in `Iterator.nth()`
The `Iterator.nth()` documentation says "Note that all preceding elements will be consumed". I assumed from that that the preceding elements would be the *only* ones that were consumed, but in fact the returned element is consumed as well.

The way I read the documentation, I assumed that `nth(0)` would not discard anything (as there are 0 preceding elements), so I added a sentence clarifying that it does. I also rephrased it to avoid the stunted "i.e." phrasing.
2017-02-10 01:31:14 -05:00
Brian Vincent fb9104768c Dont segfault if btree range is not in order 2017-02-10 00:16:04 -06:00
bors f80514426a Auto merge of #39712 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #39587, #39674, #39693, #39700, #39705, #39707
- Failed merges:
2017-02-10 04:50:08 +00:00
Corey Farwell 84ad515793 Rollup merge of #39707 - durka:parsimonious-span-note, r=jonathandturner
change span_notes to notes in E0368/E0369

Fixes #39650.

All the uses of `span_note` in these errors were reusing the same span as the original error, which causes unnecessary repetition.

For an example, see the changes to [src/test/ui/span/issue-39018.stderr](https://github.com/rust-lang/rust/pull/39707/files?diff=unified#diff-46336f62958fdb34233db414cb9914a1R4).

r? @jonathandturner
2017-02-09 19:43:26 -05:00
Corey Farwell 3199b2478a Rollup merge of #39705 - tspiteri:name-trait-fn-params, r=aturon
name anonymous fn parameters in libcore traits

This follows the discussion in rust-lang/rfcs#1685. The patch gives names to anonymous parameters in libcore traits. It would have two benefits I can think of: firstly it would provide names to tools that can use the names from the traits, and secondly core/std can serve as an example when writing traits; this change helps by not encouraging the use of anonymous parameters.
2017-02-09 19:43:25 -05:00
Corey Farwell af1ddb9ec5 Rollup merge of #39700 - msopena:master, r=est31
Adding compile fail test for const_indexing feature

First attempt at contributing to rust. Picked up an easy feature to test.

Issue #39059
r? @est31
2017-02-09 19:43:24 -05:00
Corey Farwell ae5d8fc929 Rollup merge of #39693 - durka:patch-36, r=petrochenkov
driver: restore partially deleted comment

Fixes #39689. Comment was lost in commit 811b8747 (#31916 @nagisa).
2017-02-09 19:43:23 -05:00
Corey Farwell ed7f3c4635 Rollup merge of #39674 - jseyfried:fix_token_tree_parsing_ICE, r=nrc
parser: fix ICE when parsing token trees after an error

Fixes #39388, fixes #39616.
r? @nrc
2017-02-09 19:43:21 -05:00
Corey Farwell 41653fd26a Rollup merge of #39587 - Keruspe:master, r=alexcrichton
rustbuild: support setting verbosity in config.toml

Most if not all the configuration is settable trhough config.toml but the verbosity isn't yet.

This avoids having to pass -v to x.py on each command if you want verbosity to be always on.
2017-02-09 19:43:20 -05:00
Brian Anderson e491f39914 Update 1.15.1 relnotes 2017-02-10 00:30:02 +00:00
Alex Burka 9fffd14171 change span_notes to notes in E0368/E0369 2017-02-09 22:45:42 +00:00
Jethro Beekman ba82a76db9 Update set operations documentation
Reminding people of set terminology.
2017-02-09 14:16:16 -08:00
bors 24a70eb598 Auto merge of #39694 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #39604, #39619, #39670, #39678, #39682, #39683
- Failed merges:
2017-02-09 21:58:10 +00:00
Trevor Spiteri e626a6807c name anonymous fn parameters in libcore traits 2017-02-09 22:31:21 +01:00
Sean Griffin b3937ea862 Explicitly mention that `Vec::reserve` is based on len not capacity
I spent a good chunk of time tracking down a buffer overrun bug that
resulted from me mistakenly thinking that `reserve` was based on the
current capacity not the current length. It would be helpful if this
were called out explicitly in the docs.
2017-02-09 13:58:48 -05:00
Mario ec4a3cc371 Adding compile fail test for const_indexing feature 2017-02-09 19:39:46 +01:00
Michael Howell bc4ad1a2c9 Add the short type to inline links, too 2017-02-09 11:02:01 -07:00
Michael Howell fce944d4e7 Add the item type to the tooltip
See:
https://users.rust-lang.org/t/seeking-opinions-from-colorblind-rustaceans-coloring-in-rustdoc-code-blocks
2017-02-09 10:38:29 -07:00