Commit Graph

51294 Commits

Author SHA1 Message Date
Alex Crichton
06773878f3 rustbuild: Document what steps are 2016-02-28 10:50:13 -08:00
Alex Crichton
5abcc78ff8 rustbuild: Compile with the build compiler
This switches the defaults to ensure that everything is built with the build
compiler rather than the host compiler itself (which we're not guaranteed to be
able to run)
2016-02-28 10:50:13 -08:00
Alex Crichton
ed3d46d278 rustbuild: Move assembling rustc to its own step
Right now it's implicitly done as part of building the compiler, but this was
intended to be a standalone step to ensure we tracked what built what.
2016-02-28 10:50:13 -08:00
Alex Crichton
189827bd96 rustbuild: Fix a copy/paste error
Fixes `--step librustc`
2016-02-28 10:50:13 -08:00
Alex Crichton
526640668d rustbuild: Enable cross-compiling LLVM
Currently all multi-host builds assume the the build platform can run the
`llvm-config` binary generated for each host platform we're creating a compiler
for. Unfortunately this assumption isn't always true when cross compiling, so we
need to handle this case.

This commit alters the build script of `rustc_llvm` to understand when it's
running an `llvm-config` which is different than the platform we're targeting for.
2016-02-28 10:50:13 -08:00
Alex Crichton
a707a61cae rustbuild: Fix compiler-rt build on gnueabihf
Needs a different target to get built and also we apparently need to appease the
C++ compiler somehow.
2016-02-28 10:50:13 -08:00
Alex Crichton
52ec682776 rustbuild: Sync changes to Cargo.lock 2016-02-28 10:50:13 -08:00
Alex Crichton
93a3b294c7 rustbuild: Only pass RUSTC_FLAGS to target compiles
These flags aren't applicable to build scripts, and may actuall wreak havoc.
2016-02-28 10:50:13 -08:00
Alex Crichton
90d28ec372 rustbuild: Enable bootstrapping new hosts
This commit fixes a longstanding issue with the makefiles where all host
platforms bootstrap themselves. This commit alters the build logic for the
bootstrap to instead only bootstrap the build triple, and all other compilers
are compiled from that one compiler.

The benefit of this change is that we can cross-compile compilers which cannot
run on the build platform. For example our builders could start creating
`arm-unknown-linux-gnueabihf` compilers.

This reduces the amount of bootstrapping we do, reducing the amount of test
coverage, but overall it should largely just end in faster build times for
multi-host compiles as well as enabling a feature which can't be done today.

cc #5258
2016-02-28 10:50:13 -08:00
Steven Fackler
728d9115e8 Fix windows
Also back out keepalive support for TCP since the API is perhaps not
actually what we want. You can't read the interval on Windows, and
we should probably separate the functionality of turning keepalive on
and overriding the interval.
2016-02-28 09:41:33 -08:00
Steven Fackler
5d6ba17f03 Add UDP functionality from net2 2016-02-28 09:41:33 -08:00
Steven Fackler
827be2de0d Add TCP functionality from net2 2016-02-28 09:41:33 -08:00
Vadim Petrochenkov
b6f441d986 Add some tests 2016-02-28 14:50:58 +03:00
Tshepang Lekhonkhobe
a34fd5c3fe doc: "ref" not needed in the example
Also, `path` seems better than `p`
2016-02-28 09:37:45 +02:00
bors
095f5e7c81 Auto merge of #31902 - mitaa:rdoc-shorter, r=alexcrichton
fixes #31899

r? @alexcrichton
2016-02-28 07:27:12 +00:00
bors
54fdae3d6e Auto merge of #31942 - bluss:iter-desugar, r=steveklabnik
Make for loop desugaring for iterators more precise

The UFCS call IntoIterator::into_iter() is used by the for loop.
2016-02-27 22:33:29 +00:00
bors
d56677a187 Auto merge of #31931 - Luke-Nukem:master, r=steveklabnik
Refinement of paragraph referenced by [this issue](https://github.com/rust-lang/rust/issues/31927).

The paragraph in question had been adjusted already, but I've made some further clarifications which should help with readability and not leave the reader any `dangling pointers`.
2016-02-27 20:26:59 +00:00
bors
d300e4f39b Auto merge of #31915 - nagisa:mir-unpretty-fix, r=arielb1
Fixes https://github.com/rust-lang/rust/issues/31913
2016-02-27 18:12:23 +00:00
Ulrik Sverdrup
33d1a58001 Make for loop desugaring for iterators more precise
The UFCS call IntoIterator::into_iter() is used by the for loop.
2016-02-27 17:33:20 +01:00
bors
c5237b02b9 Auto merge of #31940 - teoryn:patch-2, r=steveklabnik
See http://www.ietf.org/rfc/rfc2119.txt
2016-02-27 15:06:19 +00:00
Kevin Stock
9eda98a587 Resolve ambiguous documentation
See http://www.ietf.org/rfc/rfc2119.txt
2016-02-27 08:26:42 -05:00
Pascal Hertleif
287eb2ac75 Reformat Part of 1.7 Release Notes
- Use unordered nested list for stabilised APIs to improve readability
- Add link to `u32::checked_neg`
- Remove trailing back tick from BTreeMap line
2016-02-27 12:19:08 +01:00
Simonas Kazlauskas
eb69076a0b Add test 2016-02-27 12:45:10 +02:00
Simonas Kazlauskas
1bad5d18b4 Fix MIR unpretty on failure conditions 2016-02-27 12:45:06 +02:00
bors
acdd3b9f5a Auto merge of #31932 - Manishearth:rollup, r=Manishearth
- Successful merges: #31909, #31918, #31922, #31926, #31928, #31929, #31930
- Failed merges:
2016-02-27 08:59:57 +00:00
Alex Burka
54cb2d9586 update snapshot comments 2016-02-27 02:03:02 -05:00
Alex Burka
15303650e8 fix stability hole 2016-02-27 02:01:41 -05:00
Alex Burka
f27a3a304f fix underflow in DoubleEndedIterator::next_back 2016-02-27 02:01:41 -05:00
Alex Burka
1ec3005e45 fix fallout from libsyntax enumpocalypse 2016-02-27 02:01:41 -05:00
Alex Burka
7eb7c56bd4 add indexing with RangeInclusive in libcore and libcollections 2016-02-27 02:01:41 -05:00
Alex Burka
b1b4f50678 add StepBy for RangeInclusive 2016-02-27 02:01:41 -05:00
Alex Burka
24cc90262b note work still to be done
In particular, uses of inclusive ranges within the standard library are
still waiting. Slices and collections can be sliced with `usize` and
`Range*<usize>`, but not yet `Range*Inclusive<usize>`.

Also, we need to figure out what to do about `RangeArgument`. Currently
it has `start()` and `end()` methods which are pretty much identical to
`Range::start` and `Range::end`. For the same reason as Range itself,
these methods can't express a range such as `0...255u8` without
overflow. The easiest choice, it seems to me, is either changing the
meaning of `end()` to be inclusive, or adding a new method, say
`last()`, that is inclusive and specifying that `end()` returns `None`
in cases where it would overflow. Changing the semantics would be a
breaking change, but `RangeArgument` is unstable so maybe we should do
it anyway.
2016-02-27 02:01:41 -05:00
Alex Burka
15a8a296b7 document inclusive range syntax 2016-02-27 02:01:41 -05:00
Alex Burka
e10614a777 adjust range tests
Since the desugaring removed special handling for ranges, the error
message changed and so I had to adjust `range-1`.

Turns out there was a bug where borrowck was too restrictive in some
rare cases of constructing ranges from literals. The `range-2` test
enshrined this bug -- now it's adjusted to test a case that's actually
wrong.
2016-02-27 02:01:41 -05:00
Alex Burka
69719df611 test inclusive ranges
Mostly copy the tests from half-open ranges, adding some more for
DoubleEndedIterator and ExactSizeIterator.

Also thoroughly (I think) test that the feature gates are working.
2016-02-27 02:01:41 -05:00
Alex Burka
37a4cb3212 feature-gate inclusive range syntax 2016-02-27 02:01:41 -05:00
Alex Burka
bd3197c748 remove range lang items
The range desugaring does not use the lang items. Hence I did not add
lang items for inclusive ranges. This cleanup commit removes the old
unused ones as well.

Whether the desugaring _should_ use lang items is another question:
see #30809. But if we decide on a strategy there we can add back these
lang items, and new ones for inclusive ranges.

For stage0 we need to keep the attributes as the lang items still exist
even if they are never used.

This is surprisingly not a breaking change. Unused #[lang] attributes do
not even trigger a lint (see #30881).
2016-02-27 02:01:41 -05:00
Alex Burka
d792183fde fallout from removing hir::ExprRange
A whole bunch of stuff gets folded into struct handling! Plus, removes
an ugly hack from trans and accidentally fixes a bug with constructing
ranges from references (see later commits with tests).
2016-02-27 02:01:41 -05:00
Alex Burka
a331278451 HIR: add inclusive ranges, desugar all ranges (remove ExprRange) 2016-02-27 02:01:41 -05:00
Alex Burka
5daf13cae3 libsyntax: parse inclusive ranges 2016-02-27 02:01:41 -05:00
Alex Burka
c5d58de665 core: add inclusive ranges to core::ops
Since it removes the old iter::{range_inclusive, RangeInclusive} which
were unstable and deprecated, this is a [breaking-change] on nightly.
2016-02-27 02:01:41 -05:00
bors
80dee36438 Auto merge of #31926 - llogiq:more_post, r=eddyb
These `_post` methods are quite helpful to control lint behavior without storing e.g. block node ids. So here are a few more I believe will be helpful.

r? @Manishearth
2016-02-27 06:58:28 +00:00
mitaa
0b3bc9b5e2 Correct plain-summary-line
For plaintext we don't actually need to render the Markdown before
shortening the string. (and this may have led to wrong output)
2016-02-27 06:42:30 +01:00
mitaa
2352c1c539 Clearly separate code blocks from other blocks
For summary descriptions we need the first paragraph (adjacent lines
until a blank line) - but the rendered markdown of a code block did not
leave a blank line in the html and was thus included in the summary line.
2016-02-27 06:42:21 +01:00
Manish Goregaokar
7f59c21dff Rollup merge of #31930 - miqid:doc, r=steveklabnik
Hello.

I've added links for items inside of some stable methods for consistency with existing ones that already have them. Also includes minor formatting fixes.

r? @steveklabnik
2016-02-27 10:52:02 +05:30
Manish Goregaokar
543c6a37c0 Rollup merge of #31929 - dotdash:less_rallocx, r=alexcrichton
When foldings Substs, we map over VecPerParamSpace instances using
EnumeratedItems which does not provide an accurate size_hint()
in its Iterator implementation. This leads to quite a large number or
reallocations. Providing a suitable size_hint() implementation reduces
the time spent in item-bodies checking quite a bit.

```
crate  | before | after | ~change
-------|-------------------------
core   |  7.28s | 5.44s |   -25%
std    |  2.07s | 1.88s |  -9.2%
syntax |  8.86s | 8.30s |  -6.3%
```
2016-02-27 10:52:02 +05:30
Manish Goregaokar
2d1843ad9d Rollup merge of #31926 - llogiq:more_post, r=eddyb
These `_post` methods are quite helpful to control lint behavior without storing e.g. block node ids. So here are a few more I believe will be helpful.

r? @Manishearth
2016-02-27 10:52:01 +05:30
Manish Goregaokar
b42b80a70b Rollup merge of #31922 - Amanieu:relnotes17, r=brson 2016-02-27 10:52:01 +05:30
Manish Goregaokar
9c01031c72 Rollup merge of #31918 - GuillaumeGomez:patch-3, r=steveklabnik
r? @steveklabnik

Fixes #29334
2016-02-27 10:52:01 +05:30
Manish Goregaokar
35b30424df Rollup merge of #31909 - benaryorg:patch-2, r=Manishearth
`continue` expression's description mentioned `break` instead of `continue`
2016-02-27 10:52:00 +05:30