Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

Use serde instead of rustc_serialize #1435

Closed
wants to merge 2 commits into from

Conversation

Xanewok
Copy link
Member

@Xanewok Xanewok commented Apr 17, 2019

This needs to be coordinated with rustc which emits JSON using serde instead of rustc_serialize.

@Xanewok Xanewok marked this pull request as ready for review April 18, 2019 06:43
@Xanewok Xanewok closed this Apr 18, 2019
@Xanewok Xanewok deleted the only-use-serde branch April 18, 2019 07:56
bors added a commit to rust-lang/rust that referenced this pull request Apr 22, 2019
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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant