save-analysis: Use serde instead of libserialize to dump JSON data#60053
save-analysis: Use serde instead of libserialize to dump JSON data#60053bors merged 3 commits intorust-lang:masterfrom
Conversation
|
r? @varkor (rust_highfive has picked a reviewer for you, use r? to override) |
|
I tested the change by compiling rustc and using it to compile RLS, which seemed to work normally and also did spit the data using the new serde backend. FWIW I also tested running RLS on a crate which pulled in |
|
@bors: r+ |
|
📌 Commit 8498ba204b4c83c21f29d4918057a96cd601baef has been approved by |
|
Added a test, which checks that reading a malformed config doesn't panic @bors r=nrc |
|
📌 Commit b03123426c60dc22d84291a0fcecef67451514a8 has been approved by |
|
🔒 Merge conflict This pull request and the master branch diverged in a way that cannot be automatically merged. Please rebase on top of the latest master branch, and let the reviewer approve again. How do I rebase?Assuming
You may also read Git Rebasing to Resolve Conflicts by Drew Blessing for a short tutorial. Please avoid the "Resolve conflicts" button on GitHub. It uses Sometimes step 4 will complete without asking for resolution. This is usually due to difference between how Error message |
b031234 to
bc8af9a
Compare
|
That's weird... rebased just fine. @bors r=nrc |
|
📌 Commit bc8af9a has been approved by |
|
⌛ Testing commit bc8af9a with merge 227d009d96ba8703729c5ae049ddf0aec20041f9... |
|
💔 Test failed - checks-travis |
bc8af9a to
4fb570d
Compare
|
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
|
Updated rls-* crates to explicitly not use @bors r=nrc |
|
📌 Commit 2dccaa7 has been approved by |
|
⌛ Testing commit 2dccaa7 with merge f51fc22e2711493012c954049be8c4c35c545968... |
|
💔 Test failed - checks-travis |
|
The job Click to expand the log.I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
|
Argh, RLS broke again due to Clippy, will need to fix that first |
|
Looks like #60158 is almost merged, with and the queue has only one PR (59114) pending without Cargo.lock, so I'll queue this up for the night: |
save-analysis: Use serde instead of libserialize to dump JSON data
This breaks the save-analysis infrastructure (which also includes `rls-{analysis, data, span}` crates) from depending on rustc_serialize and so we can start moving them to being supported on stable without implementing `Decodable` et al. by hand for data structures defined there.
Notable benefits:
- we drop the awkward raw byte `PathBuf` [serialization](https://gist.github.com/Xanewok/f4fe8564d0dc0c3ab1dbc244279ff895) (until now (de)serialized as `&[u8]`)
- [faster](https://github.com/serde-rs/json-benchmark) (hopefully noticeable for inner crate dependencies for the RLS workloads)
- we can easily explore the binary serialization backend (which we planned to do for save-analysis anyway)
~This should be merged together with an update to RLS (rust-lang/rls#1435), which technically could be included right now because we can use the bundled `rls-analysis` here directly, however I'd prefer to publish this to crates.io first (rust-lang/rls#1434, cc @nrc) and use the published version, instead.~
Includes rust-lang/rls#1436.
@matklad @nikomatsakis This is also important for the potential RLS 1.0 - 2.0 bridge we talked about on Zulip today
|
☀️ Test successful - checks-travis, status-appveyor |
|
📣 Toolstate changed by #60053! Tested on commit 8f06188. 💔 clippy-driver on windows: test-pass → test-fail (cc @Manishearth @llogiq @mcarton @oli-obk @phansch, @rust-lang/infra). |
Tested on commit rust-lang/rust@8f06188. Direct link to PR: <rust-lang/rust#60053> 💔 clippy-driver on windows: test-pass → test-fail (cc @Manishearth @llogiq @mcarton @oli-obk @phansch, @rust-lang/infra). 💔 clippy-driver on linux: test-pass → test-fail (cc @Manishearth @llogiq @mcarton @oli-obk @phansch, @rust-lang/infra).
This breaks the save-analysis infrastructure (which also includes
rls-{analysis, data, span}crates) from depending on rustc_serialize and so we can start moving them to being supported on stable without implementingDecodableet al. by hand for data structures defined there.Notable benefits:
PathBufserialization (until now (de)serialized as&[u8])This should be merged together with an update to RLS (rust-lang/rls#1435), which technically could be included right now because we can use the bundledrls-analysishere directly, however I'd prefer to publish this to crates.io first (rust-lang/rls#1434, cc @nrc) and use the published version, instead.Includes rust-lang/rls#1436.
@matklad @nikomatsakis This is also important for the potential RLS 1.0 - 2.0 bridge we talked about on Zulip today