Commit Graph

46108 Commits

Author SHA1 Message Date
Jack Wilson
2548e2ee58 Fixes minor formatting inconsistencies 2015-09-03 20:48:26 -07:00
bors
2727a8e1c0 Auto merge of #27984 - arielb1:misc-assemble-improvements, r=nikomatsakis
this resolves type-variables early in assemble_candidates and
bails out quickly if the self type is an inference variable (which would
fail anyway because of `assemble_candidates_from_projected_tys`).

In both these cases, `assemble_candidates_from_impls` would try to go
over all impls and match them, leading to O(`n*m`) performance. Fixing this
improves rustc type-checking performance by 10%. As type-checking is only
is 5% of compilation, this doesn't impact bootstrap times, but *does*
improve type-error-detection time which is nice.

Crates that have many dependencies and contain significant amounts of
generic functions could see a bigger perf boost. As a microbenchmark,
the crate generated by

```
echo '#![feature(rustc_private)]'
echo 'extern crate rustc_driver;'
for i in {1..1000}; do cat << _EOF_
    pub fn foo$i<T>() {
        let mut v = Vec::new();
        let _w = v.clone();
        v.push("");
    }
_EOF_
done
```

sees performance improve from 7.2 to 1.4 seconds. I imagine many crates
would fall somewhere in-between.

r? @nikomatsakis
2015-09-04 00:00:09 +00:00
bors
1b908be9a0 Auto merge of #28200 - Manishearth:rollup, r=Manishearth
- Successful merges: #28164, #28170, #28184, #28186, #28187, #28188, #28191, #28193, #28194, #28195
- Failed merges:
2015-09-03 20:10:42 +00:00
Manish Goregaokar
e6e175b828 Add ptr import (fixup #28187) 2015-09-04 01:40:05 +05:30
Manish Goregaokar
94807b2f9c Rollup merge of #28195 - AlisdairO:diagnostics214, r=Manishearth
As title :-)
Part of #24407.

r? @Manishearth
2015-09-04 01:40:04 +05:30
Manish Goregaokar
956c5977ac Rollup merge of #28194 - steveklabnik:add_fixme, r=alexcrichton 2015-09-04 01:40:04 +05:30
Manish Goregaokar
75ca401f2d Rollup merge of #28193 - dhuseby:fixing_bitrig_alloc_crate_tests, r=alexcrichton
@alexcrichton this will get the bitrig buildbot back to green.
2015-09-04 01:40:03 +05:30
Manish Goregaokar
3c4d6d626f Rollup merge of #28191 - llogiq:iter, r=Manishearth
Nothing too big, a few needless returns and a few closures eliminated (the latter may improve performance in some cases, at least compilation should be a bit faster).
2015-09-04 01:40:03 +05:30
Manish Goregaokar
cac4a1c5c8 Rollup merge of #28188 - Manishearth:elide-core, r=alexcrichton
Makes things more greppable.

This change was made automatically by clippy + bash scripts, though I will run test passes, please review carefully.
2015-09-04 01:40:02 +05:30
Manish Goregaokar
9ea8f3e2dd Rollup merge of #28187 - petrochenkov:null, r=aturon
And replace more `0 as *const T`/`0 as *mut T`s with `null()`/`null_mut()`s

I'm not sure what is the general policy about making simple functions `const`, but `null()` and `null_mut()` seem to be good candidates.
2015-09-04 01:40:02 +05:30
Manish Goregaokar
67616f7191 Rollup merge of #28186 - thomas07vt:thomas07vt-patch-trpl-rust-inside-other-languages.md, r=steveklabnik
The embed rust file that we compile prints out 'Thread finished..' messages along with a 'done!' r? @steveklabnik
2015-09-04 01:40:02 +05:30
Manish Goregaokar
0c2924386d Rollup merge of #28184 - xiaochuanyu:patch-1, r=alexcrichton
Originally in an example it reads as follows:
```rust
fn inverse<T>() -> T
        // this is using ConvertTo as if it were "ConvertFrom<i32>"
         where i32: ConvertTo<T> {
     42.convert()
 }
```
There was no mention of `ConvertFrom` elsewhere in the page other than in this comment. Is this supposed to be `ConvertTo<i64>` ?
I'm confused by this example.
2015-09-04 01:40:01 +05:30
Manish Goregaokar
2a40e46f18 Rollup merge of #28164 - AlisdairO:diagnostics329, r=Manishearth
As title :-)
Part of #24407.

r? @Manishearth
2015-09-03 23:30:36 +05:30
Alisdair Owens
130e8d4ff2 add long diagnostics for E0214 2015-09-03 17:01:50 +01:00
bors
0762f58c11 Auto merge of #28192 - Manishearth:lint-hir, r=eddyb
LintPass still uses the AST, though there isn't any need to. This makes it hard to move lints to the HIR.

r? @eddyb @nrc
2015-09-03 15:42:16 +00:00
Manish Goregaokar
7732ad85df Move lints to HIR 2015-09-03 20:58:07 +05:30
Steve Klabnik
9e79fc2d22 Add an issue number to this FIXME 2015-09-03 11:00:40 -04:00
Dave Huseby
e5e4744766 Fixes #27886 -- bitrig does not use jemalloc (yet) 2015-09-03 07:26:17 -07:00
bors
9e9c83b899 Auto merge of #28176 - arielb1:fast-index, r=eddyb
r? @eddyb
2015-09-03 13:01:03 +00:00
llogiq
e1f89196a0 take mapped function by mutable reference 2015-09-03 14:50:06 +02:00
Manish Goregaokar
a520568ae7 Elide lifetimes in libcore 2015-09-03 17:46:35 +05:30
llogiq
b6a3978886 clippy improvements to iterators 2015-09-03 12:35:34 +02:00
Ariel Ben-Yehuda
cde09e7ca3 rewrite metadata indexing
this improves the compilation time for small crates by ~20%
2015-09-03 12:59:51 +03:00
Ariel Ben-Yehuda
fcad49e416 remove totally useless struct-field index 2015-09-03 12:23:56 +03:00
Vadim Petrochenkov
06fb196256 Use null()/null_mut() instead of 0 as *const T/0 as *mut T 2015-09-03 09:49:50 +03:00
John Thomas
6fcdead4ee Bash output fix to match real 'ruby embed.rb' call
The embed rust file that we compile prints out 'Thread finished..' messages along with a 'done!'
2015-09-02 23:13:56 -07:00
Vadim Petrochenkov
3903ea96f5 Make null() and null_mut() const functions 2015-09-03 09:03:52 +03:00
Xiao Chuan Yu
865d6c3b5b Fix mistake in trait.md 2015-09-03 01:36:22 -04:00
bors
1661947014 Auto merge of #28182 - jackwilsonv:patch-2, r=steveklabnik
r? @steveklabnik

##### About the `struct` section specifically:
I wasn't sure how you'd feel about the first instance since it was originally capitalized, happy to change it back if you think that's better.

Also, I left 'tuple struct' as is since together it isn't a keyword. The first instance currently has single quotes but the others have nothing. I think that feels right.

##### Generally:
I'm working through the book now and I'm happy to keep updating this branch with any formatting tweaks or updates I find if that's easier for you guys, otherwise I'll just create smaller PRs as I go. Just let me know.
2015-09-03 04:43:40 +00:00
bors
69c3b39d0d Auto merge of #28174 - steveklabnik:gh14705, r=alexcricton
Because 'doc' is a directory, when running `make doc`, you'll see
this:

    make: Nothing to be done for `doc'.

By adding a target for `doc` to build `docs`, both work.

Fixes #14705
2015-09-03 02:12:21 +00:00
Steve Klabnik
7c8c72d3b0 Introduce 'make doc' -> 'make docs'
Because 'doc' is a directory, when running `make doc`, you'll see
this:

    make: Nothing to be done for `doc'.

By adding a target for `doc` to build `docs`, both work.

Fixes #14705
2015-09-02 22:00:58 -04:00
Jack Wilson
28bf68f3fe Makes formatting of struct keyword consistent 2015-09-02 18:58:18 -07:00
bors
cd138dc447 Auto merge of #28138 - nrc:hir, r=nikomatsakis
r? @nikomatsakis 

Trying to land this first stab, which basically just duplicates the AST. Will file issues for the various things I've got in mind to improve.
2015-09-02 22:44:25 +00:00
Ariel Ben-Yehuda
ab86bf53eb consolidate type-variable handling in assemble_candidates
this resolves type-variables early in assemble_candidates and
bails out quickly if the self type is an inference variable (which would
fail anyway because of `assemble_candidates_from_projected_tys`).

In both these cases, `assemble_candidates_from_impls` would try to go
over all impls and match them, leading to O(n*m) performance. Fixing this
improves rustc type-checking performance by 10%. As type-checking is only
is 5% of compilation, this doesn't impact bootstrap times, but *does*
improve type-error-detection time which is nice.

Crates that have many dependencies and contain significant amounts of
generic functions could see a bigger perf boost. As a microbenchmark,
the crate generated by

echo '#![feature(rustc_private)]'
echo 'extern crate rustc_driver;'
for i in {1..1000}; do cat << _EOF_
    pub fn foo$i<T>() {
        let mut v = Vec::new();
        let _w = v.clone();
        v.push("");
    }
_EOF_
done

sees performance improve from 7.2 to 1.4 seconds. I imagine many crates
would fall somewhere in-between.
2015-09-03 01:42:18 +03:00
Nick Cameron
facdf2ebb1 Add an intital HIR and lowering step 2015-09-03 10:02:36 +12:00
bors
b7b1dced3c Auto merge of #28117 - marcusklaas:continue-break, r=alexcrichton
Fixes https://github.com/rust-lang/rust/issues/28108.
2015-09-02 21:02:34 +00:00
bors
cfd76b364c Auto merge of #28135 - jackwilsonv:patch-1, r=steveklabnik
Small formatting change

r? @steveklabnik
2015-09-02 19:08:18 +00:00
Marcus Klaas
3a360fca78 Fix overly long spans for break and continue
The spans of break and continue would include the next token.
2015-09-02 20:55:17 +02:00
bors
a53d31a51b Auto merge of #28165 - mneumann:dragonfly_snapshots, r=alexcrichton
@alexcrichton: The snapshot file is here: http://www.ntecs.de/downloads/rust/rust-stage0-2015-08-11-1af31d4-dragonfly-x86_64-08e7dd9d77434b377c0905cc5f8c705b2daf3a0e.tar.bz2.

This is the first part in getting Continuous builds for DragonFly (#16298).
2015-09-02 17:27:10 +00:00
Michael Neumann
ebf311cef5 Add snapshot for DragonFly BSD 2015-09-02 18:21:02 +02:00
bors
ef02ffa9fb Auto merge of #28162 - mneumann:dragonfly_fix_stat, r=alexcrichton 2015-09-02 14:51:11 +00:00
Alisdair Owens
c6b0fccac8 Add long diagnostics for E0329 2015-09-02 15:35:56 +01:00
bors
370fe27861 Auto merge of #28163 - llogiq:master, r=Manishearth 2015-09-02 10:20:41 +00:00
llogiq
2a65474221 Improved libfmt_macros code style with clippy 2015-09-02 12:13:10 +02:00
Michael Neumann
52e7f5553e Fix compile on DragonFly: Replace unknown uint32_t/in64_t by u32/i64. 2015-09-02 10:57:57 +02:00
bors
0dbbab9049 Auto merge of #28156 - nagisa:binaryheap-debug, r=Gankro
r? @Gankro
2015-09-02 06:37:32 +00:00
bors
cb40b8a2ab Auto merge of #28155 - vchimishuk:doc-rust-inside-other-languages-tab, r=alexcrichton
Fixed x variable identation. How it was displayed in Firefox before: http://s16.postimg.org/c9448tn0k/Screenshot_from_2015_09_01_17_35_43.jpg
2015-09-02 04:55:37 +00:00
bors
e758946f96 Auto merge of #28149 - jakerr:atomic, r=alexcrichton
Makes the code agree with the comment: 'value answers "am I locked?"'.
2015-09-02 03:13:43 +00:00
bors
dfe9326941 Auto merge of #28148 - eefriedman:binary_heap, r=alexcrichton 2015-09-02 01:33:20 +00:00
bors
7780408af6 Auto merge of #28132 - arielb1:uninstantiable, r=nikomatsakis
It is *very* easy to bypass, and is a relic of a bygone age where the type-checker was *much* less robust.

Fixes #27497

r? @nikomatsakis
2015-09-01 23:51:47 +00:00