glossary
The words of the cint specifications, as released in 0.2.8. Each entry links to the clause that defines it, and where the two differ, the clause governs.
terms
- agreement
- Two implementations agree on a program when its canonical outcomes are equal for the same semantic inputs. The conformance suite measures agreement with the reference.
- SPEC-09P.4 3.13
- as, as%, as|, as?
x as I32convertsxtoI32and faults when the value does not fit;as%wraps,as|clamps to the range andas?returns an error. No conversion is implicit, not even from a narrower integer type to a wider one.- SPEC-04P.4 6.6
- bootstrap
- Building the compiler from its source text and a C toolchain alone, with no cint compiler built earlier.
- SPEC-09P.4 3.18
- boundary
- A point of a run at which the state of its context is defined and its state hash is taken, such as the end of an entry.
- SPEC-01P.3 3.16
- canonical
- Chosen by a named, versioned rule as the one representation of a content. Canonical says which bytes are compared, not that they are correct.
- SPEC-01P.3 3.1
- canonical outcome
- What implementations compare for one entry: the output bytes, the kind of outcome, the returned value, the fuel consumed and the fault record.
- SPEC-09P.4 3.12
- case
- A recording that also holds the source text of every module of its program, so the run can be shown, replayed and compared on another machine.
- SPEC-01P.3 3.15
- checked operator
- An operator that gives the exact result when it fits the result type and faults otherwise. Every plain operator is checked:
+,-,*,/,%,<<and>>. - SPEC-04P.4 3.5
- checkpoint
- The canonical bytes of a state, in an envelope that names the runtime contract, from which a context can be restored.
- SPEC-01P.3 3.11
- context
- One instance of a program's state, held by a host program, in which entries run one at a time.
- SPEC-04P.4 3.44
- digest
- A SHA-256 digest, written as 64 lowercase hexadecimal digits. cint names a program, a file or a state by its digest, which the specifications call its identity.
- SPEC-06P.3 3.14, SPEC-01P.3 3.12
- digest chain
- The digest a recording carries in its last event, computed from the state hash of its first checkpoint and of each boundary in turn.
- SPEC-01P.3 3.17
- domain string
- The string of the form
<profile>/<kind>/v<n>that begins every binary encoding and the input of every digest, and names the encoding. - SPEC-01P.3 3.3
- entry
- One run of a program from its entry point: the top-level statements of a script,
main, atestblock or an exported function called from a host program. - SPEC-04P.4 3.20
- exact result
- The result of an arithmetic operation computed over the unbounded integers, before any check against the range of the result type.
- SPEC-04P.4 3.4
- fault
- The stop of a run at an operation that cannot give a correct result, such as an overflow, a division by zero or an index outside an array.
- SPEC-04P.4 3.9
- fault record
- The description of a fault: its fault code, the operation, the operands, the exact result, the bound that was crossed, the source position and the identity of the program. It is the same on every conforming build.
- SPEC-04P.4 3.11, SPEC-04P.4 8.1
- fixed point
Q<i>.<f>, such asQ16.16: a signed type withiinteger bits andffraction bits, held as an integer count of units of 2^-f.- SPEC-04P.4 6.3.2
- fixpoint
- The state in which the compiler, built from the C it emitted for its own source, emits that same C again.
- SPEC-09P.4 3.19
- fuel
- A count of the steps an entry is charged as it runs: calls, loop iterations, reductions and kernel dispatches. It is the same on every machine, and an entry faults at the charge that would take it past its allowance.
- SPEC-04P.4 3.21
- golden
- An output saved from a run that was checked once, kept with the program and compared byte for byte with each later run on the same inputs.
- SPEC-04P.4 3.32
- grant set
- The capabilities given to a run, fixed before the program starts, such as
fs.read:/data. A call that no grant covers returns the errordeniedand changes nothing. - SPEC-04P.4 3.49, SPEC-04P.4 6.9.9
- helper
- A function of the runtime that performs one operation of one type and reports its fault, such as
cint_add_i64. - SPEC-09P.4 3.8
- kernel
- A function that runs once for each point of an iteration space, writing its results to output views that only that point may write, so the points can run in parallel.
- SPEC-04P.4 3.28
- lane
- A packed part of an integer's bit pattern, the width of an unsigned type that divides the integer's width.
!lanes(U8)prints a value as its lanes, lane 0 the least significant. - SPEC-04P.4 7.5.4
- lean set
- The small functions of a module that make no host call, dispatch or fixed-point operation and call only each other. A call between them writes no call site or depth into the context, and every result, fault record and fuel count stays the same.
- SPEC-09P.4 7.5
- receipt
- A canonical JSON file that records one run of a tool: its inputs, its outcome and what it observed. A published figure cites the receipt it came from.
- SPEC-09P.4 3.14
- receipt identity
- The SHA-256 digest of a receipt's inputs and outcome. Two runs with the same receipt identity had the same inputs and the same outcome.
- SPEC-09P.4 3.15
- recording
- A file that holds a program's identity and code, a checkpoint taken when recording began and the events that followed, from which the run can be replayed.
- SPEC-01P.3 3.14
- refusal
- The report that an implementation will not run a valid program, or a dispatch, because it cannot run it exactly. A refused program is never run with a different meaning.
- SPEC-04P.4 3.16
- replay
- Running the entries of a recording again from its initial state with the recorded inputs, and comparing each boundary with the recording.
- SPEC-06P.3 3.11
- result form
- A built-in operation, such as
add_result, that returns an error union instead of raising the fault its checked operator would raise. - SPEC-04P.4 3.8
- revision
- The identity of a program, a digest. Source positions are not part of it, and a fault record names the revision its positions refer to.
- SPEC-04P.4 3.31
- runtime
- The C library
cint_rtthat emitted C and the interpreter call for checked arithmetic, fuel, call depth and fault records. - SPEC-09P.4 3.7
- saturating operator
+|,-|and*|: the exact result clamped to the range of the type. A saturating operator never faults on overflow.- SPEC-04P.4 3.7
- semantic input
- A value that decides the outcome of an entry: the program, its inputs, the effects the host supplied, the fuel allowance, the call-depth limit and the frame-arena capacity. Host time, scheduling and addresses are not semantic inputs.
- SPEC-04P.4 3.24
- SIR
- The semantic intermediate representation: the form of a checked program that every executor of the toolchain runs.
- SPEC-09P.4 3.3
- state
- The canonical content of a context between entries: its module-level variables, arenas and pools, buffer registry, identifier counters, any fault record it holds and the count of effects it has completed.
- SPEC-01P.3 3.10
- the reference
cint_ref, an implementation in Python written to follow the specification directly. Its results are the expected results of the conformance suite.- SPEC-04P.4 3.18
- wide integers
I128toI1024andU128toU512, with the same checked operators as the 8- to 64-bit types.- SPEC-04P.4 6.3.1
- word
I64, the type of every array length, index andforrange bound. A bound of another integer type is diagnosed even when its value fits;as I64converts it.- SPEC-04P.4 6.3.1
- wrapping operator
+%,-%,*%and<<%: the exact result reduced into the range of the type. A wrapping operator never faults.- SPEC-04P.4 3.6