Commit Graph

49200 Commits

Author SHA1 Message Date
Scott Olson
f8b61340e3 Refactor MIR building for arguments. 2015-12-30 06:55:51 -06:00
bors
176ee349a7 Auto merge of #30542 - nrc:errs-base, r=nagisa
As discussed [here](https://internals.rust-lang.org/t/more-structured-errors/3005)

r? @nikomatsakis or anyone else on the @rust-lang/compiler team
2015-12-30 12:27:10 +00:00
Tshepang Lekhonkhobe
a4da9aced9 doc: add graves 2015-12-30 13:30:39 +02:00
Tshepang Lekhonkhobe
6d388da45f doc: add some links for io::stdio 2015-12-30 12:41:15 +02:00
bors
a06bb977d8 Auto merge of #30458 - fhahn:fix-warnings-tests-stdlib, r=sanxiyn
This PR siliences some warnings when compiling stdlib with --test. Mostly remove some unused imports and added a few `#[allow(..)]`.

I also marked some signal handling functions with `#[cfg(not(test))]`, because they are only called through `rt::lang_start`, which is also marked as  `#[cfg(not(test))]`
2015-12-30 07:35:10 +00:00
Scott Olson
b65277496c Fix argument indices in MIR for closures.
Previously, all references to closure arguments went to the argument before the
one they should (e.g. to arg1 when it was supposed to be arg2). This was because
the MIR builder did not account for the implicit arguments that come before the
explicit arguments, and closures have one implicit argument - the struct
containing the captures.
2015-12-29 22:55:38 -06:00
Scott Olson
31578f5bbf Fix MIR var names and keep them in sync. 2015-12-29 20:32:37 -06:00
Scott Olson
4b605e4938 Use longer names for MIR variable names. 2015-12-29 20:12:54 -06:00
Nick Cameron
04d972906d Rebasing and review comments 2015-12-30 14:54:36 +13:00
Nick Cameron
aaa02b3ff9 Refactoring 2015-12-30 14:27:59 +13:00
Nick Cameron
95dc7efad0 use structured errors 2015-12-30 14:27:59 +13:00
Nick Cameron
253a1cefd8 Structured diagnostics 2015-12-30 14:27:59 +13:00
bors
6e2a64b57a Auto merge of #29974 - brson:gold, r=alexcrichton
When using `cc` for linking rustc will, if gold is available (by looking for `/usr/bin/ld.gold`), pass `-fuse-ld=gold` to `cc`.

In some scenarios gold links much faster than ld. Servo uses it to considerably speed up linking. gold behaves nearly identically to ld (though I think there are rare corner cases that don't work still). I've run this through crater and everything there continues to link.

To disable, pass `-C disable-gold`.
2015-12-30 01:07:19 +00:00
bors
c1035b3522 Auto merge of #30619 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #30253, #30390, #30405, #30549, #30603, #30610
- Failed merges:
2015-12-29 22:21:57 +00:00
Luqman Aden
f88c808b73 Process candidates for match in the same order as written in the source. 2015-12-29 17:03:56 -05:00
Ori Avtalion
e8e649239c book: Replace "an &mut" with "a mut". Fixes #30568 2015-12-29 23:13:23 +02:00
Steve Klabnik
5a02d2293a Rollup merge of #30610 - steveklabnik:gh30600, r=sfackler
Also, make its panic description identical in wording to assert_eq.

Fixes #30600
2015-12-29 15:55:09 -05:00
Steve Klabnik
9ef4030692 Rollup merge of #30603 - cmr:extern-failure-error-message, r=Manishearth
@ubsan brought up this relatively poor error message. This adds a
help message hinting when the problem actually is, and how to fix
it.
2015-12-29 15:55:09 -05:00
Steve Klabnik
bfa36c9ab8 Rollup merge of #30549 - mitaa:doc_dstruct, r=brson
(reported in #30477)
2015-12-29 15:55:09 -05:00
Steve Klabnik
ccaa7e5146 Rollup merge of #30405 - durka:patch-12, r=steveklabnik
Fixes #30217.
2015-12-29 15:55:09 -05:00
Steve Klabnik
2493fbf547 Rollup merge of #30390 - mitaa:patch-1, r=steveklabnik
None of my devices/browsers renders this correctly.

r? @steveklabnik
2015-12-29 15:55:08 -05:00
Steve Klabnik
8e127ee626 Rollup merge of #30253 - Manishearth:diag-401-improve, r=steveklabnik
r? @steveklabnik
2015-12-29 15:55:08 -05:00
Simonas Kazlauskas
feab2ae77e Implement as casting (Misc cast kind) 2015-12-29 20:47:18 +02:00
arcnmx
43ab6c7d5a AsRef and related conversions for CString 2015-12-29 13:02:08 -05:00
Steve Klabnik
d6275b3591 Correct the documentation of debug_assert_eq
Also, make its panic description identical in wording to assert_eq.

Fixes #30600
2015-12-29 11:01:35 -05:00
Steve Klabnik
0c6c34de87 Remove "Learn Rust" from TRPL.
Some history:

While getting Rust to 1.0, it was a struggle to keep the book in a
working state. I had always wanted a certain kind of TOC, but couldn't
quite get it there.

At the 11th hour, I wrote up "Rust inside other langauges" and "Dining
Philosophers" in an attempt to get the book in the direction I wanted to
go. They were fine, but not my best work. I wanted to further expand
this section, but it's just never going to end up happening. We're doing
the second draft of the book now, and these sections are basically gone
already.

Here's the issues with these two sections, and removing them just fixes
it all:

// Philosophers

There was always controversy over which ones were chosen, and why. This
is kind of a perpetual bikeshed, but it comes up every once in a while.

The implementation was originally supposed to show off channels, but
never did, due to time constraints. Months later, I still haven't
re-written it to use them.

People get different results and assume that means they're wrong, rather
than the non-determinism inherent in concurrency. Platform differences
aggrivate this, as does the exact amount of sleeping and printing.

// Rust Inside Other Languages

This section is wonderful, and shows off a strength of Rust. However,
it's not clear what qualifies a language to be in this section. And I'm
not sure how tracking a ton of other languages is gonna work, into the
future; we can't test _anything_ in this section, so it's prone to
bitrot.

By removing this section, and making the Guessing Game an initial
tutorial, we will move this version of the book closer to the future
version, and just eliminate all of these questions.

In addition, this also solves the 'split-brained'-ness of having two
paths, which has endlessly confused people in the past.

I'm sad to see these sections go, but I think it's for the best.

Fixes #30471
Fixes #30163
Fixes #30162
Fixes #25488
Fixes #30345
Fixes #28713
Fixes #28915

And probably others. This lengthy list alone is enough to show that
these should have been removed.

RIP.
2015-12-29 10:58:31 -05:00
Florian Hahn
e27cbeff37 Fix warnings when compiling stdlib with --test 2015-12-29 16:07:01 +01:00
Corey Richardson
992feab697
Add a hint when given --extern with an indeterminate type
@ubsan brought up this relatively poor error message. This adds a
help message hinting when the problem actually is, and how to fix
it.
2015-12-29 00:25:37 -05:00
Scott Olson
e69713db9e Add comments and simplify MIR graphviz code. 2015-12-28 17:17:53 -06:00
Scott Olson
9000ecf761 Rewrite MIR graphviz printing and improve MIR debug printing. 2015-12-28 17:17:53 -06:00
bors
9007d63f24 Auto merge of #30548 - mmcco:linux-syscall, r=brson
There's no need for us to redeclare it in an extern block.

We should probably put the syscall number constants in libc too.
2015-12-28 20:11:34 +00:00
Simonas Kazlauskas
e137c2ad0a [MIR] Translate ConstVal::Function
This moves back (essentially reverts #30265) into MIR-specific translation code, but keeps the
funcition split out, since it is expected to eventually become recursive.
2015-12-28 21:27:10 +02:00
Brian Anderson
34dc0e0739 Link with ld.gold by default
To disable, pass `-C disable-gold`
2015-12-28 18:08:16 +00:00
Michael Woerister
fa2a7411e4 Use a more efficient encoding for opaque data in RBML. 2015-12-28 12:15:44 -05:00
bors
27a1834ce5 Auto merge of #30588 - nagisa:mir-unit-enums-again, r=eddyb
A dumb mistake on my part from previous PR fixing unit enums in MIR.
2015-12-28 14:32:09 +00:00
Simonas Kazlauskas
e7cab13037 [MIR] Fix setting discriminant for unit enums 2015-12-28 15:48:01 +02:00
Ms2ger
b2c370370e Rename ExplicitSelfCategory's variants and stop re-exporting them. 2015-12-28 12:52:43 +01:00
bors
89753077fc Auto merge of #30570 - fhartwig:dead-doc-links, r=steveklabnik
r? @steveklabnik
2015-12-28 09:55:45 +00:00
bors
3989f655e0 Auto merge of #30547 - mmcco:cfg, r=sanxiyn 2015-12-28 06:07:34 +00:00
bors
0e9f6ecd0e Auto merge of #30579 - dotdash:30478, r=arielb1
`auto_ref()` currently returns an Rvalue datum for the ref'd value,
which is fine for thin pointers, but for fat pointers this means that
once the pointer is moved out of that datum, its memory will be marked
as dead. And because there is not necessarily an intermediate temporary
involved we can end up marking memory as dead that is actually still
used.

As I don't want to break the micro-optimization for thin pointers by
always returning an Lvalue datum, I decided to only do so for fat
pointers.

Fix #30478
2015-12-28 02:29:14 +00:00
bors
b4707ebca3 Auto merge of #30582 - arielb1:self-test, r=eddyb
the old code was *so terrible*.

r? @eddyb
2015-12-27 23:26:18 +00:00
Ariel Ben-Yehuda
c00b5dc70a remove hack in region inference
I forgot about it in the previous commit
2015-12-28 01:21:25 +02:00
Ariel Ben-Yehuda
efc45758fd rewrite the method-receiver matching code
the old code was *so terrible*.
2015-12-28 00:52:37 +02:00
bors
ded10f4313 Auto merge of #30575 - jswalden:error-handling-typo, r=apasel422
Didn't build/test the change, but if that one-character fix isn't correct, I'll eat my hat.  :-)  Found this reading the book over the last week or two since Mozlando -- much enjoying the book so far.
2015-12-27 19:50:09 +00:00
Björn Steinbrink
575f690b39 Fix auto_ref() for fat pointers
`auto_ref()` currently returns an Rvalue datum for the ref'd value,
which is fine for thin pointers, but for fat pointers this means that
once the pointer is moved out of that datum, its memory will be marked
as dead. And because there is not necessarily an intermediate temporary
involved we can end up marking memory as dead that is actually still
used.

As I don't want to break the micro-optimization for thin pointers by
always returning an Lvalue datum, I decided to only do so for fat
pointers.

Fix #30478
2015-12-27 17:57:49 +01:00
Jeff Walden
68c0f024cf Change the typo 'that' to 'than' in the book error-handling chapter. 2015-12-27 00:24:45 -06:00
bors
2ced149925 Auto merge of #30566 - salty-horse:doc_typo, r=apasel422
Small typo. vectors -> vector.
2015-12-27 01:00:53 +00:00
bors
0c7c94e8a0 Auto merge of #30562 - nagisa:mir-unit-enums, r=luqmana
Thanks @arielb1!
r? @luqmana
2015-12-26 22:58:34 +00:00
Florian Hartwig
eaa94c52a1 Fix links in char docs 2015-12-26 22:04:18 +01:00
Ori Avtalion
d6d949a62a book: Fix typo 2015-12-26 22:29:02 +02:00