Changed all instances of `e.g.,` to `e.g.`, and similar.
This commit is contained in:
parent
4f417f0be6
commit
072d698430
|
|
@ -23,8 +23,8 @@ These are the policies for upholding our community's standards of conduct. If yo
|
||||||
1. Remarks that violate the Rust standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.)
|
1. Remarks that violate the Rust standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.)
|
||||||
2. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed.
|
2. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed.
|
||||||
3. Moderators will first respond to such remarks with a warning.
|
3. Moderators will first respond to such remarks with a warning.
|
||||||
4. If the warning is unheeded, the user will be "kicked," i.e., kicked out of the communication channel to cool off.
|
4. If the warning is unheeded, the user will be "kicked," i.e. kicked out of the communication channel to cool off.
|
||||||
5. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded.
|
5. If the user comes back and continues to make trouble, they will be banned, i.e. indefinitely excluded.
|
||||||
6. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology.
|
6. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology.
|
||||||
7. If a moderator bans someone and you think it was unjustified, please take it up with that moderator, or with a different moderator, **in private**. Complaints about bans in-channel are not allowed.
|
7. If a moderator bans someone and you think it was unjustified, please take it up with that moderator, or with a different moderator, **in private**. Complaints about bans in-channel are not allowed.
|
||||||
8. Moderators are held to a higher standard than other community members. If a moderator creates an inappropriate situation, they should expect less leeway than others.
|
8. Moderators are held to a higher standard than other community members. If a moderator creates an inappropriate situation, they should expect less leeway than others.
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ provider | the function that executes a query ([see more](query.
|
||||||
sess | the compiler session, which stores global data used throughout compilation
|
sess | the compiler session, which stores global data used throughout compilation
|
||||||
side tables | because the AST and HIR are immutable once created, we often carry extra information about them in the form of hashtables, indexed by the id of a particular node.
|
side tables | because the AST and HIR are immutable once created, we often carry extra information about them in the form of hashtables, indexed by the id of a particular node.
|
||||||
span | a location in the user's source code, used for error reporting primarily. These are like a file-name/line-number/column tuple on steroids: they carry a start/end point, and also track macro expansions and compiler desugaring. All while being packed into a few bytes (really, it's an index into a table). See the Span datatype for more.
|
span | a location in the user's source code, used for error reporting primarily. These are like a file-name/line-number/column tuple on steroids: they carry a start/end point, and also track macro expansions and compiler desugaring. All while being packed into a few bytes (really, it's an index into a table). See the Span datatype for more.
|
||||||
substs | the substitutions for a given generic type or item (e.g., the `i32`, `u32` in `HashMap<i32, u32>`)
|
substs | the substitutions for a given generic type or item (e.g. the `i32`, `u32` in `HashMap<i32, u32>`)
|
||||||
tcx | the "typing context", main data structure of the compiler ([see more](ty.html))
|
tcx | the "typing context", main data structure of the compiler ([see more](ty.html))
|
||||||
'tcx | the lifetime of the currently active inference context ([see more](ty.html))
|
'tcx | the lifetime of the currently active inference context ([see more](ty.html))
|
||||||
trans | the code to translate MIR into LLVM IR.
|
trans | the code to translate MIR into LLVM IR.
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ more and more to the [query model], however, the
|
||||||
|
|
||||||
At the other extreme, the `rustc` crate defines the common and
|
At the other extreme, the `rustc` crate defines the common and
|
||||||
pervasive data structures that all the rest of the compiler uses
|
pervasive data structures that all the rest of the compiler uses
|
||||||
(e.g., how to represent types, traits, and the program itself). It
|
(e.g. how to represent types, traits, and the program itself). It
|
||||||
also contains some amount of the compiler itself, although that is
|
also contains some amount of the compiler itself, although that is
|
||||||
relatively limited.
|
relatively limited.
|
||||||
|
|
||||||
|
|
@ -77,8 +77,8 @@ purely "pass-based" compiler, where we ran a number of passes over the
|
||||||
entire program, and each did a particular check of transformation. We
|
entire program, and each did a particular check of transformation. We
|
||||||
are gradually replacing this pass-based code with an alternative setup
|
are gradually replacing this pass-based code with an alternative setup
|
||||||
based on on-demand **queries**. In the query-model, we work backwards,
|
based on on-demand **queries**. In the query-model, we work backwards,
|
||||||
executing a *query* that expresses our ultimate goal (e.g., "compile
|
executing a *query* that expresses our ultimate goal (e.g. "compile
|
||||||
this crate"). This query in turn may make other queries (e.g., "get me
|
this crate"). This query in turn may make other queries (e.g. "get me
|
||||||
a list of all modules in the crate"). Those queries make other queries
|
a list of all modules in the crate"). Those queries make other queries
|
||||||
that ultimately bottom out in the base operations, like parsing the
|
that ultimately bottom out in the base operations, like parsing the
|
||||||
input, running the type-checker, and so forth. This on-demand model
|
input, running the type-checker, and so forth. This on-demand model
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ data structure basically just contains the root module, the HIR
|
||||||
`Crate` structure contains a number of maps and other things that
|
`Crate` structure contains a number of maps and other things that
|
||||||
serve to organize the content of the crate for easier access.
|
serve to organize the content of the crate for easier access.
|
||||||
|
|
||||||
For example, the contents of individual items (e.g., modules,
|
For example, the contents of individual items (e.g. modules,
|
||||||
functions, traits, impls, etc) in the HIR are not immediately
|
functions, traits, impls, etc) in the HIR are not immediately
|
||||||
accessible in the parents. So, for example, if there is a module item
|
accessible in the parents. So, for example, if there is a module item
|
||||||
`foo` containing a function `bar()`:
|
`foo` containing a function `bar()`:
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ macro_rules! printer {
|
||||||
`$mvar` is called a _metavariable_. Unlike normal variables, rather than
|
`$mvar` is called a _metavariable_. Unlike normal variables, rather than
|
||||||
binding to a value in a computation, a metavariable binds _at compile time_ to
|
binding to a value in a computation, a metavariable binds _at compile time_ to
|
||||||
a tree of _tokens_. A _token_ is a single "unit" of the grammar, such as an
|
a tree of _tokens_. A _token_ is a single "unit" of the grammar, such as an
|
||||||
identifier (e.g., `foo`) or punctuation (e.g., `=>`). There are also other
|
identifier (e.g. `foo`) or punctuation (e.g. `=>`). There are also other
|
||||||
special tokens, such as `EOF`, which indicates that there are no more tokens.
|
special tokens, such as `EOF`, which indicates that there are no more tokens.
|
||||||
Token trees resulting from paired parentheses-like characters (`(`...`)`,
|
Token trees resulting from paired parentheses-like characters (`(`...`)`,
|
||||||
`[`...`]`, and `{`...`}`) – they include the open and close and all the tokens
|
`[`...`]`, and `{`...`}`) – they include the open and close and all the tokens
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ will in turn demand information about that crate, starting from the
|
||||||
*end*. For example:
|
*end*. For example:
|
||||||
|
|
||||||
- This "compile" query might demand to get a list of codegen-units
|
- This "compile" query might demand to get a list of codegen-units
|
||||||
(i.e., modules that need to be compiled by LLVM).
|
(i.e. modules that need to be compiled by LLVM).
|
||||||
- But computing the list of codegen-units would invoke some subquery
|
- But computing the list of codegen-units would invoke some subquery
|
||||||
that returns the list of all modules defined in the Rust source.
|
that returns the list of all modules defined in the Rust source.
|
||||||
- That query in turn would invoke something asking for the HIR.
|
- That query in turn would invoke something asking for the HIR.
|
||||||
|
|
@ -134,7 +134,7 @@ fn provider<'cx, 'tcx>(tcx: TyCtxt<'cx, 'tcx, 'tcx>,
|
||||||
```
|
```
|
||||||
|
|
||||||
Providers take two arguments: the `tcx` and the query key. Note also
|
Providers take two arguments: the `tcx` and the query key. Note also
|
||||||
that they take the *global* tcx (i.e., they use the `'tcx` lifetime
|
that they take the *global* tcx (i.e. they use the `'tcx` lifetime
|
||||||
twice), rather than taking a tcx with some active inference context.
|
twice), rather than taking a tcx with some active inference context.
|
||||||
They return the result of the query.
|
They return the result of the query.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ if we had a trait reference `usize : Foo<$1>`, where `$n` is an unbound
|
||||||
inference variable, we might replace it with `usize : Foo<%0>`, where
|
inference variable, we might replace it with `usize : Foo<%0>`, where
|
||||||
`%n` is a skolemized type. We would then look this up in the cache.
|
`%n` is a skolemized type. We would then look this up in the cache.
|
||||||
If we found a hit, the hit would tell us the immediate next step to
|
If we found a hit, the hit would tell us the immediate next step to
|
||||||
take in the selection process: i.e., apply impl #22, or apply where
|
take in the selection process: i.e. apply impl #22, or apply where
|
||||||
clause `X : Foo<Y>`. Let's say in this case there is no hit.
|
clause `X : Foo<Y>`. Let's say in this case there is no hit.
|
||||||
Therefore, we search through impls and where clauses and so forth, and
|
Therefore, we search through impls and where clauses and so forth, and
|
||||||
we come to the conclusion that the only possible impl is this one,
|
we come to the conclusion that the only possible impl is this one,
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ method, roughly like so:
|
||||||
infcx.at(...).eq(t, u);
|
infcx.at(...).eq(t, u);
|
||||||
```
|
```
|
||||||
|
|
||||||
The first `at()` call provides a bit of context, i.e., why you are
|
The first `at()` call provides a bit of context, i.e. why you are
|
||||||
doing this unification, and in what environment, and the `eq` method
|
doing this unification, and in what environment, and the `eq` method
|
||||||
performs the actual equality constraint.
|
performs the actual equality constraint.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue