parent
78204563e2
commit
c8da5bfd1c
|
|
@ -11,7 +11,7 @@ Rust, as well as publications about Rust.
|
||||||
* [Making ad-hoc polymorphism less ad hoc](https://dl.acm.org/doi/10.1145/75277.75283)
|
* [Making ad-hoc polymorphism less ad hoc](https://dl.acm.org/doi/10.1145/75277.75283)
|
||||||
* [Macros that work together](https://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf)
|
* [Macros that work together](https://www.cs.utah.edu/plt/publications/jfp12-draft-fcdf.pdf)
|
||||||
* [Traits: composable units of behavior](http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf)
|
* [Traits: composable units of behavior](http://scg.unibe.ch/archive/papers/Scha03aTraits.pdf)
|
||||||
* [Alias burying](http://www.cs.uwm.edu/faculty/boyland/papers/unique-preprint.ps) - We tried something similar and abandoned it.
|
* [Alias burying](https://dl.acm.org/doi/10.1002/spe.370) - We tried something similar and abandoned it.
|
||||||
* [External uniqueness is unique enough](http://www.cs.uu.nl/research/techreps/UU-CS-2002-048.html)
|
* [External uniqueness is unique enough](http://www.cs.uu.nl/research/techreps/UU-CS-2002-048.html)
|
||||||
* [Uniqueness and Reference Immutability for Safe Parallelism](https://research.microsoft.com/pubs/170528/msr-tr-2012-79.pdf)
|
* [Uniqueness and Reference Immutability for Safe Parallelism](https://research.microsoft.com/pubs/170528/msr-tr-2012-79.pdf)
|
||||||
* [Region Based Memory Management](https://www.cs.ucla.edu/~palsberg/tba/papers/tofte-talpin-iandc97.pdf)
|
* [Region Based Memory Management](https://www.cs.ucla.edu/~palsberg/tba/papers/tofte-talpin-iandc97.pdf)
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ contributions to rustc and its design.
|
||||||
|
|
||||||
Currently the compiler team chats in Zulip:
|
Currently the compiler team chats in Zulip:
|
||||||
|
|
||||||
- Team chat occurs in the `t-compiler` stream on [the Zulip instance][zulip]
|
- Team chat occurs in the [`t-compiler`][zulip-t-compiler] stream on the Zulip instance
|
||||||
- There are also a number of other associated Zulip streams,
|
- There are also a number of other associated Zulip streams,
|
||||||
such as [`t-compiler/help`][zulip-help], where people can ask for help
|
such as [`t-compiler/help`][zulip-help], where people can ask for help
|
||||||
with rustc development, or [`t-compiler/meetings`][zulip-meetings],
|
with rustc development, or [`t-compiler/meetings`][zulip-meetings],
|
||||||
|
|
@ -60,8 +60,8 @@ The meeting currently takes place on Thursdays at 10am Boston time
|
||||||
(UTC-4 typically, but daylight savings time sometimes makes things
|
(UTC-4 typically, but daylight savings time sometimes makes things
|
||||||
complicated).
|
complicated).
|
||||||
|
|
||||||
|
|
||||||
[procedure]: ./bug-fix-procedure.md
|
[procedure]: ./bug-fix-procedure.md
|
||||||
|
[zulip-t-compiler]: https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler
|
||||||
[zulip-help]: https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp
|
[zulip-help]: https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp
|
||||||
[zulip-meetings]: https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings
|
[zulip-meetings]: https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ See the [HIR chapter][hir-map] for more detailed information.
|
||||||
[`LocalDefId`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/def_id/struct.LocalDefId.html
|
[`LocalDefId`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/def_id/struct.LocalDefId.html
|
||||||
[`HirId`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/hir_id/struct.HirId.html
|
[`HirId`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/hir_id/struct.HirId.html
|
||||||
[`BodyId`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/struct.BodyId.html
|
[`BodyId`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/struct.BodyId.html
|
||||||
[`CrateNum`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/def_id/enum.CrateNum.html
|
[`CrateNum`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/def_id/struct.CrateNum.html
|
||||||
[`DefIndex`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/def_id/struct.DefIndex.html
|
[`DefIndex`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/def_id/struct.DefIndex.html
|
||||||
[`Body`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/struct.Body.html
|
[`Body`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/struct.Body.html
|
||||||
[Node]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/hir/enum.Node.html
|
[Node]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir/hir/enum.Node.html
|
||||||
|
|
|
||||||
|
|
@ -155,10 +155,10 @@ providers**. Almost all **extern providers** wind up going through the
|
||||||
from the crate metadata. But in some cases there are crates that
|
from the crate metadata. But in some cases there are crates that
|
||||||
provide queries for *both* local and external crates, in which case
|
provide queries for *both* local and external crates, in which case
|
||||||
they define both a `provide` and a `provide_extern` function, through
|
they define both a `provide` and a `provide_extern` function, through
|
||||||
[`provide_both`][ext_provide_both], that `rustc_driver` can invoke.
|
[`wasm_import_module_map`][wasm_import_module_map], that `rustc_driver` can invoke.
|
||||||
|
|
||||||
[rustc_metadata]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/index.html
|
[rustc_metadata]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_metadata/index.html
|
||||||
[ext_provide_both]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_llvm/attributes/fn.provide_both.html
|
[wasm_import_module_map]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_codegen_ssa/back/symbol_export/fn.wasm_import_module_map.html
|
||||||
|
|
||||||
### Adding a new kind of query
|
### Adding a new kind of query
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ But it has some other interesting features that distinguish it from the HIR:
|
||||||
[HIR]: ./hir.md
|
[HIR]: ./hir.md
|
||||||
|
|
||||||
The THIR lives in [`rustc_mir_build::thir`][thir-docs]. To construct a [`thir::Expr`],
|
The THIR lives in [`rustc_mir_build::thir`][thir-docs]. To construct a [`thir::Expr`],
|
||||||
you can use the [`build_thir`] function, passing in the memory arena where the THIR
|
you can use the [`thir_body`] function, passing in the memory arena where the THIR
|
||||||
will be allocated. Dropping this arena will result in the THIR being destroyed,
|
will be allocated. Dropping this arena will result in the THIR being destroyed,
|
||||||
which is useful to keep peak memory in check. Having a THIR representation of
|
which is useful to keep peak memory in check. Having a THIR representation of
|
||||||
all bodies of a crate in memory at the same time would be very heavy.
|
all bodies of a crate in memory at the same time would be very heavy.
|
||||||
|
|
@ -43,5 +43,5 @@ You can get a debug representation of the THIR by passing the `-Zunpretty=thir-t
|
||||||
to `rustc`.
|
to `rustc`.
|
||||||
|
|
||||||
[thir-docs]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_build/thir/index.html
|
[thir-docs]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_build/thir/index.html
|
||||||
[`thir::Expr`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_build/thir/struct.Expr.html
|
[`thir::Expr`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/thir/struct.Expr.html
|
||||||
[`build_thir`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir_build/thir/fn.build_thir.html
|
[`thir_body`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html#method.thir_body
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue