address Zoxc's comments
This commit is contained in:
parent
c802e54d6d
commit
7e2b64e262
|
|
@ -4,7 +4,9 @@
|
||||||
> a copy of the code on the GitHub repository.
|
> a copy of the code on the GitHub repository.
|
||||||
>
|
>
|
||||||
> Due to the compiler's constantly evolving nature, the `rustc_driver`
|
> Due to the compiler's constantly evolving nature, the `rustc_driver`
|
||||||
> mechanisms described in this chapter have been replaced by a new
|
> mechanisms described in this chapter have changed. In particular, the
|
||||||
|
> `CompilerCalls` and `CompileController` types have been replaced by
|
||||||
|
> [`Callbacks`][cb]. Also, there is a new query-based interface in the
|
||||||
> [`rustc_interface`] crate. See [The Rustc Driver and Interface] for more
|
> [`rustc_interface`] crate. See [The Rustc Driver and Interface] for more
|
||||||
> information.
|
> information.
|
||||||
|
|
||||||
|
|
@ -409,6 +411,7 @@ analysis, rather than doing its own analysis). Other parts of the compiler
|
||||||
internally (I already changed save-analysis to use `CompilerController`). I've
|
internally (I already changed save-analysis to use `CompilerController`). I've
|
||||||
been experimenting with a prototype rustfmt which also uses these APIs.
|
been experimenting with a prototype rustfmt which also uses these APIs.
|
||||||
|
|
||||||
|
[cb]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/trait.Callbacks.html
|
||||||
[stupid-stats]: https://github.com/nrc/stupid-stats
|
[stupid-stats]: https://github.com/nrc/stupid-stats
|
||||||
[`rustc_interface`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/index.html
|
[`rustc_interface`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/index.html
|
||||||
[The Rustc Driver and Interface]: ../rustc-driver.html
|
[The Rustc Driver and Interface]: ../rustc-driver.html
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,13 @@ specifically the [`rustc_driver::run_compiler` function][rd_rc] (not to be confu
|
||||||
`interface::run_compiler`). The `rustc_driver::run_compiler` function takes a bunch of
|
`interface::run_compiler`). The `rustc_driver::run_compiler` function takes a bunch of
|
||||||
command-line args and some other configurations and drives the compilation to completion.
|
command-line args and some other configurations and drives the compilation to completion.
|
||||||
|
|
||||||
|
`rustc_driver::run_compiler` also takes a [`Callbacks`][cb]. In the past, when
|
||||||
|
the `rustc_driver::run_compiler` was the primary way to use the compiler as a
|
||||||
|
library, these callbacks were used to have some custom code run after different
|
||||||
|
phases of the compilation. If you read [Appendix A], you may notice the use of the
|
||||||
|
types `CompilerCalls` and `CompileController`, which no longer exist. `Callbacks`
|
||||||
|
replaces this functionality.
|
||||||
|
|
||||||
> **Warning:** By its very nature, the internal compiler APIs are always going
|
> **Warning:** By its very nature, the internal compiler APIs are always going
|
||||||
> to be unstable. That said, we do try not to break things unnecessarily.
|
> to be unstable. That said, we do try not to break things unnecessarily.
|
||||||
|
|
||||||
|
|
@ -38,6 +45,7 @@ duplication while also preventing a lot of the ergonomic issues due to many
|
||||||
pervasive lifetimes. The `rustc::ty::tls` module is used to access these
|
pervasive lifetimes. The `rustc::ty::tls` module is used to access these
|
||||||
thread-locals, although you should rarely need to touch it.
|
thread-locals, although you should rarely need to touch it.
|
||||||
|
|
||||||
|
[cb]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/trait.Callbacks.html
|
||||||
[rd_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/fn.run_compiler.html
|
[rd_rc]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/fn.run_compiler.html
|
||||||
[`rustc_interface`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/index.html
|
[`rustc_interface`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_interface/index.html
|
||||||
[`rustc_driver`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/
|
[`rustc_driver`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue