Package-level declarations

Types

Link copied to clipboard

Primitive: Add a write reactor to the specified variable. The supplied key may be used subsequently to remove the write reactor.

Link copied to clipboard

Primitive: Atomically read and update the map in the specified variable by adding the given key and value.

Link copied to clipboard

Primitive: Atomically read and conditionally overwrite the specified variable. The overwrite occurs only if the value read from the variable equals the reference value.

Link copied to clipboard

Primitive: Atomically read and update the specified variable by the specified amount.

Link copied to clipboard

Primitive: Atomically read and overwrite the specified variable.

Link copied to clipboard

Primitive: Atomically read and update the map in the specified variable by removing the given key, if present. If not present, this has no effect.

Link copied to clipboard

Primitive: Clear the variable.

Link copied to clipboard

Primitive: Create a variable with the given inner type. Also initialize it with the given value. Answer the variable.

Link copied to clipboard

Primitive: Answer a variable type with the specified read and write types.

Link copied to clipboard

Primitive: Create a variable with the given inner type.

Link copied to clipboard

Primitive: Create a variable type using the given inner type.

Link copied to clipboard

Primitive: Disable variable read-before-write tracing for the current fiber. To each variable that survived tracing, add a write reactor that wraps the specified function, associating it with the specified atom (for potential pre-activation removal).

Link copied to clipboard

Primitive: Disable variable write tracing for the current fiber. For each variable that survived tracing, accumulate the variable's write reactor functions into a set. Clear the write reactors for each variable written. Answer the set of functions.

Link copied to clipboard

Primitive: Get the value of the variable, clear the variable, then answer the previously extracted value. This operation allows store-back patterns to be efficiently implemented in Level One code while keeping the interpreter itself thread-safe and debugger-safe.

Link copied to clipboard

Primitive: There are two possibilities. The variable is mutable, in which case we want to destroy it, or the variable is immutable, in which case we want to make sure the extracted value becomes immutable (in case the variable is being held onto by something). Since the primitive invocation code is going to erase it if it's mutable anyhow, only the second case requires any real work.

Link copied to clipboard

Primitive: Answer true if the variable is unassigned (has no value).

Link copied to clipboard

Primitive: Test whether the map in the specified variable has the given key.

Link copied to clipboard

Primitive: Remove the write reactor associated with the specified key.

Link copied to clipboard

Primitive: Assign the value to the variable.

Link copied to clipboard
object P_Swap : Primitive

Primitive: Swap the contents of two variables.

Link copied to clipboard

Primitive: Enable variable read-before-write tracing for the current fiber.

Link copied to clipboard
Link copied to clipboard

Primitive: Extract the read type of a variable type.

Link copied to clipboard

Primitive: Extract the write type of a variable type.