☰
runtime
fuzion.runtime
fuzion.runtime -- unit type to group fuzion runtime system APIs
Value Constructors
check_fault -- effect that terminates a computation due to a failed
condition in a check statement
condition in a check statement
contract_fault -- effect that terminates a computation due to a failed
condition in a check statement
condition in a check statement
fault -- effect that terminates a computation due to a runtime fault
post_fault -- effect that terminates a computation due to a failed runtime post
condition check
condition check
pre_fault -- effect that terminates a computation due to a failed runtime pre
condition check
condition check
Functions
create a String from this instance. Unless redefined, `a.as_string` will
create `"instance[T]"` where `T` is the dynamic type of `a`
create `"instance[T]"` where `T` is the dynamic type of `a`
check_fault with no argument returns check_fault.env, the currently installed
runtime check_fault handler.
runtime check_fault handler.
cause a check fault with given msg argument, i.e., call check_fault.cause
msg, i.e., use the current check_fault effect to fail with the given message.
msg, i.e., use the current check_fault effect to fail with the given message.
contract_fault with no argument returns contract_fault.env, the currently installed
runtime contract_fault handler.
runtime contract_fault handler.
Get the dynamic type of this instance. For value instances `x`, this is
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierachy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
equal to `type_of x`, but for `x` with a `ref` type `x.dynamic_type` gives
the actual runtime type, while `type_of x` results in the static
compile-time type.
There is no dynamic type of a type instance since this would result in an
endless hierachy of types. So for Type values, dynamic_type is redefined
to just return Type.type.
fault with no argument returns fault.env, the currently installed
runtime fault handler.
runtime fault handler.
name of this type, including type parameters, e.g. 'option (list i32)'.
post_fault with no argument returns post_fault.env, the currently installed
runtime post_fault handler.
runtime post_fault handler.
cause a postcondition fault with given msg argument, i.e., call post_fault.cause
msg, i.e., use the current post_fault effect to fail with the given message.
msg, i.e., use the current post_fault effect to fail with the given message.
pre_fault with no argument returns pre_fault.env, the currently installed
runtime pre_fault handler.
runtime pre_fault handler.
cause a precondition fault with given msg argument, i.e., call pre_fault.cause
msg, i.e., use the current pre_fault effect to fail with the given message.
msg, i.e., use the current pre_fault effect to fail with the given message.
convenience prefix operator to create a string from a value.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
This permits usage of `$` as a prefix operator in a similar way both
inside and outside of constant strings: $x and "$x" will produce the
same string.
Value Types
check_fault -- effect that terminates a computation due to a failed
condition in a check statement
condition in a check statement
contract_fault -- effect that terminates a computation due to a failed
condition in a check statement
condition in a check statement
fault -- effect that terminates a computation due to a runtime fault
post_fault -- effect that terminates a computation due to a failed runtime post
condition check
condition check
pre_fault -- effect that terminates a computation due to a failed runtime pre
condition check
condition check
Type Features
Get a type as a value.
This is a feature with the effect equivalent to Fuzion's `expr.type` call tail.
It is recommended to use `expr.type` and not `expr.type_value`.
`type_value` is here to show how this can be implemented and to illustrate the
difference to `dynamic_type`.
This is a feature with the effect equivalent to Fuzion's `expr.type` call tail.
It is recommended to use `expr.type` and not `expr.type_value`.
`type_value` is here to show how this can be implemented and to illustrate the
difference to `dynamic_type`.