Commit Graph

66202 Commits

Author SHA1 Message Date
Aaron Power 89087183fc Update RELEASES.md 2017-08-09 16:19:54 +01:00
Aaron Power 09c1b74861 Update RELEASES.md 2017-08-04 13:40:05 +01:00
Aaron Power 1618664a73 Update RELEASES.md 2017-08-04 13:35:30 +01:00
Aaron Power c88ec60e5f Update RELEASES.md 2017-08-03 15:16:49 +01:00
Aaron Power 6200aeff61 fixed some formatting 2017-08-03 15:07:41 +01:00
Aaron Power 553ac5279e Updated release notes for 1.20 2017-08-03 15:04:05 +01:00
bors 12aad38ad4 Auto merge of #43616 - mbrubeck:fnv, r=michaelwoerister
Remove unused FnvHash code

None
2017-08-03 08:25:49 +00:00
bors b0424b5ff3 Auto merge of #43611 - nrc:save-tidy, r=eddyb
Update RLS and deps

This PR further moves towards configuring save-analysis using the rls-data Config struct. We remove completely the concept of api_crate. Updates the RLS so the client is expecting these changes and which pulls in a commit re-enabling all RLS tests (been disabled due to a span error for a while).
2017-08-03 04:32:37 +00:00
Nick Cameron 2683ba631b Appease tidy and fix save-analysis config for dist builds 2017-08-03 16:31:25 +12:00
bors b75d1f0ce2 Auto merge of #43614 - pornel:is_gotcha, r=BurntSushi
Emphasise that these functions look at the disk, not just the path

I thought that `PathBuf::new("foo/bar/").is_dir()` is always true, because the path ends in `/`. However, this is not what `is_dir()` function does. So I've updated the docs to make it clear.
2017-08-02 19:01:01 +00:00
Matt Brubeck daa764461d Remove unused fnv hash code 2017-08-02 10:42:12 -07:00
bors 4596c71fc5 Auto merge of #43607 - marioidival:master, r=alexcrichton
Remove unecessary test code #43219

related #43219
2017-08-02 16:21:39 +00:00
Kornel 4792d28ef1 Emphasise that these functions look at the disk, not just the path 2017-08-02 15:40:08 +01:00
bors cd87b5d516 Auto merge of #43605 - RalfJung:mapdoc, r=michaelwoerister
Improve hir::map::Map::get_parent_node doc

The documentation says
```
    /// Similar to get_parent, returns the parent node id or id if there is no
    /// parent.
    /// This function returns the immediate parent in the AST, whereas get_parent
    /// returns the enclosing item.
```
One would think that one can walk up the tree by repeatedly calling `get_parent_node` until it returns the argument, and then work on the `NodeId`s that arise. However, that is not true: `get_parent_node` will return id 0 (the crate itself) for items that sit directly in the crate; calling `get` on that `NodeId` will panic.

So, the fact that `get_parent_node` returns the root when passed the root is actually not really useful, because the root itself is already a somewhat degenerate node. This improves the doc so hopefully people writing code that "walks up the tree" don't run into this issue like I did...
2017-08-02 13:40:35 +00:00
bors 22f256f69e Auto merge of #43612 - michaelwoerister:fix-cgu-hashing, r=eddyb
incr.comp.: Properly incorporate symbol linkage and visibility into CGU hash.

This PR fixes the way the CGU hash for incr. comp. is computed. The CGU hash represents which `TransItems` are emitted into which codegen unit with which linkage and visibility. Before the new, LLVM-independent symbol internalizer the CGU hash did not accurately contain `TransItem` linkage and visibility because we would not enable symbol internalization in incremental mode anyway. The new internalizer is also run in incremental mode which uncovered the inaccuracy of CGU hashing. Luckily, the fix is rather simple.

r? @eddyb
cc @nikomatsakis
2017-08-02 11:14:54 +00:00
Michael Woerister b2c3a413b9 incr.comp.: Properly incorporate symbol linkage and visibility into CGU hash. 2017-08-02 11:56:23 +02:00
bors 5c385bef7a Auto merge of #43602 - QuietMisdreavus:fantastic-shrinking-headings, r=GuillaumeGomez
rustdoc: shrink headings in non-top-level docblocks

Headings in per-method docs are often bigger than the function names/signatures themselves, so this tones those down to accentuate the methods.

![screenshot of this change on Vec::swap_remove](https://user-images.githubusercontent.com/5217170/28849380-6116a830-76dc-11e7-8ce2-04433d09463a.png)

Fixes #17193
2017-08-02 08:49:02 +00:00
bors 0b5c0874b8 Auto merge of #43584 - arielb1:unused-reads, r=eddyb
Fix quadratic performance with lots of use statements

This fixes 2 problems that caused quadratic performance when lots of use-statements were present. After this patch, performance is linear (and very fast) even with 1M uses.

Fixes #43572.
Fixes #43573.

r? @eddyb
2017-08-02 05:56:06 +00:00
Nick Cameron 5abbf798e7 Update RLS 2017-08-02 17:53:37 +12:00
Nick Cameron 8c1699d874 Update rls-data dep 2017-08-02 16:57:50 +12:00
Nick Cameron 4e6c1dddff save-analysis: only emit public fields in value of a struct if the config permits 2017-08-02 15:46:59 +12:00
bors 4f3062c88e Auto merge of #43603 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #43389, #43423, #43581, #43585, #43597, #43598
- Failed merges:
2017-08-02 03:39:27 +00:00
Mario Idival fefe63ce04 Remove unecessary test code #43219 2017-08-02 00:06:42 -03:00
Ralf Jung e92ddbf5f7 improve hir::map::Map::get_parent_node doc 2017-08-01 19:22:23 -07:00
QuietMisdreavus 5c4c2d9235 rustdoc: shrink headings in non-top-level docblocks 2017-08-01 21:09:34 -05:00
Corey Farwell 368f1a8e93 Rollup merge of #43598 - ibabushkin:master, r=eddyb
Derive `Hash` on `AssociatedKind`.

This is a trivial change useful in downstream code poking in rustc's
innards, in particular the semver verification tool I'm currently working on.

r? @eddyb
2017-08-02 01:22:30 +00:00
Corey Farwell 1c91c785da Rollup merge of #43597 - dhduvall:master, r=alexcrichton
Fix the Solaris pthread_t raw type in std to match what's in libc

The old type causes failures when building cargo 0.20.0 after rust-lang/libc@8304e06b5.
2017-08-02 01:22:29 +00:00
Corey Farwell 08c0bbd062 Rollup merge of #43585 - frewsxcv:frewsxcv-hashset-docs, r=steveklabnik,quietmisdreavus
Improve docs & doc examples for HashSet.

None
2017-08-02 01:22:28 +00:00
Corey Farwell c96ce4064a Rollup merge of #43581 - alexcrichton:inline-more, r=michaelwoerister
rustc: Inline bitwise modification operators

These need to be inlined across crates to avoid showing up as one-instruction
functions in profiles! In the benchmark from #43578 this decreased the
translation item collection step from 30s to 23s, and looks like it also allowed
vectorization elsewhere of the operations!
2017-08-02 01:22:27 +00:00
Corey Farwell 2d9893fda7 Rollup merge of #43423 - xliiv:cell-example, r=steveklabnik
Add simple docs example for struct Cell
2017-08-02 01:22:27 +00:00
Corey Farwell ab3fb956f3 Rollup merge of #43389 - alexcrichton:thread-error, r=michaelwoerister
Thread through the original error when opening archives

This updates the management of opening archives to thread through the original
piece of error information from LLVM over to the end consumer, trans.
2017-08-02 01:22:26 +00:00
bors f5f58d0298 Auto merge of #43579 - cuviper:extern-llvm-features, r=alexcrichton
Gate LLVMRustHasFeature on LLVM_RUSTLLVM

Commit c4710203c0 in #43492 make `LLVMRustHasFeature` "more robust"
by using `getFeatureTable()`.  However, this function is specific to
Rust's own LLVM fork, not upstream LLVM-4.0, so we need to use
`#if LLVM_RUSTLLVM` to guard this call.

Closes #43555.
2017-08-02 01:13:02 +00:00
Corey Farwell d9df2963ad Add doc example for HashSet::drain. 2017-08-01 19:51:00 -04:00
Corey Farwell 34c1bfb0e1 Remove unnecessary clones in doc examples. 2017-08-01 19:51:00 -04:00
Corey Farwell 1599fad5b4 Show the capacity in HashSet::with_capacity doc example. 2017-08-01 19:51:00 -04:00
Corey Farwell 9e2b0c6390 Remove unnecessary 'mut' bindings. 2017-08-01 19:51:00 -04:00
Corey Farwell 070eb3c667 Indicate HashSet is code-like in docs. 2017-08-01 19:51:00 -04:00
Corey Farwell 9e19260286 Show that the capacity changed in HashSet::reserve doc example. 2017-08-01 19:51:00 -04:00
Corey Farwell 881062776a Add doc example for HashSet::hasher. 2017-08-01 19:51:00 -04:00
bors 640cfc852a Auto merge of #43576 - arielb1:no-unneeded-unwind, r=eddyb
rustc_mir: don't build unused unwind cleanup blocks

When building a scope exit, don't build unwind cleanup blocks unless they will actually be used by the unwind path of a drop - the unused blocks are removed by SimplifyCfg, but they can cause a significant performance slowdown before they are removed. That fixes #43511.

Also a few other small MIR cleanups & optimizations.

r? @eddyb
2017-08-01 22:43:15 +00:00
Inokentiy Babushkin 1b831cf54e
Derive `Hash` on `AssociatedKind`.
This is a trivial change useful in downstream code poking in rustc's
innards.
2017-08-01 22:27:30 +02:00
bors dd53dd5f9e Auto merge of #43529 - QuietMisdreavus:fn-docs, r=steveklabnik
add documentation for function pointers as a primitive

This PR adds a new kind of primitive to the standard library documentation: Function pointers. It's useful to be able to discuss them separately from closure-trait-objects, and to have something to point to when discussing function pointers as a *type* and not a *trait*.

Fixes #17104
2017-08-01 19:59:53 +00:00
Danek Duvall bdb53e55b0 Fix the Solaris pthread_t raw type in std to match what's in libc
The old type causes failures when building cargo 0.20.0 after
changeset 8304e06b5 in the libc repo.
2017-08-01 12:38:36 -07:00
bors e772c28d2e Auto merge of #43506 - michaelwoerister:async-llvm, r=alexcrichton
Run translation and LLVM in parallel when compiling with multiple CGUs

This is still a work in progress but the bulk of the implementation is done, so I thought it would be good to get it in front of more eyes.

This PR makes the compiler start running LLVM while translation is still in progress, effectively allowing for more parallelism towards the end of the compilation pipeline. It also allows the main thread to switch between either translation or running LLVM, which allows to reduce peak memory usage since not all LLVM module have to be kept in memory until linking. This is especially good for incr. comp. but it works just as well when running with `-Ccodegen-units=N`.

In order to help tuning and debugging the work scheduler, the PR adds the `-Ztrans-time-graph` flag which spits out html files that show how work packages where scheduled:
![Building regex](https://user-images.githubusercontent.com/1825894/28679272-f6752bd8-72f2-11e7-8a6c-56207855ce95.png)
(red is translation, green is llvm)

One side effect here is that `-Ztime-passes` might show something not quite correct because trans and LLVM are not strictly separated anymore. I plan to have some special handling there that will try to produce useful output.

One open question is how to determine whether the trans-thread should switch to intermediate LLVM processing.

TODO:
- [x] Restore `-Z time-passes` output for LLVM.
- [x] Update documentation, esp. for work package scheduling.
- [x] Tune the scheduling algorithm.

cc @alexcrichton @rust-lang/compiler
2017-08-01 17:21:24 +00:00
QuietMisdreavus 71751db491 add documentation for function pointers as a primitive 2017-08-01 09:42:12 -05:00
bors c2407516ff Auto merge of #43568 - arielb1:constant-recovery, r=eddyb
trans::mir::constant - fix assignment error recovery

trans::mir::constant - fix assignment error recovery

We used to not store anything when the RHS of an assignment returned an error, which caused ICEs downstream.

Fixes #43197.
2017-08-01 14:20:23 +00:00
Michael Woerister 6468cad977 async-llvm(29): Adapt run-make/llvm-phase test case to LLVM module not being available in memory. 2017-08-01 15:57:38 +02:00
Michael Woerister b8d441350b async-llvm(28): Make some error messages more informative. 2017-08-01 14:43:55 +02:00
Ariel Ben-Yehuda 70478ca5c8 rustc::hir::map::definitions - fix O(n^2) when disambiguating
Instead of finding the next free disambiguator by incrementing it until
you find a place, store the next available disambiguator in an hash-map.

This avoids O(n^2) performance when lots of items have the same
un-disambiguated `DefPathData` - e.g. all `use` items have
`DefPathData::Misc`.
2017-08-01 14:44:20 +03:00
Ariel Ben-Yehuda c9d14a846f syntax: avoid loading the same source-file multiple times
We already had a cache for file contents, but we read the source-file
before testing the cache, causing obvious slowness, so this just avoids
loading the source-file when the cache already has the contents.
2017-08-01 14:18:49 +03:00