6.1. globals

These names are bound in every fresh module and main program by default. Essential symbols are created by the compiler, and subsequent utility functions, macros and types are defined and documented in core.sc.

The core module implements the remaining standard functions and macros, parses the command-line and optionally enters the REPL.

definebackslash-char

A constant of type i8.

definebarrier-kind-control

A constant of type i32.

definebarrier-kind-memory

A constant of type i32.

definebarrier-kind-memory-buffer

A constant of type i32.

definebarrier-kind-memory-group

A constant of type i32.

definebarrier-kind-memory-image

A constant of type i32.

definebarrier-kind-memory-shared

A constant of type i32.

definecache-dir

A constant of type String.

definecompile-flag-O1

A constant of type u64.

definecompile-flag-O2

A constant of type u64.

definecompile-flag-O3

A constant of type u64.

definecompile-flag-cache

A constant of type u64.

definecompile-flag-dump-disassembly

A constant of type u64.

definecompile-flag-dump-function

A constant of type u64.

definecompile-flag-dump-module

A constant of type u64.

definecompile-flag-dump-time

A constant of type u64.

definecompile-flag-no-debug-info

A constant of type u64.

definecompiler-dir

A string containing the folder path to the compiler environment. Typically the compiler environment is the folder that contains the bin folder containing the compiler executable.

definecompiler-file-kind-asm

A constant of type i32.

definecompiler-file-kind-bc

A constant of type i32.

definecompiler-file-kind-llvm

A constant of type i32.

definecompiler-file-kind-object

A constant of type i32.

definecompiler-path

A string constant containing the file path to the compiler executable.

definecompiler-timestamp

A string constant indicating the time and date the compiler was built.

definedebug-build?

A boolean constant indicating if the compiler was built in debug mode.

definedefault-target-triple

A constant of type String.

definee

Euler’s number, also known as Napier’s constant. Explicitly type-annotated versions of the constant are available as e:f32 and e:f64

definee:f32

See e.

definee:f64

See e.

definefalse

A constant of type bool.

defineglobal-flag-block

A constant of type u32.

defineglobal-flag-buffer-block

A constant of type u32.

defineglobal-flag-coherent

A constant of type u32.

defineglobal-flag-flat

A constant of type u32.

defineglobal-flag-non-readable

A constant of type u32.

defineglobal-flag-non-writable

A constant of type u32.

defineglobal-flag-restrict

A constant of type u32.

defineglobal-flag-volatile

A constant of type u32.

defineinfinite-range

A Generator that iterates through all 32-bit signed integer values starting at 0. This generator does never terminate; when it exceeds the maximum positive integer value of 2147483647, it overflows and continues with the minimum negative integer value of -2147483648.

definelist-handler-symbol

A constant of type Symbol.

definenone

A constant of type Nothing.

definenull

A constant of type NullType.

defineoperating-system

A string constant indicating the operating system the compiler was built for. It equals to "linux" for Linux builds, "windows" for Windows builds, "macos" for macOS builds and "unknown" otherwise.

definepi

The number π, the ratio of a circle’s circumference C to its diameter d. Explicitly type-annotated versions of the constant are available as pi:f32 and pi:f64.

definepi:f32

See pi.

definepi:f64

See pi.

definepointer-flag-non-readable

A constant of type u64.

definepointer-flag-non-writable

A constant of type u64.

definequestion-mark-char

A constant of type i8.

defineslash-char

A constant of type i8.

definestyle-comment

A constant of type Symbol.

definestyle-error

A constant of type Symbol.

definestyle-function

A constant of type Symbol.

definestyle-instruction

A constant of type Symbol.

definestyle-keyword

A constant of type Symbol.

definestyle-location

A constant of type Symbol.

definestyle-none

A constant of type Symbol.

definestyle-number

A constant of type Symbol.

definestyle-operator

A constant of type Symbol.

definestyle-sfxfunction

A constant of type Symbol.

definestyle-string

A constant of type Symbol.

definestyle-symbol

A constant of type Symbol.

definestyle-type

A constant of type Symbol.

definestyle-warning

A constant of type Symbol.

definesymbol-handler-symbol

A constant of type Symbol.

definetrue

A constant of type bool.

definetype-kind-arguments

A constant of type i32.

definetype-kind-array

A constant of type i32.

definetype-kind-function

A constant of type i32.

definetype-kind-image

A constant of type i32.

definetype-kind-integer

A constant of type i32.

definetype-kind-pointer

A constant of type i32.

definetype-kind-qualify

A constant of type i32.

definetype-kind-real

A constant of type i32.

definetype-kind-sampled-image

A constant of type i32.

definetype-kind-tuple

A constant of type i32.

definetype-kind-typename

A constant of type i32.

definetype-kind-vector

A constant of type i32.

definetyped-symbol-handler-symbol

A constant of type Symbol.

definetypename-flag-plain

A constant of type u32.

defineunknown-anchor

A constant of type Anchor.

defineunnamed

A constant of type Symbol.

defineunroll-limit

A constant of type i32 indicating the maximum number of recursions permitted for an inline. When this number is exceeded, an error is raised during typechecking. Currently, the limit is set at 64 recursions. This restriction has been put in place to prevent the compiler from overflowing its stack memory.

definevalue-kind-alloca

A constant of type i32.

definevalue-kind-annotate

A constant of type i32.

definevalue-kind-argument-list

A constant of type i32.

definevalue-kind-argument-list-template

A constant of type i32.

definevalue-kind-atomicrmw

A constant of type i32.

definevalue-kind-barrier

A constant of type i32.

definevalue-kind-binop

A constant of type i32.

definevalue-kind-call

A constant of type i32.

definevalue-kind-call-template

A constant of type i32.

definevalue-kind-cast

A constant of type i32.

definevalue-kind-cmpxchg

A constant of type i32.

definevalue-kind-compile-stage

A constant of type i32.

definevalue-kind-condbr

A constant of type i32.

definevalue-kind-const-aggregate

A constant of type i32.

definevalue-kind-const-int

A constant of type i32.

definevalue-kind-const-pointer

A constant of type i32.

definevalue-kind-const-real

A constant of type i32.

definevalue-kind-discard

A constant of type i32.

definevalue-kind-exception

A constant of type i32.

definevalue-kind-execution-mode

A constant of type i32.

definevalue-kind-expression

A constant of type i32.

definevalue-kind-extract-argument

A constant of type i32.

definevalue-kind-extract-argument-template

A constant of type i32.

definevalue-kind-extract-element

A constant of type i32.

definevalue-kind-extract-value

A constant of type i32.

definevalue-kind-fcmp

A constant of type i32.

definevalue-kind-free

A constant of type i32.

definevalue-kind-function

A constant of type i32.

definevalue-kind-get-element-ptr

A constant of type i32.

definevalue-kind-global

A constant of type i32.

definevalue-kind-icmp

A constant of type i32.

definevalue-kind-if

A constant of type i32.

definevalue-kind-image-query-levels

A constant of type i32.

definevalue-kind-image-query-lod

A constant of type i32.

definevalue-kind-image-query-samples

A constant of type i32.

definevalue-kind-image-query-size

A constant of type i32.

definevalue-kind-image-read

A constant of type i32.

definevalue-kind-image-write

A constant of type i32.

definevalue-kind-insert-element

A constant of type i32.

definevalue-kind-insert-value

A constant of type i32.

definevalue-kind-keyed

A constant of type i32.

definevalue-kind-keyed-template

A constant of type i32.

definevalue-kind-label

A constant of type i32.

definevalue-kind-label-template

A constant of type i32.

definevalue-kind-load

A constant of type i32.

definevalue-kind-loop

A constant of type i32.

definevalue-kind-loop-arguments

A constant of type i32.

definevalue-kind-loop-label

A constant of type i32.

definevalue-kind-loop-label-arguments

A constant of type i32.

definevalue-kind-malloc

A constant of type i32.

definevalue-kind-merge

A constant of type i32.

definevalue-kind-merge-template

A constant of type i32.

definevalue-kind-parameter

A constant of type i32.

definevalue-kind-parameter-template

A constant of type i32.

definevalue-kind-pure-cast

A constant of type i32.

definevalue-kind-quote

A constant of type i32.

definevalue-kind-raise

A constant of type i32.

definevalue-kind-repeat

A constant of type i32.

definevalue-kind-return

A constant of type i32.

definevalue-kind-sample

A constant of type i32.

definevalue-kind-select

A constant of type i32.

definevalue-kind-shuffle-vector

A constant of type i32.

definevalue-kind-store

A constant of type i32.

definevalue-kind-switch

A constant of type i32.

definevalue-kind-switch-template

A constant of type i32.

definevalue-kind-template

A constant of type i32.

definevalue-kind-triop

A constant of type i32.

definevalue-kind-undef

A constant of type i32.

definevalue-kind-unop

A constant of type i32.

definevalue-kind-unquote

A constant of type i32.

definevalue-kind-unreachable

A constant of type i32.

typeAnchor

A plain type of storage type _Anchor.

typeArguments

An opaque type.

spice__typecall ( ... )
typeBuiltin

A plain type of storage type u64.

spice__hash ( ... )
typeCEnum

An opaque type of supertype immutable.

spice__!= ( ... )
spice__& ( ... )
spice__* ( ... )
spice__+ ( ... )
spice__- ( ... )
spice__/ ( ... )
spice__// ( ... )
spice__< ( ... )
spice__<= ( ... )
spice__== ( ... )
spice__> ( ... )
spice__>= ( ... )
spice__^ ( ... )
spice__imply ( ... )
inline__neg ( self )
spice__rimply ( ... )
spice__| ( ... )
inline__~ ( self )
typeCStruct

An opaque type.

spice__drop ( ... )
spice__getattr ( ... )
spice__typecall ( ... )
typeCUnion

An opaque type.

spice__getattr ( ... )
inline__typecall ( cls value... )
typeClosure

A plain type of storage type _Closure.

spice__!= ( ... )
spice__== ( ... )
spice__hash ( ... )
spice__imply ( ... )
compiledfndocstring ( ... )

An external function of type String<-(Closure).

typeCollector

A plain type of storage type _Closure.

spice__call ( ... )
inline__typecall ( cls init valid? at collect )
typeCompileStage

A plain type of storage type {_Value Anchor}.

typeError

A plain type of storage type _Error.

inlineappend ( self anchor traceback-msg )
compiledfndump ( ... )

An external function of type void<-(Error).

compiledfnformat ( ... )

An external function of type String<-(Error).

typeGenerator

Generators provide a protocol for iterating the contents of containers and enumerating sequences. They are primarily used by for and fold, but can also be used separately.

Each generator instance is equivalent to a closure that when called returns four functions:

  • A function state... <- fn start () which returns the initial state of the generator as an arbitrary number of arbitrarily typed values. The initially returned state defines the format of the generators internal state.
  • A function bool <- fn valid? (state...) which takes the current generator state and returns true when the generator can resolve the state to a collection item, otherwise false, indicating that the generator has been depleted.
  • A function value... <- fn at (state...) which takes the current generator state and returns the collection item this state maps to. The function may not be called for a state for which valid? has reported to be depleted.
  • A function state... <- fn next (state...) which takes the current generator state and returns the state mapping to the next item in the collection. The new state must have the same type signature as the previous state. The function may not be called for a state for which valid? has reported to be depleted.

It is allowed to call any of these functions multiple times with any valid state, effectively restarting the Generator at an arbitrary point, as Generators are not expected to have side effects. In controlled circumstances a Generator may choose to be impure, but should be documented accordingly.

Here is a typical pattern for constructing a generator:

inline make-generator (container)
    Generator
        inline "start" ()
            # return the first iterator of sequence (might not be valid)
            'start container
        inline "valid?" (it...)
            # return true if the iterator is still valid
            'valid-iterator? container it...
        inline "at" (it...)
            # return variadic result at iterator
            '@ container it...
        inline "next" (it...)
            # return the next iterator in sequence
            'next container it...

The generator can then be subsequently used like this:

# this example prints up to two elements returned by a generator
# generate a new instance bound to container
let gen = (make-generator container)
# extract all methods
let start valid? at next = (gen)
# get the init state
let state... = (start)
# check if the state is valid
if (valid? state...)
    # container has at least one item; print it
    print (at state...)
    # advance to the next state
    let state... = (next state...)
    if (valid? state...)
        # container has one more item; print it
        print (at state...)
# we are done; no cleanup necessary
spice__call ( self )

Returns, in this order, the four functions start, valid?, init and next which are required to enumerate generator self.

inline__typecall ( cls start valid? at next )

Takes four functions start, valid?, at and next and returns a new generator ready for use.

typeImage

An opaque type.

spice__typecall ( ... )
compiledfntype ( ... )

An external function of type type<-(type Symbol i32 i32 i32 i32 Symbol Symbol).

typeNothing

A plain type of storage type {}.

inline__tobool ()
typeNullType

A plain type of storage type void.

spice__== ( ... )
spice__imply ( ... )
spice__r== ( ... )
inline__repr ( self )
typeOverloadedFunction

An opaque type.

spice__typecall ( ... )
spiceappend ( ... )
typeQualify

An opaque type.

typeRaises

An opaque type.

typeSampledImage

An opaque type.

spice__typecall ( ... )
compiledfntype ( ... )

An external function of type type<-(type).

typeSampler

An opaque type.

typeScope

A plain type of storage type _Scope.

compiledfn@ ( ... )

An external function of type Value<->Error(Scope Value).

spice__.. ( ... )
spice__== ( ... )
spice__as ( ... )
spice__getattr ( ... )
spice__hash ( ... )
spice__typecall ( ... )
spicebind ( ... )
inlinebind-symbols ( self values... )
compiledfnbind-with-docstring ( ... )

An external function of type Scope<-(Scope Value Value String).

spicedefine ( ... )
inlinedefine-symbols ( self values... )
inlinedeleted ( self )
compiledfndocstring ( ... )

An external function of type String<-(Scope Value).

inlinelineage ( self )
compiledfnlocal@ ( ... )

An external function of type Value<->Error(Scope Value).

compiledfnmodule-docstring ( ... )

An external function of type String<-(Scope).

compiledfnnext ( ... )

An external function of type λ(Value Value i32)<-(Scope i32).

compiledfnnext-deleted ( ... )

An external function of type λ(Value i32)<-(Scope i32).

compiledfnparent ( ... )

An external function of type Scope<-(Scope).

compiledfnreparent ( ... )

An external function of type Scope<-(Scope Scope).

compiledfnunbind ( ... )

An external function of type Scope<-(Scope Value).

compiledfnunparent ( ... )

An external function of type Scope<-(Scope).

typeSourceFile

A plain type of storage type _SourceFile.

typeSpiceMacro

A plain type of storage type Value.

spice__rimply ( ... )
typeSpiceMacroFunction

A plain type labeled Value<->Error(Value)<*> of supertype pointer and of storage type Value.

typeStruct

An opaque type.

spice__drop ( ... )
builtin__getattr ( ... )
spice__typecall ( ... )
typeSugarMacro

A plain type of storage type λ(List Scope).

spice__call ( ... )
typeSugarMacroFunction

A plain type labeled λ(List Scope)<->Error(List Scope)<*> of supertype pointer and of storage type λ(List Scope).

typeSymbol

A plain type of supertype immutable and of storage type u64.

spice__!= ( ... )
spice__== ( ... )
spice__as ( ... )
spice__call ( ... )
spice__hash ( ... )
inline__typecall ( cls str )
inlineunique ( cls name )
compiledfnvariadic? ( ... )

An external function of type bool<-(Symbol).

typeTypeArrayPointer

A plain type labeled type(*) of supertype pointer and of storage type type(*).

typeTypeInitializer

An opaque type.

inline__static-imply ( cls T )
typeUnknown

A plain type of storage type _type.

typeValue

A plain type of storage type {_Value Anchor}.

spice__== ( ... )
inline__as ( vT T )
compiledfn__repr ( ... )

An external function of type String<-(Value).

inline__rimply ( vT T )
spice__typecall ( ... )
compiledfnanchor ( ... )

An external function of type Anchor<-(Value).

compiledfnargcount ( ... )

An external function of type i32<-(Value).

inlinearglist-sink ( N )
inlineargs ( self )
compiledfnconstant? ( ... )

An external function of type bool<-(Value).

fndekey ( self )
inlinedump ( self )
compiledfngetarg ( ... )

An external function of type Value<-(Value i32).

compiledfngetarglist ( ... )

An external function of type Value<-(Value i32).

compiledfnkind ( ... )

An external function of type i32<-(Value).

compiledfnnone? ( ... )

A compiled function of type bool<-(Value).

compiledfnpure? ( ... )

An external function of type bool<-(Value).

compiledfnqualified-typeof ( ... )

An external function of type type<-(Value).

inlinereverse-args ( self )
compiledfnspice-repr ( ... )

An external function of type String<-(Value).

inlinetag ( self anchor )
compiledfntypeof ( ... )

An external function of type type<-(Value).

typeValueArrayPointer

A plain type labeled Value(*) of supertype pointer and of storage type Value(*).

typeVariadic

An opaque type labeled ....

typeaggregate

An opaque type.

spice__drop ( ... )
typearray

An opaque type of supertype aggregate.

inline__@ ( self index )
spice__as ( ... )
spice__countof ( ... )
spice__typecall ( ... )
spice__unpack ( ... )
inlinetype ( element-type size )
typebool

A plain type of supertype integer and of storage type bool.

typeconstant

An opaque type.

typef128

A plain type of supertype real and of storage type f128.

typef16

A plain type of supertype real and of storage type f16.

typef32

A plain type of supertype real and of storage type f32.

typef64

A plain type of supertype real and of storage type f64.

typef80

A plain type of supertype real and of storage type f80.

typefunction

An opaque type.

spice__typecall ( ... )
spicetype ( ... )
typehash

A plain type of storage type u64.

spice__!= ( ... )
spice__== ( ... )
spice__as ( ... )
inline__hash ( self )
spice__ras ( ... )
spice__typecall ( ... )
inlinefrom-bytes ( data size )
typei16

A plain type of supertype integer and of storage type i16.

typei32

A plain type of supertype integer and of storage type i32.

typei64

A plain type of supertype integer and of storage type i64.

typei8

A plain type of supertype integer and of storage type i8.

typeimmutable

An opaque type.

typeincomplete

An opaque type.

typeinteger

An opaque type of supertype immutable.

spice__!= ( ... )
spice__% ( ... )
spice__& ( ... )
spice__* ( ... )
spice__** ( ... )
spice__+ ( ... )
spice__- ( ... )
spice__/ ( ... )
spice__// ( ... )
spice__< ( ... )
spice__<< ( ... )
spice__<= ( ... )
spice__== ( ... )
spice__> ( ... )
spice__>= ( ... )
spice__>> ( ... )
spice__^ ( ... )
spice__as ( ... )
spice__hash ( ... )
spice__imply ( ... )
inline__neg ( self )
inline__rcp ( self )
spice__static-imply ( ... )
spice__tobool ( ... )
spice__typecall ( ... )
builtin__vector!= ( ... )
spice__vector% ( ... )
builtin__vector& ( ... )
builtin__vector* ( ... )
builtin__vector+ ( ... )
builtin__vector- ( ... )
spice__vector// ( ... )
spice__vector< ( ... )
builtin__vector<< ( ... )
spice__vector<= ( ... )
builtin__vector== ( ... )
spice__vector> ( ... )
spice__vector>= ( ... )
spice__vector>> ( ... )
builtin__vector^ ( ... )
builtin__vector| ( ... )
spice__| ( ... )
inline__~ ( self )
typeintptr

A plain type labeled u64 of supertype integer and of storage type u64.

typelist

A plain type labeled List of storage type _List.

compiledfn@ ( ... )

An external function of type Value<-(List).

spice__.. ( ... )
spice__== ( ... )
spice__as ( ... )
spice__countof ( ... )
inline__repr ( self )
spice__typecall ( ... )
spice__unpack ( ... )
inlinecons-sink ( self )
spicedecons ( ... )
compiledfndump ( ... )

An external function of type List<-(List).

compiledfnjoin ( ... )

An external function of type List<-(List List).

compiledfnnext ( ... )

An external function of type List<-(List).

compiledfnreverse ( ... )

An external function of type List<-(List).

fnrjoin ( lside rside )
fntoken-split ( expr token errmsg )
typenodefault

An opaque type.

typenoreturn

An opaque type.

typeopaquepointer

An opaque type.

typepackage

A symbol table of type Scope which holds configuration options and module contents. It is managed by the module import system.

package.path holds a list of all search paths in the form of simple string patterns. Changing it alters the way modules are searched for in the next run stage.

package.modules is another scope symbol table mapping full module paths to their contents. When a module is first imported, its contents are cached in this table. Subsequent imports of the same module will be resolved to these cached contents.

typepointer

An opaque type.

spice__== ( ... )
inline__@ ( self index )
spice__as ( ... )
spice__call ( ... )
inline__getattr ( self key )
spice__hash ( ... )
spice__imply ( ... )
inline__toref ( self )
spice__typecall ( ... )
inlinetype ( T )
typerawstring

A plain type labeled i8(*) of supertype pointer and of storage type i8(*).

typereal

An opaque type of supertype immutable.

spice__!= ( ... )
spice__% ( ... )
spice__* ( ... )
spice__** ( ... )
spice__+ ( ... )
spice__- ( ... )
spice__/ ( ... )
spice__// ( ... )
spice__< ( ... )
spice__<= ( ... )
spice__== ( ... )
spice__> ( ... )
spice__>= ( ... )
spice__as ( ... )
spice__hash ( ... )
spice__imply ( ... )
inline__neg ( self )
inline__rcp ( self )
inline__tobool ( self )
inline__typecall ( cls value )
builtin__vector!= ( ... )
builtin__vector% ( ... )
builtin__vector* ( ... )
builtin__vector** ( ... )
builtin__vector+ ( ... )
builtin__vector- ( ... )
builtin__vector/ ( ... )
builtin__vector< ( ... )
builtin__vector<= ( ... )
builtin__vector== ( ... )
builtin__vector> ( ... )
builtin__vector>= ( ... )
typestring

A plain type labeled String of supertype opaquepointer and of storage type _String.

spice__!= ( ... )
spice__.. ( ... )
spice__< ( ... )
spice__<= ( ... )
spice__== ( ... )
spice__> ( ... )
spice__>= ( ... )
fn__@ ( self i )
spice__as ( ... )
compiledfn__countof ( ... )

An external function of type usize<-(String).

inline__hash ( self )
spice__imply ( ... )
compiledfn__lslice ( ... )

An external function of type String<-(String usize).

spice__ras ( ... )
compiledfn__rslice ( ... )

An external function of type String<-(String usize).

compiledfnbuffer ( ... )

An external function of type λ(i8(*) usize)<-(String).

inlinecollector ( maxsize )
compiledfnjoin ( ... )

An external function of type String<-(String String).

compiledfnmatch? ( ... )

An external function of type λ(bool i32 i32)<->Error(String String).

inlinerange ( self start end )
typetuple

An opaque type of supertype aggregate.

builtin__@ ( ... )
spice__countof ( ... )
builtin__getattr ( ... )
spice__typecall ( ... )
spice__unpack ( ... )
spicepacked ( ... )
spicepacked-type ( ... )
spicetype ( ... )
typetype

A plain type of supertype opaquepointer and of storage type _type.

compiledfn@ ( ... )

An external function of type Value<->Error(type Symbol).

spice__!= ( ... )
spice__< ( ... )
spice__<= ( ... )
spice__== ( ... )
spice__> ( ... )
spice__>= ( ... )
compiledfn__@ ( ... )

An external function of type type<->Error(type i32).

spice__call ( ... )
spice__countof ( ... )
spice__getattr ( ... )
spice__hash ( ... )
spice__toptr ( ... )
inline__toref ( self )
compiledfnalignof ( ... )

An external function of type usize<->Error(type).

compiledfnbitcount ( ... )

An external function of type i32<-(type).

fnchange-element-type ( cls ET )
fnchange-storage-class ( cls storage-class )
spicedefine-symbol ( ... )
inlinedefine-symbols ( self values... )
spicedispatch-attr ( ... )
compiledfndocstring ( ... )

An external function of type String<-(type Symbol).

compiledfnelement-count ( ... )

An external function of type i32<->Error(type).

compiledfnelement@ ( ... )

An external function of type type<->Error(type i32).

inlineelements ( self )
fnfunction-pointer? ( cls )
fnfunction? ( cls )
fnimmutable ( cls )
inlinekey-type ( self key )
compiledfnkeyof ( ... )

An external function of type λ(Symbol type)<-(type).

compiledfnkind ( ... )

An external function of type i32<-(type).

compiledfnlocal@ ( ... )

An external function of type Value<->Error(type Symbol).

fnmutable ( cls )
fnmutable& ( cls )
compiledfnoffsetof ( ... )

An external function of type usize<->Error(type i32).

compiledfnopaque? ( ... )

An external function of type bool<-(type).

compiledfnplain? ( ... )

An external function of type bool<-(type).

fnpointer->refer-type ( cls )
fnpointer-storage-class ( cls )
fnpointer? ( cls )
spiceraises ( ... )
fnreadable? ( cls )
fnrefer->pointer-type ( cls )
compiledfnrefer? ( ... )

An external function of type bool<-(type).

compiledfnreturn-type ( ... )

An external function of type λ(type type)<-(type).

compiledfnset-docstring ( ... )

An external function of type void<-(type Symbol String).

inlineset-opaque ( type )
inlineset-plain-storage ( type storage-type )
inlineset-storage ( type storage-type )
spiceset-symbol ( ... )
inlineset-symbols ( self values... )
compiledfnsigned? ( ... )

An external function of type bool<-(type).

compiledfnsizeof ( ... )

An external function of type usize<->Error(type).

compiledfnstorageof ( ... )

An external function of type type<->Error(type).

compiledfnstring ( ... )

An external function of type String<-(type).

fnstrip-pointer-storage-class ( cls )
compiledfnstrip-qualifiers ( ... )

An external function of type type<-(type).

compiledfnsuperof ( ... )

An external function of type type<-(type).

inlinesymbols ( self )
compiledfnunique-type ( ... )

An external function of type type<-(type i32).

compiledfnvariadic? ( ... )

An external function of type bool<-(type).

inlineview-type ( self id )
fnwritable? ( cls )
typetypename

An opaque type.

spice__!= ( ... )
spice__= ( ... )
spice__methodcall ( ... )
spice__toptr ( ... )
spice__typecall ( ... )
compiledfntype ( ... )

An external function of type type<->Error(String type).

typeu16

A plain type of supertype integer and of storage type u16.

typeu32

A plain type of supertype integer and of storage type u32.

typeu64

A plain type of supertype integer and of storage type u64.

typeu8

A plain type of supertype integer and of storage type u8.

typeunion

An opaque type.

typeusize

A plain type of supertype integer and of storage type u64.

typevector

An opaque type of supertype immutable.

spice__!= ( ... )
spice__% ( ... )
spice__& ( ... )
spice__* ( ... )
spice__** ( ... )
spice__+ ( ... )
spice__- ( ... )
spice__/ ( ... )
spice__// ( ... )
spice__< ( ... )
spice__<< ( ... )
spice__<= ( ... )
spice__== ( ... )
spice__> ( ... )
spice__>= ( ... )
spice__>> ( ... )
inline__@ ( self index )
spice__^ ( ... )
spice__countof ( ... )
spice__lslice ( ... )
spice__rslice ( ... )
spice__typecall ( ... )
spice__unpack ( ... )
spice__| ( ... )
spicesmear ( ... )
inlinetype ( element-type size )
typevoid

An opaque type of supertype Arguments.

typevoidstar

A plain type labeled void<*> of supertype pointer and of storage type void.

inline%= ( lhs rhs )
inline&= ( lhs rhs )
inline*= ( lhs rhs )
inline+= ( lhs rhs )
inline-= ( lhs rhs )
inline..= ( lhs rhs )
inline//= ( lhs rhs )
inline/= ( lhs rhs )
inline<<= ( lhs rhs )
inline>>= ( lhs rhs )
inline^= ( lhs rhs )
inline|= ( lhs rhs )
fnValue-none? ( value )
inlineaggregate-type-constructor ( start f )
fnall? ( v )
fnany? ( v )
fnas-converter ( vT T static? )
fnautoboxer ( T x )
inlinebalanced-binary-op-dispatch ( symbol rsymbol friendly-op-name )
fnbalanced-binary-operation ( args symbol rsymbol friendly-op-name )
fnbalanced-binary-operator ( symbol rsymbol lhsT rhsT lhs-static? rhs-static? )

for an operation performed on two argument types, of which either type can provide a suitable candidate, return a matching operator. This function only works inside a spice macro.

inlinebalanced-lvalue-binary-op-dispatch ( symbol friendly-op-name )
fnbalanced-lvalue-binary-operation ( args symbol friendly-op-name )
fnbalanced-lvalue-binary-operator ( symbol lhsT rhsT rhs-static? )

for an operation performed on two argument types, of which only the left type type can provide a suitable candidate, return a matching operator. This function only works inside a spice macro.

fnbin ( value )
fnbinary-op-error ( friendly-op-name lhsT rhsT )
fnbinary-operator ( symbol lhsT rhsT )

for an operation performed on two argument types, of which only the left type can provide a suitable candidate, find a matching operator function. This function only works inside a spice macro.

fnbinary-operator-r ( rsymbol lhsT rhsT )

for an operation performed on two argument types, of which only the right type can provide a suitable candidate, find a matching operator function. This function only works inside a spice macro.

fnbox-integer ( value )
fnbox-pointer ( value )
inlinebox-spice-macro ( l )
fnbox-symbol ( value )
fnbuild-typify-function ( f )
fncast-converter ( symbol rsymbol vT T )

for two given types, find a matching conversion function this function only works inside a spice macro

inlinecast-error ( intro-string vT T )
fncheck-count ( count mincount maxcount )
inlineclamp ( x mn mx )
fnclone-scope-contents ( a b )

Join two scopes a and b into a new scope so that the root of a descends from b.

fncompare-type ( args f )
inlineconvert-assert-args ( args cond msg )
fndec ( value )
inlinedefer-type ( ... )
fndispatch-and-or ( args flip )
fndots-to-slashes ( pattern )
fndotted-symbol? ( env head )
inlineempty? ( value )
inlineenumerate ( x )
fnerror ( msg )
fnerror@ ( anchor traceback-msg error-msg )
usage example::
error@ (‘anchor value) “while checking parameter” “error in value”
fnerror@+ ( error anchor traceback-msg )
usage example::
except (err)
error@+ err (‘anchor value) “while processing stream”
fnexec-module ( expr eval-scope )
fnexpand-and-or ( expr f )
fnexpand-apply ( expr )
fnexpand-define ( expr )
fnexpand-define-infix ( args scope order )
fnexpand-infix-let ( expr )
inlineextern-new ( name T attrs... )
fnextract-integer ( value )
fnextract-name-params-body ( expr )
fnextract-single-arg ( args )
fnextract-single-type-arg ( args )
inlinefloordiv ( a b )
inlinefunction->SpiceMacro ( f )
inlinegen-allocator-sugar ( name copyf newf )
inlinegen-cast-op ( f str )
inlinegen-cast? ( converterf )
inlinegen-match-block-parser ( handle-case )
fngen-match-matcher ( failfunc expr scope cond )

features: <constant> -> (input == <constant>) (or <expr_a> <expr_b>) -> (or <expr_a> <expr_b>)

TODO: (: x T) -> ((typeof input) == T), let x = input <unknown symbol> -> unpack as symbol

fngen-or-matcher ( failfunc expr scope params )
fngen-sugar-matcher ( failfunc expr scope params )
fngen-vector-reduction ( f v sz )
fnget-ifx-op ( env op )
fnget-ifx-symbol ( name )
fnhas-infix-ops? ( infix-table expr )
fnhex ( value )
fnimply-converter ( vT T static? )
inlineinfix-op ( pred )
fninfix-op-ge ( infix-table token prec )
fninfix-op-gt ( infix-table token prec )
fninteger->string ( value base )
fninteger-as ( vT T )
fninteger-imply ( vT T )
fninteger-static-imply ( vT T )
fninteger-tobool ( args )
fnload-module ( module-name module-path opts... )
fnltr-multiop ( args target mincount )
inlinemake-const-type-property-function ( func )
inlinemake-const-value-property-function ( func )
inlinemake-expand-and-or ( f )
inlinemake-expand-define-infix ( order )
inlinemake-inplace-let-op ( op )
inlinemake-inplace-op ( op )
fnmake-module-path ( pattern name )
inlinemake-unpack-function ( extractf )
inlinememo ( f )
inlinememoize ( f )
fnmerge-scope-symbols ( source target filter )
fnnext-head? ( next )
fnnodefault? ( x )
fnoct ( value )
fnoperator-valid? ( value )
fnpatterns-from-namestr ( base-dir namestr )
fnpointer-as ( vT T )
fnpointer-imply ( vT T )
fnpointer-type-imply? ( src dest )
fnpowi ( base exponent )
inlineprint ( values... )
fnptrcmp!= ( t1 t2 )
fnptrcmp== ( t1 t2 )
inlinequasiquote-any ( x )
fnquasiquote-list ( x )
inlinerange ( a b c )
fnreal-as ( vT T )
fnreal-imply ( vT T )
fnrequire-from ( base-dir name )
inlinerrange ( a b c )

same as range, but iterates range in reverse; arguments are passed in the same format, so rrange can act as a drop-in replacement for range.

fnrtl-infix-op-eq ( infix-table token prec )
fnrtl-multiop ( args target mincount )
inlineruntime-aggregate-type-constructor ( f )
inlinesafe-integer-cast ( self T )
fnsc_argument_list_join ( a b )
fnsc_argument_list_join_values ( a b... )
inlinesc_argument_list_map_filter_new ( maxN mapf )
inlinesc_argument_list_map_new ( N mapf )
inlineselect-op-macro ( sop uop fop numargs )
inlinesigned-vector-binary-op ( sf uf )
inlinesimple-binary-op ( f )

for cases where the type only interacts with itself

inlinesimple-folding-autotype-binary-op ( f unboxer )
inlinesimple-folding-autotype-signed-binary-op ( sf uf unboxer )
inlinesimple-folding-binary-op ( f unboxer boxer )
inlinesimple-folding-signed-binary-op ( sf uf unboxer boxer )
inlinesimple-signed-binary-op ( sf uf )
inlineslice ( value start end )
inlinespice-binary-op-macro ( f )

to be used for binary operators of which either type can provide an operation. returns a callable operator (f lhs rhs) that performs the operation or no arguments if the operation can not be performed.

inlinespice-cast-macro ( f )

to be used for __as, __ras, __imply and __rimply returns a callable converter (f value) that performs the cast or no arguments if the cast can not be performed.

inlinespice-converter-macro ( f )

to be used for converter that need to do additional dispatch, e.g. do something else when the value is a constant returns a quote that performs the cast (f value T)

inlinespice-macro ( l )
fnsplit-dotted-symbol ( name )
fnstring@ ( self i )
inlinesugar-block-scope-macro ( f )
inlinesugar-macro ( f )
inlinesugar-scope-macro ( f )
fnswap ( a b )

safely exchanges the contents of two references

inlinetype-comparison-func ( f )
inlinetype-factory ( f )
inlinetypeinit ( ... )
inlineunary-op-dispatch ( symbol friendly-op-name )
fnunary-op-error ( friendly-op-name T )
fnunary-operation ( args symbol friendly-op-name )
fnunary-operator ( symbol T )

for an operation performed on one variable argument type, find a matching operator function. This function only works inside a spice macro.

inlineunary-or-balanced-binary-op-dispatch ( usymbol ufriendly-op-name symbol rsymbol friendly-op-name )
fnunary-or-balanced-binary-operation ( args usymbol ufriendly-op-name symbol rsymbol friendly-op-name )
inlineunary-or-unbalanced-binary-op-dispatch ( usymbol ufriendly-op-name symbol rtype friendly-op-name )
fnunary-or-unbalanced-binary-operation ( args usymbol ufriendly-op-name symbol rtype friendly-op-name )
inlineunbalanced-binary-op-dispatch ( symbol rtype friendly-op-name )
fnunbalanced-binary-operation ( args symbol rtype friendly-op-name )
inlineunbox ( value T )
inlineunbox-integer ( value T )
inlineunbox-pointer ( value T )
inlineunbox-symbol ( value T )
fnunbox-verify ( value wantT )
fnuncomma ( l )

uncomma list l, wrapping all comma separated symbols as new lists example:

(uncomma '(a , b c d , e f , g h)) -> '(a (b c d) (e f) (g h))
fnunpack-infix-op ( op )
fnunpack2 ( args )
inlineva-join ( a... )
fnvalue-as ( vT T expr )
inlinevector-binary-op-dispatch ( symbol )
fnvector-binary-operator ( symbol lhsT rhsT )
fnverify-count ( count mincount maxcount )
sugar(. ... )
sugar(:: ... )
sugar(:= ... )
sugar(<- ... )
sugar(@@ ... )
sugar(and ... )
sugar(as:= ... )
sugar(assert ... )
sugar(bind ... )
sugar(chain-typed-symbol-handler ... )
sugar(decorate-fn ... )
sugar(decorate-inline ... )
sugar(decorate-let ... )
sugar(decorate-struct ... )
sugar(decorate-typedef ... )
sugar(decorate-vvv ... )
sugar(define ... )
sugar(define-infix< ... )
sugar(define-infix> ... )
sugar(define-sugar-block-scope-macro ... )
sugar(define-sugar-macro ... )
sugar(define-sugar-scope-macro ... )
sugar(fn... ... )
sugar(fold ( state ... = init... ) for name ... in gen body... )

This is a combination of the loop and for forms. It enumerates all elements in collection or sequence gen, unpacking each element and binding its arguments to the names defined by name ..., while the loop state state ... is initialized from init....

Similar to loop, the body expression must return the next state of the loop. The state of gen is transparently maintained and does not have to be managed.

Unlike for, fold requires both calls to break and continue to pass a state compatible with state .... Otherwise they serve the same function.

Usage example:

# add numbers from 0 to 9, skipping number 5, and print the result
print
    fold (sum = 0) for i in (range 100)
        if (i == 10)
            # abort the loop
            break sum
        if (i == 5)
            # skip this index
            continue sum
        # continue with the next state for sum
        sum + i
sugar(fold-locals ... )
sugar(for name ... in gen body... )

Defines a loop that enumerates all elements in collection or sequence gen, unpacking each element and binding its arguments to the names defined by name ....

gen must either be of type Generator or provide a cast to Generator.

Within the loop body, special forms break and continue can be used to abort the loop early or skip ahead to the next element. The loop will always evaluate to no arguments.

For a loop form that permits you to maintain additional state and break with a value, see fold.

Usage example:

# print numbers from 0 to 9, skipping number 5
for i in (range 100)
    if (i == 10)
        # abort the loop
        break;
    if (i == 5)
        # skip this index
        continue;
    print i
sugar(from ... )
sugar(global ... )
sugar(import ... )
sugar(include ... )
sugar(inline... ... )
sugar(local ... )
sugar(locals ... )

Export locals as a chain of up to two new scopes: a scope that contains all the constant values in the immediate scope, and a scope that contains the runtime values. If all values in the scope are constant, then the resulting scope will also be constant.

sugar(match ... )
sugar(or ... )
sugar(qq ... )
sugar(spice ... )
sugar(static-assert ... )
sugar(static-if ... )
sugar(static-match ... )
sugar(sugar ... )
sugar(sugar-eval ... )
sugar(sugar-if ... )
sugar(sugar-match ... )
sugar(sugar-set-scope! ... )
sugar(typedef ... )

a type declaration syntax; when the name is a string, the type is declared at runtime.

sugar(typedef+ ... )
sugar(unlet ... )
sugar(using ... )
sugar(va-option ... )
sugar(vvv ... )
sugar(while ... )
builtin? ( ... )
builtin_ ( ... )
builtinImage-query-levels ( ... )
builtinImage-query-lod ( ... )
builtinImage-query-samples ( ... )
builtinImage-query-size ( ... )
builtinImage-read ( ... )
builtinImage-texel-pointer ( ... )
builtinImage-write ( ... )
builtinacos ( ... )
builtinacosh ( ... )
builtinadd ( ... )
builtinadd-nsw ( ... )
builtinadd-nuw ( ... )
builtinalloca ( ... )
builtinalloca-array ( ... )
builtinashr ( ... )
builtinasin ( ... )
builtinasinh ( ... )
builtinassign ( ... )
builtinatan ( ... )
builtinatan2 ( ... )
builtinatanh ( ... )
builtinatomic ( ... )
builtinatomicrmw ( ... )
builtinband ( ... )
builtinbitcast ( ... )
builtinbnand ( ... )
builtinbor ( ... )
builtinbranch ( ... )
builtinbreak ( ... )
builtinbxor ( ... )
builtincall ( ... )
builtinceil ( ... )
builtincmpxchg ( ... )
builtincopy ( ... )
builtincos ( ... )
builtincosh ( ... )
builtincross ( ... )
builtindegrees ( ... )
builtinderef ( ... )
builtindiscard ( ... )
builtindistance ( ... )
builtindo ( ... )
builtindropped? ( ... )
builtindump ( ... )
builtindump-debug ( ... )
builtindump-spice ( ... )
builtindump-template ( ... )
builtindump-uniques ( ... )
builtindupe ( ... )
builtinembed ( ... )
builtinexp ( ... )
builtinexp2 ( ... )
builtinextractelement ( ... )
builtinextractvalue ( ... )
builtinfabs ( ... )
builtinfadd ( ... )
builtinfcmp!=o ( ... )
builtinfcmp!=u ( ... )
builtinfcmp-ord ( ... )
builtinfcmp-uno ( ... )
builtinfcmp<=o ( ... )
builtinfcmp<=u ( ... )
builtinfcmp<o ( ... )
builtinfcmp<u ( ... )
builtinfcmp==o ( ... )
builtinfcmp==u ( ... )
builtinfcmp>=o ( ... )
builtinfcmp>=u ( ... )
builtinfcmp>o ( ... )
builtinfcmp>u ( ... )
builtinfdiv ( ... )
builtinfloor ( ... )
builtinfma ( ... )
builtinfmix ( ... )
builtinfmul ( ... )
builtinfn ( ... )
builtinfpext ( ... )
builtinfptosi ( ... )
builtinfptoui ( ... )
builtinfptrunc ( ... )
builtinfract ( ... )
builtinfree ( ... )
builtinfrem ( ... )
builtinfrexp ( ... )
builtinfsign ( ... )
builtinfsub ( ... )
builtingetelementptr ( ... )
builtingetelementref ( ... )
builtinhide-traceback ( ... )
builtinicmp!= ( ... )
builtinicmp<=s ( ... )
builtinicmp<=u ( ... )
builtinicmp<s ( ... )
builtinicmp<u ( ... )
builtinicmp== ( ... )
builtinicmp>=s ( ... )
builtinicmp>=u ( ... )
builtinicmp>s ( ... )
builtinicmp>u ( ... )
builtinif ( ... )
builtinindirect-let ( ... )
builtininline ( ... )
builtininsertelement ( ... )
builtininsertvalue ( ... )
builtininttoptr ( ... )
builtininversesqrt ( ... )
builtinitrunc ( ... )
builtinlabel ( ... )
builtinldexp ( ... )
builtinlength ( ... )
builtinlet ( ... )
builtinload ( ... )
builtinlog ( ... )
builtinlog2 ( ... )
builtinloop ( ... )
builtinlose ( ... )
builtinlshr ( ... )
builtinmalloc ( ... )
builtinmalloc-array ( ... )
builtinmerge ( ... )
builtinmove ( ... )
builtinmul ( ... )
builtinmul-nsw ( ... )
builtinmul-nuw ( ... )
builtinnormalize ( ... )
builtinnullof ( ... )
builtinpowf ( ... )
builtinptrtoint ( ... )
builtinptrtoref ( ... )
builtinradians ( ... )
builtinraise ( ... )
builtinraising ( ... )
builtinrawcall ( ... )
builtinreftoptr ( ... )
builtinrepeat ( ... )
builtinreturn ( ... )
builtinreturning ( ... )
builtinround ( ... )
builtinroundeven ( ... )
builtinrun-stage ( ... )
builtinsample ( ... )
builtinsdiv ( ... )
builtinset-execution-mode ( ... )
builtinsext ( ... )
builtinshl ( ... )
builtinshufflevector ( ... )
builtinsin ( ... )
builtinsinh ( ... )
builtinsitofp ( ... )
builtinsmax ( ... )
builtinsmin ( ... )
builtinsmoothstep ( ... )
builtinspice-quote ( ... )
builtinspice-unquote ( ... )
builtinspice-unquote-arguments ( ... )
builtinsqrt ( ... )
builtinsquare-list ( ... )
builtinsrem ( ... )
builtinssign ( ... )
builtinstep ( ... )
builtinstore ( ... )
builtinsub ( ... )
builtinsub-nsw ( ... )
builtinsub-nuw ( ... )
builtinsugar-log ( ... )
builtinsugar-quote ( ... )
builtinswapvalue ( ... )
builtinswitch ( ... )
builtintan ( ... )
builtintanh ( ... )
builtintrunc ( ... )
builtintry ( ... )
builtintypeof ( ... )
builtinudiv ( ... )
builtinuitofp ( ... )
builtinumax ( ... )
builtinumin ( ... )
builtinundef ( ... )
builtinunique-visible? ( ... )
builtinunreachable ( ... )
builtinurem ( ... )
builtinva-countof ( ... )
builtinview ( ... )
builtinviewing ( ... )
builtinvolatile ( ... )
builtinvolatile-load ( ... )
builtinvolatile-store ( ... )
builtinxchg ( ... )
builtinzext ( ... )
spice% ( ... )
spice& ( ... )
spice* ( ... )
spice+ ( ... )
spice- ( ... )
spice/ ( ... )
spice< ( ... )
spice= ( ... )
spice> ( ... )
spice@ ( ... )
spice^ ( ... )
spice| ( ... )
spice~ ( ... )
spice!= ( ... )
spice&? ( value )

Returns true if value is a reference, otherwise false.

spice** ( ... )
spice.. ( ... )
spice// ( ... )
spice<< ( ... )
spice<= ( ... )
spice== ( ... )
spice>= ( ... )
spice>> ( ... )
spice_static-compile ( ... )
spice_static-compile-glsl ( ... )
spice_static-compile-spirv ( ... )
spiceClosure->Collector ( ... )
spiceClosure->Generator ( ... )
spiceabs ( ... )
spicealignof ( ... )
spiceand-branch ( ... )

The type of the null constant. This type is uninstantiable.

spiceappend-to-scope ( ... )
spiceappend-to-type ( ... )
spiceargumentsof ( ... )
spicearrayof ( ... )
spiceas ( ... )
spiceas? ( ... )
spicebindingof ( ... )
spicebitcountof ( ... )
spicecoerce-call-arguments ( ... )
spicecons ( ... )
spiceconst.add.i32.i32 ( ... )
spiceconst.icmp<=.i32.i32 ( ... )
spiceconstant? ( ... )
spicecountof ( ... )
spicedecons ( ... )
spicedefer ( ... )
spicedrop ( ... )
spiceelementof ( ... )
spiceelementsof ( ... )
spiceextern ( ... )
spiceforward-repr ( ... )
spicegen-union-extractvalue ( ... )
spicegetattr ( ... )
spicehash-storage ( ... )
spicehash1 ( ... )
spiceimply ( ... )
spiceimply? ( ... )
spiceinteger->integer ( ... )
spiceinteger->real ( ... )
spicekey ( ... )
spicekeyof ( ... )
spicelist-constructor ( ... )
spicelocationof ( ... )
spicelslice ( ... )
spicemax ( ... )
spicememocall ( ... )
spicemin ( ... )
spicemutable ( ... )
spicenone? ( ... )
spicenot ( ... )
spiceoffsetof ( ... )
spiceopaque ( ... )
spiceor-branch ( ... )
spiceoverloaded-fn-append ( ... )
spicepackedtupleof ( ... )
spiceparse-compile-flags ( ... )
spicepow ( ... )
spiceprivate ( ... )
spiceprotect ( ... )
spicequalifiersof ( ... )
spiceraises ( ... )
spicereal->integer ( ... )
spicereal->real ( ... )
spicereport ( ... )
spicerepr ( ... )
spicereturnof ( ... )
spicerslice ( ... )
spicesabs ( ... )
spicesafe-shl ( ... )
spicesign ( ... )
spicesigned? ( ... )
spicesizeof ( ... )
spicestatic-branch ( ... )
spicestatic-error ( ... )
spicestatic-integer->integer ( ... )
spicestatic-integer->real ( ... )
spicestatic-typify ( ... )
spicestoragecast ( ... )
spicestorageof ( ... )
spicesuperof ( ... )
spicetostring ( ... )
spicetupleof ( ... )
spicetype!= ( ... )
spicetype< ( ... )
spicetype<= ( ... )
spicetype== ( ... )
spicetype> ( ... )
spicetype>= ( ... )
spicetypify ( ... )
spiceunion-storage-type ( ... )
spiceunion-storageof ( ... )
spiceuniqueof ( ... )
spiceunpack ( ... )
spiceunqualified ( ... )
spiceva-append-va ( ... )

(va-append-va (inline () (_ b …)) a…) -> a… b…

spiceva-empty? ( ... )
spiceva-lfold ( ... )
spiceva-lifold ( ... )
spiceva-map ( f ... )

Filter each argument in ... through f and return the resulting list of arguments. Arguments where f returns void are filtered from the result.

spiceva-option-branch ( ... )
spiceva-range ( a [ b ])

If b is not specified, returns a sequence of integers from zero to b, otherwise a sequence of integers from a to b.

spiceva-rfold ( ... )
spiceva-rifold ( ... )
spiceva-split ( ... )

(va-split n a…) -> (inline () a…[n .. (va-countof a…)-1]) a…[0 .. n-1]

spiceva-unnamed ( ... )

filter all keyed values

spiceva@ ( ... )
spicevector-reduce ( ... )
spicevectorof ( ... )
spiceviewof ( ... )
spicewrap-if-not-run-stage ( ... )
spicezip ( ... )
compiledfncompiler-version ( ... )

An external function of type λ(i32 i32 i32)<-().

compiledfndefault-styler ( ... )

An external function of type String<-(Symbol String).

compiledfnexit ( ... )

An external function of type noreturn<-(i32).

compiledfnfunction->SugarMacro ( ... )

A compiled function of type SugarMacro<-(λ(List Scope)<->Error(List Scope)<*>).

compiledfnglobals ( ... )

An external function of type Scope<-().

compiledfnio-write! ( ... )

An external function of type void<-(String).

compiledfnlaunch-args ( ... )

An external function of type λ(i32 i8(*)(*))<-().

compiledfnlist-handler ( ... )

A compiled function of type λ(List Scope)<->Error(List Scope).

compiledfnlist-load ( ... )

An external function of type Value<->Error(String).

compiledfnlist-parse ( ... )

An external function of type Value<->Error(String).

compiledfnload-library ( ... )

An external function of type void<->Error(String).

compiledfnload-object ( ... )

An external function of type void<->Error(String).

compiledfnparse-infix-expr ( ... )

A compiled function of type λ(Value List)<->Error(Scope Value List i32).

compiledfnrealpath ( ... )

An external function of type String<-(String).

compiledfnsc_abort ( ... )

An external function of type noreturn<-().

compiledfnsc_anchor_column ( ... )

An external function of type i32<-(Anchor).

compiledfnsc_anchor_lineno ( ... )

An external function of type i32<-(Anchor).

compiledfnsc_anchor_offset ( ... )

An external function of type Anchor<-(Anchor i32).

compiledfnsc_anchor_path ( ... )

An external function of type Symbol<-(Anchor).

compiledfnsc_argcount ( ... )

An external function of type i32<-(Value).

compiledfnsc_argument_list_new ( ... )

An external function of type Value<-(i32 Value(*)).

compiledfnsc_arguments_type ( ... )

An external function of type type<-(i32 type(*)).

compiledfnsc_arguments_type_argcount ( ... )

An external function of type i32<-(type).

compiledfnsc_arguments_type_getarg ( ... )

An external function of type type<-(type i32).

compiledfnsc_arguments_type_join ( ... )

An external function of type type<-(type type).

compiledfnsc_array_type ( ... )

An external function of type type<->Error(type usize).

compiledfnsc_basename ( ... )

An external function of type String<-(String).

compiledfnsc_cache_misses ( ... )

An external function of type i32<-().

compiledfnsc_call_append_argument ( ... )

An external function of type void<-(Value Value).

compiledfnsc_call_is_rawcall ( ... )

An external function of type bool<-(Value).

compiledfnsc_call_new ( ... )

An external function of type Value<-(Value).

compiledfnsc_call_set_rawcall ( ... )

An external function of type void<-(Value bool).

compiledfnsc_closure_get_context ( ... )

An external function of type Value<-(Closure).

compiledfnsc_closure_get_docstring ( ... )

An external function of type String<-(Closure).

compiledfnsc_closure_get_template ( ... )

An external function of type Value<-(Closure).

compiledfnsc_compile ( ... )

An external function of type Value<->Error(Value u64).

compiledfnsc_compile_glsl ( ... )

An external function of type String<->Error(i32 Symbol Value u64).

compiledfnsc_compile_object ( ... )

An external function of type void<->Error(String i32 String Scope u64).

compiledfnsc_compile_spirv ( ... )

An external function of type String<->Error(Symbol Value u64).

compiledfnsc_compiler_version ( ... )

An external function of type λ(i32 i32 i32)<-().

compiledfnsc_const_aggregate_new ( ... )

An external function of type Value<-(type i32 Value(*)).

compiledfnsc_const_extract_at ( ... )

An external function of type Value<-(Value i32).

compiledfnsc_const_int_extract ( ... )

An external function of type u64<-(Value).

compiledfnsc_const_int_extract_word ( ... )

An external function of type u64<-(Value i32).

compiledfnsc_const_int_new ( ... )

An external function of type Value<-(type u64).

compiledfnsc_const_int_words_new ( ... )

An external function of type Value<-(type i32 u64(*)).

compiledfnsc_const_null_new ( ... )

An external function of type Value<->Error(type).

compiledfnsc_const_pointer_extract ( ... )

An external function of type void<*><-(Value).

compiledfnsc_const_pointer_new ( ... )

An external function of type Value<-(type void<*>).

compiledfnsc_const_real_extract ( ... )

An external function of type f64<-(Value).

compiledfnsc_const_real_new ( ... )

An external function of type Value<-(type f64).

compiledfnsc_default_styler ( ... )

An external function of type String<-(Symbol String).

compiledfnsc_default_target_triple ( ... )

An external function of type String<-().

compiledfnsc_dirname ( ... )

An external function of type String<-(String).

compiledfnsc_dump_error ( ... )

An external function of type void<-(Error).

compiledfnsc_empty_argument_list ( ... )

An external function of type Value<-().

compiledfnsc_enter_solver_cli ( ... )

An external function of type void<-().

compiledfnsc_error_append_calltrace ( ... )

An external function of type void<-(Error Value).

compiledfnsc_error_new ( ... )

An external function of type Error<-(String).

compiledfnsc_eval ( ... )

An external function of type Value<->Error(Anchor List Scope).

compiledfnsc_eval_inline ( ... )

An external function of type Anchor<->Error(Value List Scope).

compiledfnsc_eval_stage ( ... )

An external function of type Value<->Error(Anchor List Scope).

compiledfnsc_exit ( ... )

An external function of type noreturn<-(i32).

compiledfnsc_expand ( ... )

An external function of type λ(Value List Scope)<->Error(Value List Scope).

compiledfnsc_expression_append ( ... )

An external function of type void<-(Value Value).

compiledfnsc_expression_new ( ... )

An external function of type Value<-().

compiledfnsc_expression_set_scoped ( ... )

An external function of type void<-(Value).

compiledfnsc_extract_argument_list_new ( ... )

An external function of type Value<-(Value i32).

compiledfnsc_extract_argument_new ( ... )

An external function of type Value<-(Value i32).

compiledfnsc_format_error ( ... )

An external function of type String<-(Error).

compiledfnsc_format_message ( ... )

An external function of type String<-(Anchor String).

compiledfnsc_function_type ( ... )

An external function of type type<-(type i32 type(*)).

compiledfnsc_function_type_is_variadic ( ... )

An external function of type bool<-(type).

compiledfnsc_function_type_raising ( ... )

An external function of type type<-(type type).

compiledfnsc_function_type_return_type ( ... )

An external function of type λ(type type)<-(type).

compiledfnsc_get_globals ( ... )

An external function of type Scope<-().

compiledfnsc_get_original_globals ( ... )

An external function of type Scope<-().

compiledfnsc_getarg ( ... )

An external function of type Value<-(Value i32).

compiledfnsc_getarglist ( ... )

An external function of type Value<-(Value i32).

compiledfnsc_global_binding ( ... )

An external function of type i32<->Error(Value).

compiledfnsc_global_descriptor_set ( ... )

An external function of type i32<->Error(Value).

compiledfnsc_global_location ( ... )

An external function of type i32<->Error(Value).

compiledfnsc_global_new ( ... )

An external function of type Value<-(Symbol type u32 Symbol).

compiledfnsc_global_set_binding ( ... )

An external function of type void<->Error(Value i32).

compiledfnsc_global_set_constructor ( ... )

An external function of type void<->Error(Value Value).

compiledfnsc_global_set_descriptor_set ( ... )

An external function of type void<->Error(Value i32).

compiledfnsc_global_set_initializer ( ... )

An external function of type void<->Error(Value Value).

compiledfnsc_global_set_location ( ... )

An external function of type void<->Error(Value i32).

compiledfnsc_global_storage_class ( ... )

An external function of type Symbol<->Error(Value).

compiledfnsc_hash ( ... )

An external function of type u64<-(u64 usize).

compiledfnsc_hash2x64 ( ... )

An external function of type u64<-(u64 u64).

compiledfnsc_hashbytes ( ... )

An external function of type u64<-(i8(*) usize).

compiledfnsc_identity ( ... )

An external function of type Value<-(Value).

compiledfnsc_if_append_else_clause ( ... )

An external function of type void<-(Value Value).

compiledfnsc_if_append_then_clause ( ... )

An external function of type void<-(Value Value Value).

compiledfnsc_if_new ( ... )

An external function of type Value<-().

compiledfnsc_image_type ( ... )

An external function of type type<-(type Symbol i32 i32 i32 i32 Symbol Symbol).

compiledfnsc_import_c ( ... )

An external function of type Scope<->Error(String String List Scope).

compiledfnsc_integer_type ( ... )

An external function of type type<-(i32 bool).

compiledfnsc_integer_type_is_signed ( ... )

An external function of type bool<-(type).

compiledfnsc_is_directory ( ... )

An external function of type bool<-(String).

compiledfnsc_is_file ( ... )

An external function of type bool<-(String).

compiledfnsc_key_type ( ... )

An external function of type type<-(Symbol type).

compiledfnsc_keyed_new ( ... )

An external function of type Value<-(Symbol Value).

compiledfnsc_label_new ( ... )

An external function of type Value<-(i32 Symbol).

compiledfnsc_label_set_body ( ... )

An external function of type void<-(Value Value).

compiledfnsc_launch_args ( ... )

An external function of type λ(i32 i8(*)(*))<-().

compiledfnsc_list_at ( ... )

An external function of type Value<-(List).

compiledfnsc_list_compare ( ... )

An external function of type bool<-(List List).

compiledfnsc_list_cons ( ... )

An external function of type List<-(Value List).

compiledfnsc_list_count ( ... )

An external function of type i32<-(List).

compiledfnsc_list_decons ( ... )

An external function of type λ(Value List)<-(List).

compiledfnsc_list_dump ( ... )

An external function of type List<-(List).

compiledfnsc_list_join ( ... )

An external function of type List<-(List List).

compiledfnsc_list_next ( ... )

An external function of type List<-(List).

compiledfnsc_list_repr ( ... )

An external function of type String<-(List).

compiledfnsc_list_reverse ( ... )

An external function of type List<-(List).

compiledfnsc_list_serialize ( ... )

An external function of type String<-(List).

compiledfnsc_load_history ( ... )

An external function of type void<-(String).

compiledfnsc_load_library ( ... )

An external function of type void<->Error(String).

compiledfnsc_load_object ( ... )

An external function of type void<->Error(String).

compiledfnsc_loop_arguments ( ... )

An external function of type Value<-(Value).

compiledfnsc_loop_new ( ... )

An external function of type Value<-(Value).

compiledfnsc_loop_set_body ( ... )

An external function of type void<-(Value Value).

compiledfnsc_map_get ( ... )

An external function of type Value<->Error(Value).

compiledfnsc_map_set ( ... )

An external function of type void<-(Value Value).

compiledfnsc_merge_new ( ... )

An external function of type Value<-(Value Value).

compiledfnsc_mutate_type ( ... )

An external function of type type<-(type).

compiledfnsc_packed_tuple_type ( ... )

An external function of type type<->Error(i32 type(*)).

compiledfnsc_parameter_is_variadic ( ... )

An external function of type bool<-(Value).

compiledfnsc_parameter_name ( ... )

An external function of type Symbol<-(Value).

compiledfnsc_parameter_new ( ... )

An external function of type Value<-(Symbol).

compiledfnsc_parse_from_path ( ... )

An external function of type Value<->Error(String).

compiledfnsc_parse_from_string ( ... )

An external function of type Value<->Error(String).

compiledfnsc_pointer_type ( ... )

An external function of type type<-(type u64 Symbol).

compiledfnsc_pointer_type_get_flags ( ... )

An external function of type u64<-(type).

compiledfnsc_pointer_type_get_storage_class ( ... )

An external function of type Symbol<-(type).

compiledfnsc_pointer_type_set_element_type ( ... )

An external function of type type<-(type type).

compiledfnsc_pointer_type_set_flags ( ... )

An external function of type type<-(type u64).

compiledfnsc_pointer_type_set_storage_class ( ... )

An external function of type type<-(type Symbol).

compiledfnsc_prompt ( ... )

An external function of type λ(bool String)<-(String String).

compiledfnsc_prove ( ... )

An external function of type Value<->Error(Value).

compiledfnsc_quote_new ( ... )

An external function of type Value<-(Value).

compiledfnsc_realpath ( ... )

An external function of type String<-(String).

compiledfnsc_refer_flags ( ... )

An external function of type u64<-(type).

compiledfnsc_refer_storage_class ( ... )

An external function of type Symbol<-(type).

compiledfnsc_refer_type ( ... )

An external function of type type<-(type u64 Symbol).

compiledfnsc_sampled_image_type ( ... )

An external function of type type<-(type).

compiledfnsc_save_history ( ... )

An external function of type void<-(String).

compiledfnsc_scope_at ( ... )

An external function of type Value<->Error(Scope Value).

compiledfnsc_scope_bind ( ... )

An external function of type Scope<-(Scope Value Value).

compiledfnsc_scope_bind_with_docstring ( ... )

An external function of type Scope<-(Scope Value Value String).

compiledfnsc_scope_docstring ( ... )

An external function of type String<-(Scope Value).

compiledfnsc_scope_get_parent ( ... )

An external function of type Scope<-(Scope).

compiledfnsc_scope_local_at ( ... )

An external function of type Value<->Error(Scope Value).

compiledfnsc_scope_module_docstring ( ... )

An external function of type String<-(Scope).

compiledfnsc_scope_new ( ... )

An external function of type Scope<-().

compiledfnsc_scope_new_subscope ( ... )

An external function of type Scope<-(Scope).

compiledfnsc_scope_new_subscope_with_docstring ( ... )

An external function of type Scope<-(Scope String).

compiledfnsc_scope_new_with_docstring ( ... )

An external function of type Scope<-(String).

compiledfnsc_scope_next ( ... )

An external function of type λ(Value Value i32)<-(Scope i32).

compiledfnsc_scope_next_deleted ( ... )

An external function of type λ(Value i32)<-(Scope i32).

compiledfnsc_scope_reparent ( ... )

An external function of type Scope<-(Scope Scope).

compiledfnsc_scope_unbind ( ... )

An external function of type Scope<-(Scope Value).

compiledfnsc_scope_unparent ( ... )

An external function of type Scope<-(Scope).

compiledfnsc_set_autocomplete_scope ( ... )

An external function of type void<-(Scope).

compiledfnsc_set_globals ( ... )

An external function of type void<-(Scope).

compiledfnsc_set_signal_abort ( ... )

An external function of type void<-(bool).

compiledfnsc_string_buffer ( ... )

An external function of type λ(i8(*) usize)<-(String).

compiledfnsc_string_compare ( ... )

An external function of type i32<-(String String).

compiledfnsc_string_count ( ... )

An external function of type usize<-(String).

compiledfnsc_string_join ( ... )

An external function of type String<-(String String).

compiledfnsc_string_lslice ( ... )

An external function of type String<-(String usize).

compiledfnsc_string_match ( ... )

An external function of type λ(bool i32 i32)<->Error(String String).

compiledfnsc_string_new ( ... )

An external function of type String<-(i8(*) usize).

compiledfnsc_string_new_from_cstr ( ... )

An external function of type String<-(i8(*)).

compiledfnsc_string_rslice ( ... )

An external function of type String<-(String usize).

compiledfnsc_strip_qualifiers ( ... )

An external function of type type<-(type).

compiledfnsc_switch_append_case ( ... )

An external function of type void<-(Value Value Value).

compiledfnsc_switch_append_default ( ... )

An external function of type void<-(Value Value).

compiledfnsc_switch_append_do ( ... )

An external function of type void<-(Value Value).

compiledfnsc_switch_append_pass ( ... )

An external function of type void<-(Value Value Value).

compiledfnsc_switch_new ( ... )

An external function of type Value<-(Value).

compiledfnsc_symbol_count ( ... )

An external function of type usize<-().

compiledfnsc_symbol_is_variadic ( ... )

An external function of type bool<-(Symbol).

compiledfnsc_symbol_new ( ... )

An external function of type Symbol<-(String).

compiledfnsc_symbol_new_unique ( ... )

An external function of type Symbol<-(String).

compiledfnsc_symbol_style ( ... )

An external function of type Symbol<-(Symbol).

compiledfnsc_symbol_to_string ( ... )

An external function of type String<-(Symbol).

compiledfnsc_template_append_parameter ( ... )

An external function of type void<-(Value Value).

compiledfnsc_template_get_name ( ... )

An external function of type Symbol<-(Value).

compiledfnsc_template_is_inline ( ... )

An external function of type bool<-(Value).

compiledfnsc_template_new ( ... )

An external function of type Value<-(Symbol).

compiledfnsc_template_parameter ( ... )

An external function of type Value<-(Value i32).

compiledfnsc_template_parameter_count ( ... )

An external function of type i32<-(Value).

compiledfnsc_template_set_body ( ... )

An external function of type void<-(Value Value).

compiledfnsc_template_set_inline ( ... )

An external function of type void<-(Value).

compiledfnsc_template_set_name ( ... )

An external function of type void<-(Value Symbol).

compiledfnsc_tuple_type ( ... )

An external function of type type<->Error(i32 type(*)).

compiledfnsc_type_alignof ( ... )

An external function of type usize<->Error(type).

compiledfnsc_type_at ( ... )

An external function of type Value<->Error(type Symbol).

compiledfnsc_type_bitcountof ( ... )

An external function of type i32<-(type).

compiledfnsc_type_compatible ( ... )

An external function of type bool<-(type type).

compiledfnsc_type_countof ( ... )

An external function of type i32<->Error(type).

compiledfnsc_type_debug_abi ( ... )

An external function of type void<-(type).

compiledfnsc_type_element_at ( ... )

An external function of type type<->Error(type i32).

compiledfnsc_type_field_index ( ... )

An external function of type i32<->Error(type Symbol).

compiledfnsc_type_field_name ( ... )

An external function of type Symbol<->Error(type i32).

compiledfnsc_type_get_docstring ( ... )

An external function of type String<-(type Symbol).

compiledfnsc_type_is_default_suffix ( ... )

An external function of type bool<-(type).

compiledfnsc_type_is_opaque ( ... )

An external function of type bool<-(type).

compiledfnsc_type_is_plain ( ... )

An external function of type bool<-(type).

compiledfnsc_type_is_refer ( ... )

An external function of type bool<-(type).

compiledfnsc_type_is_superof ( ... )

An external function of type bool<-(type type).

compiledfnsc_type_key ( ... )

An external function of type λ(Symbol type)<-(type).

compiledfnsc_type_kind ( ... )

An external function of type i32<-(type).

compiledfnsc_type_local_at ( ... )

An external function of type Value<->Error(type Symbol).

compiledfnsc_type_next ( ... )

An external function of type λ(Symbol Value)<-(type Symbol).

compiledfnsc_type_offsetof ( ... )

An external function of type usize<->Error(type i32).

compiledfnsc_type_set_docstring ( ... )

An external function of type void<-(type Symbol String).

compiledfnsc_type_set_symbol ( ... )

An external function of type void<-(type Symbol Value).

compiledfnsc_type_sizeof ( ... )

An external function of type usize<->Error(type).

compiledfnsc_type_storage ( ... )

An external function of type type<->Error(type).

compiledfnsc_type_string ( ... )

An external function of type String<-(type).

compiledfnsc_typename_type ( ... )

An external function of type type<->Error(String type).

compiledfnsc_typename_type_get_super ( ... )

An external function of type type<-(type).

compiledfnsc_typename_type_set_opaque ( ... )

An external function of type void<->Error(type).

compiledfnsc_typename_type_set_storage ( ... )

An external function of type void<->Error(type type u32).

compiledfnsc_typify ( ... )

An external function of type Value<->Error(Closure i32 type(*)).

compiledfnsc_typify_template ( ... )

An external function of type Value<->Error(Value i32 type(*)).

compiledfnsc_union_storage_type ( ... )

An external function of type type<->Error(i32 type(*)).

compiledfnsc_unique_type ( ... )

An external function of type type<-(type i32).

compiledfnsc_unquote_new ( ... )

An external function of type Value<-(Value).

compiledfnsc_value_anchor ( ... )

An external function of type Anchor<-(Value).

compiledfnsc_value_ast_repr ( ... )

An external function of type String<-(Value).

compiledfnsc_value_block_depth ( ... )

An external function of type i32<-(Value).

compiledfnsc_value_compare ( ... )

An external function of type bool<-(Value Value).

compiledfnsc_value_content_repr ( ... )

An external function of type String<-(Value).

compiledfnsc_value_is_constant ( ... )

An external function of type bool<-(Value).

compiledfnsc_value_is_pure ( ... )

An external function of type bool<-(Value).

compiledfnsc_value_kind ( ... )

An external function of type i32<-(Value).

compiledfnsc_value_kind_string ( ... )

An external function of type String<-(i32).

compiledfnsc_value_qualified_type ( ... )

An external function of type type<-(Value).

compiledfnsc_value_repr ( ... )

An external function of type String<-(Value).

compiledfnsc_value_tostring ( ... )

An external function of type String<-(Value).

compiledfnsc_value_type ( ... )

An external function of type type<-(Value).

compiledfnsc_value_unwrap ( ... )

An external function of type Value<-(type Value).

compiledfnsc_value_wrap ( ... )

An external function of type Value<-(type Value).

compiledfnsc_valueref_tag ( ... )

An external function of type Value<-(Anchor Value).

compiledfnsc_vector_type ( ... )

An external function of type type<->Error(type usize).

compiledfnsc_view_type ( ... )

An external function of type type<-(type i32).

compiledfnsc_write ( ... )

An external function of type void<-(String).

compiledfnset-autocomplete-scope! ( ... )

An external function of type void<-(Scope).

compiledfnset-globals! ( ... )

An external function of type void<-(Scope).

compiledfnset-signal-abort! ( ... )

An external function of type void<-(bool).

compiledfnspice-macro-verify-signature ( ... )

A compiled function of type void<-(Value<->Error(Value)<*>).

compiledfnsymbol-handler ( ... )

A compiled function of type λ(List Scope)<->Error(List Scope).