Commit Graph

37567 Commits

Author SHA1 Message Date
Alex Crichton
e4e9a2771c rollup merge of #21419: Toby-S/patch-1
This just corrects a couple of typos in doc comments, and changes some to conform to the Rust guidelines.
2015-01-21 09:16:03 -08:00
Alex Crichton
229243c136 rollup merge of #21418: Aatch/assume-refcount
The reference count can never be 0, unless we're about to drop the data
completely. Using the `assume` intrinsic allows us to inform LLVM about
that invariant, meaning it can avoid unnecessary drops.

---

Before and after IR: https://gist.github.com/Aatch/3786d20df2edaad6a0e8

Generated from the example in #13018

Fixes #13018
2015-01-21 09:16:01 -08:00
Alex Crichton
a6780d8c6b rollup merge of #21414: ejjeong/aarch64-linux-android
Initial support for aarch64-linux-android (#18920)
- Add new configuration files
- Modify some options to compile & link succesfully.
  (PIE, disable tls on jemalloc, modify some external function linkage, ..)
- To build, refer to https://github.com/rust-lang/rust/wiki/Doc-building-for-android.
   (tested with platform=21 and toolchain=aarch64-linux-android-4.9)
2015-01-21 09:15:59 -08:00
Alex Crichton
81504f211c rollup merge of #21413: ahmedcharles/remove-test-features
This isn't the entire set of changes, there are more coming. #19145
2015-01-21 09:15:57 -08:00
Alex Crichton
5d82c0fabf rollup merge of #21411: P1start/help-tweaks
Conflicts:
	src/librustc_typeck/check/closure.rs
2015-01-21 09:15:54 -08:00
Alex Crichton
1646707c6e rollup merge of #21396: japaric/no-parens-in-range
Conflicts:
	src/libsyntax/parse/lexer/comments.rs
2015-01-21 09:15:15 -08:00
Alex Crichton
4b6a0563c6 rollup merge of #21394: japaric/nonono
r? @FlaPer87
2015-01-21 09:14:42 -08:00
Alex Crichton
e4434f97af rollup merge of #21393: loganchien/fix-if-stmt-doc-title
Slightly change the title to make it look more consistent with other chapters (e.g. Match.)
2015-01-21 09:14:41 -08:00
Alex Crichton
9227db398a rollup merge of #21392: japaric/iter
closes #20953
closes #21361

---

In the future, we will likely derive these `impl`s via syntax extensions or using compiler magic (see #20617). For the time being we can use these manual `impl`s.

r? @aturon
cc @burntsushi @Kroisse
2015-01-21 09:14:39 -08:00
Alex Crichton
ad2c3e8dbc rollup merge of #21391: klutzy/rt-time-cleanup
They are unused since libtime is gone.

cc #20861
2015-01-21 09:14:37 -08:00
Alex Crichton
8b10733e7a rollup merge of #21389: retep998/timer
Fixes #20943 and adds a test for it
r? @alexcrichton
2015-01-21 09:14:36 -08:00
Alex Crichton
9173797be1 rollup merge of #21372: arielb1/remove-the-box
It is not used anymore
2015-01-21 09:14:34 -08:00
Alex Crichton
5fda9bccad rollup merge of #21368: tomjakubowski/rustdoc-miscellany
Conflicts:
	src/librustdoc/clean/mod.rs
2015-01-21 09:14:30 -08:00
Alex Crichton
ecc9dccc15 rollup merge of #21367: steveklabnik/remove_gate
This gate was `Accepted`, so we shouldn't need these.
2015-01-21 09:13:57 -08:00
Alex Crichton
0447721247 rollup merge of #21354: eddyb/vec-ufcs
There are two limitations to the macro that this addresses:
1. the expected type is not propagated, coercions don't trigger
2. references inside element expressions don't outlive the `Vec`

Both of these limitations are caused by the block in the
macro expansion, previously needed to trigger a coercion
from `Box<[T; N]>` to `Box<[T]>`, now possible with UFCS.
2015-01-21 09:13:55 -08:00
Alex Crichton
5123f75856 rollup merge of #21342: Diggsey/issue-21310
Fixes #21310
2015-01-21 09:13:53 -08:00
Alex Crichton
0c981875e4 rollup merge of #21340: pshc/libsyntax-no-more-ints
Collaboration with @rylev!

I didn't change `int` in the [quasi-quoter](99ae1a30f3/src/libsyntax/ext/quote.rs (L328)), because I'm not sure if there will be adverse effects.

Addresses #21095.
2015-01-21 09:13:51 -08:00
Alex Crichton
5da25386b3 rollup merge of #21333: stepancheg/trans-write-diag
File cannot be written, for example, if directory does not exist.

Before this commit:

```
% rustc -o nonexistent/program program.rs
error: could not write output: No such file or directory
```

With this commit:

```
% rustc -o nonexistent/program program.rs
error: could not write output to nonexistent/program.0.o: No such file or directory
```

This is useful when full rust command is not displayed, or when last error is followed by thousands of warnings.
2015-01-21 09:13:49 -08:00
Alex Crichton
b250d9a3c8 rollup merge of #21289: brson/errorcodes
This does the bare minimum to make registration of error codes work again. After this patch, every call to `span_err!` with an error code gets that error code validated against a list in that crate and a new tidy script `errorck.py` validates that no error codes are duplicated globally.

There are further improvements to be made yet, detailed in #19624.

r? @nikomatsakis
2015-01-21 09:13:46 -08:00
Alex Crichton
41890bfa46 rollup merge of #21274: estsauver/21270
The timezone of the server that builds rustc nightlies
appears to be in UTC. From what I can tell, it builds
the nightlies at 0300 UTC, which takes about ~15 minutes.
So, there were a couple options here for which offset to use.

UTC+3 would ensure that you always got the latest rust, but it
would mean the script is broken ~15/20 minutes a day. UTC+4
means users get a stale nightly for 45 minutes, but that feels
okay to me.

Ideally, buildbot would publish the "current" nightly, but
that seems unneeded relative to fixing it for all Timezones
quickly.

Fixes #21270
2015-01-21 09:13:43 -08:00
Alex Crichton
89b2e231c6 rollup merge of #21157: steveklabnik/deprecation 2015-01-21 09:13:42 -08:00
Alex Crichton
550255d986 rollup merge of #21138: mkpankov/master
When combined with '--save' and '--date', it uses previously saved
tarball, making possible to re-install in offline mode.
r?
2015-01-21 09:13:40 -08:00
Alex Crichton
2e9adab528 rollup merge of #21053: apasel422/exact 2015-01-21 09:13:38 -08:00
Alex Crichton
83af23ea49 rollup merge of #19913: KOMON/rust-mode-emacs-indentation
I added an option to auto-indent method chains to line up along their '.' operators. Like so:

```
let input = io::stdin().readline()
                       .ok()
                       .expect("Failed to read line");
```

The old default would indent like so:
```
let input = io::stdin().readme()
    .ok()
    .expect("Failed to read line");
```

The Rust guide explicitly condones the former, so I thought it would be nice for the emacs mode to support it. It's off by default, you have to set ```rust-indent-method-chain``` to ```t``` via your .emacs or the customize menu
2015-01-21 09:13:36 -08:00
Steven Allen
a13e721202 Use the default len implementation in ExactSizeIterator impls 2015-01-21 11:29:40 -05:00
Steve Klabnik
29e5d8d483 Improve quality of String#to_slice() deprecation message 2015-01-21 11:21:07 -05:00
Aaron Turon
da8023d653 Change init-large-type to use child thread 2015-01-21 08:11:07 -08:00
Aaron Turon
a506d4cbfe Fallout from stabilization. 2015-01-21 08:11:07 -08:00
Aaron Turon
092ba6a856 Deprecate slicing methods in favor of notation
This commit deprecates `slice`, `slice_from`, `slice_to` and their
mutable variants in favor of slice notation.

The `as_slice` methods are left intact, for now.

[breaking-change]
2015-01-21 07:45:45 -08:00
Aaron Turon
fba0bf63a9 Stabilize Index traits and most range notation
This commit marks as `#[stable]`:

* The `Index` and `IndexMut` traits. These are stabilized as taking the
  index itself *by reference*; after extensive discussion it was
  determined that this is a better match with our choices
  elsewhere (e.g. making comparison operators auto-reference), and that
  the use cases for by-value indices are better handled through
  `IndexSet`.

* The `Range`, `RangeFrom` and `RangeTo` structs, introduced for range
  notation.

* Various impls of `Index` and `IndexMut`.

The `FullRange` struct is left unstable as we may wish to rename it to
`RangeFull` in the future.

This commit also *removes* the `Step` trait in favor of direct
implementation of iterator traits on ranges for integers. The `Step`
trait was not a terribly useful factoring internally, and it is likely
that external integer types are best off implementing range iterators
directly. It was removed to simplify the API surface. We can always
reintroduce `Step` later if it turns out to be useful.

Due to this removal, this is a:

[breaking-change]
2015-01-21 07:45:45 -08:00
Eduard Burtescu
838b2ea760 docs: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
3102b9e19e rustdoc: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
f83a972224 rustc_resolve: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
7dbefcec94 rustc_driver: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
c91761e83e rustc_trans: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
9370ae1abf rustc_typeck: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
cfb63d5448 rustc: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
e389ab18a2 rustc_back: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
7cece8725b syntax: fix fallout of merging ast::ViewItem into ast::Item. 2015-01-21 16:27:26 +02:00
Eduard Burtescu
38ac9e3984 syntax: merge ast::ViewItem into ast::Item. 2015-01-21 16:27:25 +02:00
Eduard Burtescu
53edd767b4 Remove feature(import_shadowing). 2015-01-21 16:27:25 +02:00
Liigo Zhuang
2b11a80a60 address review comments: reuse Escape etc. 2015-01-21 21:31:09 +08:00
Liigo Zhuang
17ebb6053e fix fallout 2015-01-21 21:31:09 +08:00
Liigo Zhuang
52997408ec rustdoc: eliminates raw markdown code (links, headers, etc.) from tooltips of sidebar 2015-01-21 21:31:09 +08:00
Liigo Zhuang
0c06442bcd display plain summary line in javascript 2015-01-21 21:31:09 +08:00
Liigo Zhuang
58a257bcdf rustdoc: add tooltips to sidebar 2015-01-21 21:31:09 +08:00
Seo Sanghyeon
d4ced7b468 De-mut the parser 2015-01-21 20:44:49 +09:00
bors
6869645e86 Auto merge of #21242 - richo:no-perl, r=brson
There's only one build-critical path in which perl is used, and it was to do a text replacement trivially achievable with sed(1).

I ported the indenter script because it [appears to be used][indenter], but removed check links because it appears to be entirely out of date.

[indenter]: https://github.com/rust-lang/rust/blob/master/src/librustc/util/common.rs#L60-70
2015-01-21 11:07:31 +00:00
Michael Woerister
a55ef3a032 debuginfo: Make debuginfo source location assignment more stable (Pt. 1)
So far, the source location an LLVM instruction was linked to was controlled by
`debuginfo::set_source_location()` and `debuginfo::clear_source_location()`.
This interface mimicked how LLVM's `IRBuilder` handles debug location
assignment. While this interface has some theoretical performance benefits, it
also makes things terribly unstable: One sets some quasi-global state and then
hopes that it is still correct when a given instruction is emitted---an
assumption that has been proven to not hold a bit too often.

This patch requires the debug source location to be passed to the actual
instruction emitting function. This makes source location assignment explicit
and will prevent future changes to `trans` from accidentally breaking things in
the majority of cases.

This patch does not yet implement the new principle for all instruction kinds
but the stepping experience should have improved significantly nonetheless
already.
2015-01-21 10:48:10 +01:00
bors
8abcbaba1d Auto merge of #21227 - sellibitze:core-ops-for-references, r=aturon
As discussed with @aturon I added implementations of various op traits for references to built-in types which was already suggested by the ops reform RFC.

The 2nd commit updates the module documentation of core::ops to fully reflect the recent change from pass-by-reference to pass-by-value and expands on the implications for generic code.
2015-01-21 09:02:44 +00:00