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