Overhaul features-status-dump - #161078
Open
Kat-zorn wants to merge 3 commits into
Open
Conversation
Collaborator
|
rustbot has assigned @Mark-Simulacrum. Use Why was this reviewer chosen?The reviewer was selected based on:
|
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 free
to 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.
features-status-dumpwas made to dump the state of all features in the compiler and standard library to a JSON file. This allows out-of-tree programs to inspect the data, without needing to have access to the in-tree crates used to obtain the data.After a certain RustNL talk inspired me to look through the list of features in search of interesting ones to work on, I decided to make a tool to make looking through them easier. Since this tool requires access to the Rust source to work, and will likely only be used by rust-lang devs, I decided to develop it in-tree. This crate seems to be the perfect basis to turn into this tool, as the following changes to it allow it to work for feature-finding, while retaining exact backwards compatibility (if I did it right):
--library-pathand--compiler-pathto be specified, so users can look through just the project they're interested in. Notably library lookup is much slower than listing language features. Being able to only look at language features is a massive performance advantage to users who only need to know those.--output-pathoptional and default to stdout, so users can get quick feedback.--beforeand--sinceflags for specifying a version range for the feature'ssinceattribute.--unstable,--accepted, and--rejectedflags for filtering by feature level.--tracking-issueflag for filtering on presence of a tracking issue.--formatflag to choose whether to print human-readable plaintext or JSON.--sort-byflag to see relevant features first. (Sorts by newest/oldest version, with issue number as tie breaker.)I hope that the tool is welcome in this project, and will turn out to be useful. If there's any feedback, I'd be happy to hear it, as I'm quite new here.