Apply suggestions from code review
Co-Authored-By: Chris Simpkins <git.simpkins@gmail.com>
This commit is contained in:
parent
96e912e6a6
commit
e927db936f
|
|
@ -36,7 +36,7 @@ we'll talk about that later.
|
||||||
- The lexer has a small interface and doesn't depend directly on the
|
- The lexer has a small interface and doesn't depend directly on the
|
||||||
diagnostic infrastructure in `rustc`. Instead it provides diagnostics as plain
|
diagnostic infrastructure in `rustc`. Instead it provides diagnostics as plain
|
||||||
data which are emitted in `librustc_parse::lexer::mod` as real diagnostics.
|
data which are emitted in `librustc_parse::lexer::mod` as real diagnostics.
|
||||||
- The lexer preseves full fidelity information for both IDEs and proc macros.
|
- The lexer preserves full fidelity information for both IDEs and proc macros.
|
||||||
- The parser [translates the token stream from the lexer into an Abstract Syntax
|
- The parser [translates the token stream from the lexer into an Abstract Syntax
|
||||||
Tree (AST)][parser]. It uses a recursive descent (top-down) approach to syntax
|
Tree (AST)][parser]. It uses a recursive descent (top-down) approach to syntax
|
||||||
analysis. The crate entry points for the parser are the `Parser.parse_crate_mod()` and
|
analysis. The crate entry points for the parser are the `Parser.parse_crate_mod()` and
|
||||||
|
|
@ -145,7 +145,7 @@ satisfy/optimize for. For example,
|
||||||
various ways (e.g. cargo, clippy, miri, RLS) that must be supported.
|
various ways (e.g. cargo, clippy, miri, RLS) that must be supported.
|
||||||
- Compiler stability: the compiler should not crash or fail ungracefully on the
|
- Compiler stability: the compiler should not crash or fail ungracefully on the
|
||||||
stable channel.
|
stable channel.
|
||||||
- Rust stability: the compiler must respect rust's stability guarantees by not
|
- Rust stability: the compiler must respect Rust's stability guarantees by not
|
||||||
breaking programs that previously compiled despite the many changes that are
|
breaking programs that previously compiled despite the many changes that are
|
||||||
always going on to its implementation.
|
always going on to its implementation.
|
||||||
- Limitations of other tools: rustc uses LLVM in its backend, and LLVM has some
|
- Limitations of other tools: rustc uses LLVM in its backend, and LLVM has some
|
||||||
|
|
@ -299,7 +299,7 @@ together into one binary.
|
||||||
|
|
||||||
However, the rest of the compiler is still not yet parallel. There have been
|
However, the rest of the compiler is still not yet parallel. There have been
|
||||||
lots of efforts spent on this, but it is generally a hard problem. The current
|
lots of efforts spent on this, but it is generally a hard problem. The current
|
||||||
approach is (**TODO: verify**) to turn `RefCell`s into `Mutex`s -- that is, we
|
approach is to turn `RefCell`s into `Mutex`s -- that is, we
|
||||||
switch to thread-safe internal mutability. However, there are ongoing
|
switch to thread-safe internal mutability. However, there are ongoing
|
||||||
challenges with lock contention, maintaining query-system invariants under
|
challenges with lock contention, maintaining query-system invariants under
|
||||||
concurrency, and the complexity of the code base. One can try out the current
|
concurrency, and the complexity of the code base. One can try out the current
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue