Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upMake the rustc driver and interface demand driven #56732
Conversation
rust-highfive
assigned
estebank
Dec 12, 2018
This comment has been minimized.
This comment has been minimized.
|
r? @estebank (rust_highfive has picked a reviewer for you, use r? to override) |
rust-highfive
added
the
S-waiting-on-review
label
Dec 12, 2018
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
|
This comment was marked as outdated.
This comment was marked as outdated.
|
ping from triage @Zoxc can you rebase the PR? will get a review after that |
Dylan-DPC
added
S-waiting-on-author
and removed
S-waiting-on-review
labels
Jan 14, 2019
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
from
6855c2b
to
25847ab
Jan 20, 2019
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
2 times, most recently
from
6a75222
to
32b4fb5
Jan 20, 2019
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
from
8be10ad
to
69b1f68
Jan 21, 2019
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment has been minimized.
This comment has been minimized.
|
Since this will impact rls, clippy and miri quite strongly, could you open PRs against them showing how those changes will impact them? I would assume rls and miri to be easy (since they don't change compilation and just need access to the |
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
from
69b1f68
to
5de65b6
Jan 22, 2019
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
from
5de65b6
to
bdf4e7e
Jan 22, 2019
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
|
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
from
063ba54
to
69e53ae
Jan 28, 2019
This comment was marked as outdated.
This comment was marked as outdated.
|
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 |
This comment was marked as outdated.
This comment was marked as outdated.
|
|
Zoxc
force-pushed the
Zoxc:rustc-interface
branch
from
69e53ae
to
0ec18e5
Jan 28, 2019
This comment has been minimized.
This comment has been minimized.
|
|
bors
added
the
merged-by-bors
label
Mar 10, 2019
bors
merged commit 51938c6
into
rust-lang:master
Mar 10, 2019
1 check passed
This was referenced Mar 10, 2019
This comment has been minimized.
This comment has been minimized.
|
Tested on commit 913ad6d.
|
rust-highfive
added a commit
to rust-lang-nursery/rust-toolstate
that referenced
this pull request
Mar 10, 2019
This was referenced Mar 10, 2019
This comment has been minimized.
This comment has been minimized.
|
I'm not entirely clear on how this changes the driver -- mind patching clippy's driver to work again? Use I think what we need to do is invoke parsing, attach the lints, and then continue with compilation. But I'm not sure. Overall it seems like this makes the driver API more brittle since driver consumers need to know what steps to invoke (as opposed to running the driver with some callbacks, where any change in the compilation process can still be picked up by clippy). There aren't many consumers of the driver interface, but this was supposed to be the path forward for things like clippy. Perhaps an interface which is "does the rustc compilation steps, but with callbacks" can still be exposed? |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Oh, I didn't notice that, thanks so much! While trying to implement this I didn't realize Callbacks existed now, I retract my objection about the driver api being more brittle |
Zoxc commentedDec 12, 2018
This introduces a new crate
rustc_interfacewhich is the canonical interface for creating and using the compiler. It allows you to access aCompilertype in a closure and that types have methods to run passes on demand. The interesting parts are found here (defining the queries) and here (methods to create aCompiler).cc @rust-lang/compiler @rust-lang/dev-tools @rust-lang/rustdoc