Uh oh!
There was an error while loading. Please reload this page.
Derive Rustc{En,De}codable for TokenStream. - #65641
Merged
bors merged 1 commit intoOct 24, 2019
Merged
Conversation
`TokenStream` used to be a complex type, but it is now just a newtype
around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding
that discards the `IsJoint` and custom decoding that adds `NonJoint`
back in for every token tree. This requires building intermediate
`Vec<TokenTree>`s.
This commit makes `TokenStream` derive `Rustc{En,De}codable`. This
simplifies the code, and avoids the creation of the intermediate
vectors, saving up to 3% on various benchmarks. It also changes the AST
JSON output in one test.nnethercote
commented
Oct 20, 2019
ContributorAuthor
@bors try @rust-timer queue |
rust-timer
commented
Oct 20, 2019
Collaborator
Awaiting bors try build completion |
bors
commented
Oct 20, 2019
Collaborator
⌛ Trying commit c290293 with merge 1b0e1f524644251dc9f642f247055f5af49ddddd... |
bors
commented
Oct 21, 2019
Collaborator
☀️ Try build successful - checks-azure |
rust-timer
commented
Oct 21, 2019
Collaborator
Queued 1b0e1f524644251dc9f642f247055f5af49ddddd with parent 89e645a, future comparison URL. |
rust-timer
commented
Oct 21, 2019
Collaborator
Finished benchmarking try commit 1b0e1f524644251dc9f642f247055f5af49ddddd, comparison URL. |
nnethercote
commented
Oct 21, 2019
ContributorAuthor
The perf results show lots of instruction count wins, up to 1.5%. The wall-time results are much noisier, of course, but also show a clear improvement. |
petrochenkov
commented
Oct 21, 2019
Contributor
@bors r+ |
bors
commented
Oct 21, 2019
Collaborator
📌 Commit c290293 has been approved by |
JohnTitor added a commit
to JohnTitor/rust
that referenced
this pull request
Oct 22, 2019
…dable-Decodable, r=petrochenkov
Derive `Rustc{En,De}codable` for `TokenStream`.
`TokenStream` used to be a complex type, but it is now just a newtype
around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding
that discards the `IsJoint` and custom decoding that adds `NonJoint`
back in for every token tree. This requires building intermediate
`Vec<TokenTree>`s.
This commit makes `TokenStream` derive `Rustc{En,De}codable`. This
simplifies the code, and avoids the creation of the intermediate
vectors, saving up to 3% on various benchmarks. It also changes the AST
JSON output in one test.
r? @petrochenkovCentril added a commit
to Centril/rust
that referenced
this pull request
Oct 23, 2019
…dable-Decodable, r=petrochenkov
Derive `Rustc{En,De}codable` for `TokenStream`.
`TokenStream` used to be a complex type, but it is now just a newtype
around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding
that discards the `IsJoint` and custom decoding that adds `NonJoint`
back in for every token tree. This requires building intermediate
`Vec<TokenTree>`s.
This commit makes `TokenStream` derive `Rustc{En,De}codable`. This
simplifies the code, and avoids the creation of the intermediate
vectors, saving up to 3% on various benchmarks. It also changes the AST
JSON output in one test.
r? @petrochenkovCentril added a commit
to Centril/rust
that referenced
this pull request
Oct 23, 2019
…dable-Decodable, r=petrochenkov
Derive `Rustc{En,De}codable` for `TokenStream`.
`TokenStream` used to be a complex type, but it is now just a newtype
around a `Lrc<Vec<TreeAndJoint>>`. Currently it uses custom encoding
that discards the `IsJoint` and custom decoding that adds `NonJoint`
back in for every token tree. This requires building intermediate
`Vec<TokenTree>`s.
This commit makes `TokenStream` derive `Rustc{En,De}codable`. This
simplifies the code, and avoids the creation of the intermediate
vectors, saving up to 3% on various benchmarks. It also changes the AST
JSON output in one test.
r? @petrochenkovbors added a commit
that referenced
this pull request
Oct 24, 2019
Rollup of 12 pull requests Successful merges: - #64178 (More Clippy fixes for alloc, core and std) - #65144 (Add Cow::is_borrowed and Cow::is_owned) - #65193 (Lockless LintStore) - #65479 (Add the `matches!( $expr, $pat ) -> bool` macro) - #65518 (Avoid ICE when checking `Destination` of `break` inside a closure) - #65583 (rustc_metadata: use a table for super_predicates, fn_sig, impl_trait_ref.) - #65641 (Derive `Rustc{En,De}codable` for `TokenStream`.) - #65648 (Eliminate `intersect_opt`.) - #65657 (Remove `InternedString`) - #65691 (Update E0659 error code long explanation to 2018 edition) - #65696 (Fix an issue with const inference variables sticking around under Chalk + NLL) - #65704 (relax ExactSizeIterator bound on write_bytes) Failed merges: r? @ghost
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TokenStreamused to be a complex type, but it is now just a newtypearound a
Lrc<Vec<TreeAndJoint>>. Currently it uses custom encodingthat discards the
IsJointand custom decoding that addsNonJointback in for every token tree. This requires building intermediate
Vec<TokenTree>s.This commit makes
TokenStreamderiveRustc{En,De}codable. Thissimplifies the code, and avoids the creation of the intermediate
vectors, saving up to 3% on various benchmarks. It also changes the AST
JSON output in one test.
r? @petrochenkov