-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Lockless LintStore #65193
Lockless LintStore #65193
Commits on Oct 17, 2019
-
Duplicate lint specifications are always bug!
Replace early_error and sess.err with bug!, in all cases. If the compiler we're running with, including plugins, is registering something twice, that's a (compiler/plugin) programmer error -- we should not try to be nice at the cost of developer ergononomics (hiding the stacktrace of the second registration is bad). This also is basically a static bug in ~all cases so it should not be a detriment to users, including with plugins.
Configuration menu - View commit details
-
Copy full SHA for 47a443c - Browse repository at this point
Copy the full SHA 47a443cView commit details -
De-propagate optional session from lint registration
This is straight up removing dead code, but is a separate commit from the previous to avoid conflating clean up and important changes.
Configuration menu - View commit details
-
Copy full SHA for 577d442 - Browse repository at this point
Copy the full SHA 577d442View commit details -
Handle lints, not passes in push_lints
This extracts the call to get_lints() to callers.
Configuration menu - View commit details
-
Copy full SHA for 2121b04 - Browse repository at this point
Copy the full SHA 2121b04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 748eccd - Browse repository at this point
Copy the full SHA 748eccdView commit details -
Configuration menu - View commit details
-
Copy full SHA for b060f3b - Browse repository at this point
Copy the full SHA b060f3bView commit details -
Configuration menu - View commit details
-
Copy full SHA for e1079c8 - Browse repository at this point
Copy the full SHA e1079c8View commit details -
No longer implicitly register lints when registering passes
This is in preparation for on-demand constructing passes
Configuration menu - View commit details
-
Copy full SHA for 68c07db - Browse repository at this point
Copy the full SHA 68c07dbView commit details -
Make get_lints be a static function
This moves from calling get_lints on instantiated pass objects to the raw object
Configuration menu - View commit details
-
Copy full SHA for 7fef397 - Browse repository at this point
Copy the full SHA 7fef397View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2454512 - Browse repository at this point
Copy the full SHA 2454512View commit details -
Move to storing constructor functions inside LintStore
This stops storing the pass objects and instead stores constructor functions. The primary effect is that LintStore no longer has any interior mutability.
Configuration menu - View commit details
-
Copy full SHA for aa4ee2c - Browse repository at this point
Copy the full SHA aa4ee2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for c1abc30 - Browse repository at this point
Copy the full SHA c1abc30View commit details -
Remove side table of future incompatibility info
Moves this information to a direct field of Lint, which is where it belongs.
Configuration menu - View commit details
-
Copy full SHA for 7abb1fa - Browse repository at this point
Copy the full SHA 7abb1faView commit details -
Access future incompatibility information directly
Avoid querying LintStore when not necessary
Configuration menu - View commit details
-
Copy full SHA for c4475c7 - Browse repository at this point
Copy the full SHA c4475c7View commit details -
Remove all borrows of lint store from Session from librustc
Access through tcx is fine -- by that point, the lint store is frozen, but direct access through Session will go away in future commits, as lint store is still mutable in early stages of Session, and will be removed completely.
Configuration menu - View commit details
-
Copy full SHA for da56d1d - Browse repository at this point
Copy the full SHA da56d1dView commit details -
Create lint store during plugin registration
Remove lint store from Session
Configuration menu - View commit details
-
Copy full SHA for dab3bd6 - Browse repository at this point
Copy the full SHA dab3bd6View commit details -
Configuration menu - View commit details
-
Copy full SHA for b761367 - Browse repository at this point
Copy the full SHA b761367View commit details -
Update API to be more compatible with plugin needs
Move to using Box<dyn Fn() -> ...> so that we can let plugins register state. This also adds a callback that'll get called from plugin registration so that Clippy and other tools can register lints without using the plugin API. The plugin API still works, but this new API is more compatible with drivers other than rustc.
Configuration menu - View commit details
-
Copy full SHA for 6be0a70 - Browse repository at this point
Copy the full SHA 6be0a70View commit details
Commits on Oct 22, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 4e8d1b2 - Browse repository at this point
Copy the full SHA 4e8d1b2View commit details