Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 8 pull requests #41121

Merged
merged 17 commits into from
Apr 7, 2017
Merged

Rollup of 8 pull requests #41121

merged 17 commits into from
Apr 7, 2017

Conversation

matthewjasper and others added 17 commits March 31, 2017 23:52
This is a random stab towards rust-lang#38618, no idea if it'll work. But hey more
up-to-date software is better, right?
This is a second (2/3?) step in order to complete this issue: rust-lang#29370
I submitted this PR with the help of @steveklabnik again. Thanks to him! More info here: rust-lang#29370 (comment)
Tuple fields don't have an `&T` in their declaration that can be changed
to `&mut T` - skip them..

Fixes rust-lang#41104.
* Since the switch to pulldown-cmark reference links need a blank line
before the URLs.
* Reference link references are not case sensitive.
* Doc comments need to be indented uniformly otherwise rustdoc gets
confused.
Instead of rendering all of the HTML in rustdoc this relies on
pulldown-cmark's `push_html` to do most of the work. A few iterator
adapters are used to make rustdoc specific modifications to the output.

This also fixes MarkdownHtml and link titles in plain_summary_line.
This initial commit provides implementations for HIR, MIR, and
everything that also needs to be supported for those two.
Introduce HashStable trait and base ICH implementations on it.

This PR introduces the `HashStable` trait which marks that a type can be hashed in a way that is stable across multiple compilation sessions. The PR also moves HIR incr. comp. hashing over to implementations of this trait instead of doing this via a HIR visitor. It also provides many `HashStable` implementations that are not used yet (e.g. for MIR types) but soon will be used when we directly hash crate metadata for incr. comp.

I've only done superficial performance measurements but it looks like the new implementation is a bit faster than the current one (due, I suppose, to some bugs I fixed and some unnecessary inefficiencies I removed). Here is the time in seconds for the `compute_incremental_hashes_map` pass for various crates:

|                 |  OLD  |  NEW  |
|:---------------:|:-----:|:-----:|
| libcore         | 0.507 | 0.409 |
| libsyntax       | 0.320 | 0.260 |
| librustc        | 0.730 | 0.611 |
| librustc_driver | 0.024 | 0.015 |

Some notes regarding the implementation:
* Most `HashStable` implementations are provided via the `impl_hash_stable_for!` macro (as suggested by @nikomatsakis). This works out quite well. A custom_derive would have been better but Macros 1.1 are not available in the compiler.
* The trait implementation take care to exhaustively destructure everything they hash so that fields added in the future don't fall through the cracks. This is a bit verbose but I think it's well worth the trouble since we've had quite a few issues with missing fields or visitor callbacks in this area in the past. Most of it is behind the macro anyway.

cc @rust-lang/compiler
r? @nikomatsakis
Don't warn about `char` comparisons in constexprs

Fixes rust-lang#40970 by evaluating const-exprs for comparisons on `char`s properly.
travis: Update musl for i686/x86_64

This is a random stab towards rust-lang#38618, no idea if it'll work. But hey more
up-to-date software is better, right?
Add example to std::process::abort

This is a second step in order to complete this issue: rust-lang#29370
I submitted this PR with the help of @steveklabnik again. Thanks to him! More info here: rust-lang#29370 (comment)
don't try to blame tuple fields for immutability

Tuple fields don't have an `&T` in their declaration that can be changed
to `&mut T` - skip them..

Fixes rust-lang#41104.

r? @nikomatsakis
…umeGomez

Fix Markdown issues in the docs

* Since the switch to pulldown-cmark reference links need a blank line
before the URLs. (rust-lang#40912)
* Reference link references are not case sensitive.
* Doc comments need to be indented uniformly otherwise rustdoc gets
confused.
rustdoc: Use pulldown-cmark for Markdown HTML rendering

Instead of rendering all of the HTML in rustdoc this relies on
pulldown-cmark's `push_html` to do most of the work. A few iterator
adapters are used to make rustdoc specific modifications to the output.

This also fixes MarkdownHtml and link titles in plain_summary_line.

https://ollie27.github.io/rust_doc_test/ is the docs built with this change and rust-lang#41111.

Part of rust-lang#40912.

cc @GuillaumeGomez

r? @steveklabnik
.gitmodules: use the official Git URL w/o redirect
@frewsxcv
Copy link
Member Author

frewsxcv commented Apr 6, 2017

@bors r+ p=10

@bors
Copy link
Contributor

bors commented Apr 6, 2017

📌 Commit 8af853b has been approved by frewsxcv

@rust-highfive
Copy link
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @nrc (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

@bors
Copy link
Contributor

bors commented Apr 6, 2017

⌛ Testing commit 8af853b with merge b8188a6...

@bors
Copy link
Contributor

bors commented Apr 6, 2017

💔 Test failed - status-appveyor

@frewsxcv
Copy link
Member Author

frewsxcv commented Apr 6, 2017

@bors retry #40546

@bors
Copy link
Contributor

bors commented Apr 6, 2017

⌛ Testing commit 8af853b with merge 929d654...

@bors
Copy link
Contributor

bors commented Apr 6, 2017

💔 Test failed - status-appveyor

@TimNN
Copy link
Contributor

TimNN commented Apr 6, 2017

@bors
Copy link
Contributor

bors commented Apr 6, 2017

⌛ Testing commit 8af853b with merge 2277f4b...

bors added a commit that referenced this pull request Apr 6, 2017
Rollup of 8 pull requests

- Successful merges: #40878, #40976, #41089, #41090, #41108, #41111, #41112, #41114
- Failed merges:
@bors
Copy link
Contributor

bors commented Apr 7, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: frewsxcv
Pushing 2277f4b to master...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup
Projects
None yet
Development

Successfully merging this pull request may close these issues.