Appendix 2. Predefined Subroutines
The following is a very brief description of all the primitives (F/SUBRs) currently available in MDL. These descriptions are in no way to be considered a definition of the effects or values produced by the primitives. They just try to be as complete and as accurate as is possible in a single-statement description. However, because of the complexity of most primitives, many important assumptions and restrictions have been omitted. Even though all primitives return a value, some descriptions mention only the side effects produced by a primitive, because these primitives are most often used for this effect rather than the value.
A description is given in this format:
name (arguments)
decl
English description
This format is intended to look like a FUNCTION definition,
omitting the call to DEFINE and all internal variable and code. The
name is just the ATOM that is used to refer to the primitive. The
names of the arguments are intended to be mnemonic or suggestive of
their meanings. The decl is a FUNCTION-style DECL (chapter 14)
for the primitive. In some cases the DECL may look unusual, because
it is intended to convey information to a person about the uses of
arguments, not to convey information to the MDL interpreter or
compiler. For example, <OR FALSE ANY> is functionally equivalent to
ANY, but it indicates that only the "truth" of the argument is
significant. Indeed, the [OPT ...] construction is often used
illegally, with other elements following it: be warned that MDL would
not accept it. An argument is included in the same LIST with
VALUE (the value of the primitive) only if the argument is actually
returned by the primitive as a value. In other words, #DECL ((VALUE
ARG) ...) implies <==? .VALUE .ARG>.
* ("TUPLE" FACTORS)
#DECL ((VALUE) <OR FIX FLOAT>
(FACTORS) <TUPLE [REST <OR FIX FLOAT>]>)
multiplies all arguments together (arithmetic)
+ ("TUPLE" TERMS)
#DECL ((VALUE) <OR FIX FLOAT>
(TERMS) <TUPLE [REST <OR FIX FLOAT>]>)
adds all arguments together (arithmetic)
- ("OPTIONAL" MINUEND "TUPLE" SUBTRAHENDS)
#DECL ((VALUE) <OR FIX FLOAT>
(MINUEND) <OR FIX FLOAT>
(SUBTRAHENDS) <TUPLE [REST <OR FIX FLOAT>]>)
subtracts other arguments from first argument (arithmetic)
/ ("OPTIONAL" DIVIDEND "TUPLE" DIVISORS)
#DECL ((VALUE) <OR FIX FLOAT>
(DIVIDEND) <OR FIX FLOAT>
(DIVISORS) <TUPLE [REST <OR FIX FLOAT>]>)
divides first argument by other arguments (arithmetic)
0? (NUMBER)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NUMBER) <OR FIX FLOAT>)
tells whether a number is zero (predicate)
1? (NUMBER)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NUMBER) <OR FIX FLOAT>)
tells whether a number is one (predicate)
1STEP (PROCESS)
#DECL ((VALUE PROCESS) PROCESS)
causes a PROCESS to enter single-step mode
==? (OBJECT-1 OBJECT-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT-1 OBJECT-2) ANY)
tells whether two objects are "exactly" equal (predicate)
=? (OBJECT-1 OBJECT-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT-1 OBJECT-2) ANY)
tells whether two objects are "structurally" equal (predicate)
ABS (NUMBER)
#DECL ((VALUE) <OR FIX FLOAT>
(NUMBER) <OR FIX FLOAT>)
returns absolute value of a number (arithmetic)
ACCESS (CHANNEL ACCESS-POINTER)
#DECL ((VALUE CHANNEL) CHANNEL
(ACCESS-POINTER) FIX)
sets access pointer for next I/O transfer via a CHANNEL
ACTIVATE-CHARS ("OPTIONAL" STRING)
#DECL ((VALUE STRING) STRING)
sets or returns interrupt characters for terminal typing (Tenex and Tops-20 versions only)
AGAIN ("OPTIONAL" (ACTIVATION .LPROG\ !-INTERRUPTS))
#DECL ((VALUE) ANY
(ACTIVATION) ACTIVATION)
resumes execution at the given ACTIVATION
ALLTYPES ()
#DECL ((VALUE) <VECTOR [REST ATOM]>)
returns the VECTOR of all type names
AND ("ARGS" ARGS)
#DECL ((VALUE) <OR FALSE ANY>
(ARGS) LIST)
computes logical "and" of truth-values, evaluated by the Subroutine
AND? ("TUPLE" TUPLE)
#DECL ((VALUE) <OR FALSE ANY>
(TUPLE) TUPLE)
computes logical "and" of truth-values, evaluated at call time
ANDB ("TUPLE" WORDS)
#DECL ((VALUE) WORD
(WORDS) <TUPLE [REST <PRIMTYPE WORD>]>)
computes bitwise "and" of machine words
APPLICABLE? (OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) ANY)
tells whether argument is applicable (predicate)
APPLY (APPLICABLE "TUPLE" ARGUMENTS)
#DECL ((VALUE) ANY
(APPLICABLE) APPLICABLE (ARGUMENTS) TUPLE)
applies first argument to the other arguments
APPLYTYPE (TYPE "OPTIONAL" HOW)
#DECL ((VALUE) <OR ATOM APPLICABLE '#FALSE ()>
(TYPE) ATOM (HOW) <OR ATOM APPLICABLE>)
specifies or returns how a data type is applied
ARGS (CALL)
#DECL ((VALUE) TUPLE
(CALL) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
returns arguments of a given un-returned Subroutine call
ASCII (CODE-OR-CHARACTER)
#DECL ((VALUE) <OR CHARACTER FIX>
(CODE-OR-CHARACTER) <OR FIX CHARACTER>)
returns CHARACTER with given ASCII code or vice versa
ASSIGNED? (ATOM "OPTIONAL" ENV)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(ATOM) ATOM (ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
tells whether an ATOM has a local value (predicate)
ASSOCIATIONS ()
#DECL ((VALUE) <OR ASOC '#FALSE ()>)
returns the first object in the association chain
AT (STRUCTURED "OPTIONAL" (N 1))
#DECL ((VALUE) LOCATIVE
(STRUCTURED) STRUCTURED (N) <OR FIX OFFSET>)
returns a locative to the Nth element of a structure
ATAN (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns arc tangent of a number (arithmetic)
ATOM (PNAME)
#DECL ((VALUE) ATOM
(PNAME) STRING)
creates an ATOM with a given name
AVALUE (ASSOCIATION)
#DECL ((VALUE) ANY
(ASSOCIATION) ASOC)
returns the "value" field of an association
BACK (STRUCTURE "OPTIONAL" N)
#DECL ((VALUE) <OR VECTOR TUPLE UVECTOR STORAGE STRING BYTES TEMPLATE>
(N) FIX
(STRUCTURE) <OR <PRIMTYPE VECTOR> <PRIMTYPE TUPLE>
<PRIMTYPE UVECTOR> <PRIMTYPE STORAGE>
<PRIMTYPE STRING> <PRIMTYPE BYTES>
<PRIMTYPE TEMPLATE>>)
replaces some elements removed from a non-list structure by RESTing and changes to primitive data type
BIND ("ARGS" ARGS)
#DECL ((VALUE) ANY
(ARGS) <LIST [OPT ATOM] LIST [OPT DECL] ANY>)
executes sequential expressions without providing a bound ACTIVATION
BITS (WIDTH "OPTIONAL" (RIGHT-EDGE 0))
#DECL ((VALUE) BITS
(WIDTH RIGHT-EDGE) FIX)
creates a bit mask for PUTBITS and GETBITS
BLOAT ("OPTIONAL"
(FREE 0) (STACK 0) (LOCALS 0) (GLOBALS 0) (TYPES 0) (STORAGE 0) (P-STACK 0)
MIN GROW-LOCAL GROW-GLOBAL GROW-TYPE GROW-STORAGE PURE P-STACK-SIZE STACK-SIZE)
#DECL ((VALUE) FIX
(FREE STACK LOCALS GLOBALS TYPES STORAGE P-STACK MIN GROW-LOCAL GROW-GLOBAL
GROW-TYPE GROW-STORAGE PURE P-STACK-SIZE STACK-SIZE) FIX)
allocates extra storage temporarily
BLOAT-STAT ("OPTIONAL" STATS)
#DECL ((VALUE) <UVECTOR [27 FIX]>
(STATS) <UVECTOR [27 ANY]>)
gives garbage-collector and storage statistics
BLOCK (LOOK-UP)
#DECL ((VALUE LOOK-UP) <OR OBLIST <LIST [REST <OR OBLIST 'DEFAULT>]>>)
SETs OBLIST for looking up ATOMs during READing and PARSEing
BOUND? (ATOM "OPTIONAL" ENV)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(ATOM) ATOM (ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
tells whether an ATOM is locally bound (predicate)
BREAK-SEQ (OBJECT PROCESS)
#DECL ((VALUE PROCESS) PROCESS
(OBJECT) ANY)
modifies execution sequence of another PROCESS
BUFOUT ("OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE CHANNEL) CHANNEL)
writes out all internal MDL buffers for an output CHANNEL
BYTE-SIZE (BYTES)
#DECL ((VALUE) FIX
(BYTES) BYTES)
returns size of bytes in a byte-string
BYTES (SIZE "TUPLE" ELEMENTS)
#DECL ((VALUE) BYTES
(SIZE) FIX (ELEMENTS) <TUPLE [REST FIX]>)
creates a byte-string from explicit arguments
CHANLIST ()
#DECL ((VALUE) <LIST [REST CHANNEL]>)
returns a LIST of currently open I/O CHANNELs
CHANNEL ("OPTIONAL" (MODE "READ") "TUPLE" FILE-NAME)
#DECL ((VALUE) CHANNEL
(MODE) STRING (FILE-NAME) TUPLE)
creates an unopened I/O CHANNEL
CHTYPE (OBJECT TYPE)
#DECL ((VALUE) ANY
(OBJECT) ANY (TYPE) ATOM)
makes a new pair with a given data type from an old one
CHUTYPE (UVECTOR TYPE)
#DECL ((VALUE UVECTOR) <PRIMTYPE UVECTOR>
(TYPE) ATOM)
changes the data type of the elements of a uniform vector
CLOSE (CHANNEL)
#DECL ((VALUE CHANNEL) CHANNEL)
closes an I/O CHANNEL
CLOSURE (FUNCTION "TUPLE" VARIABLES)
#DECL ((VALUE) CLOSURE
(FUNCTION) FUNCTION (VARIABLES) <TUPLE [REST ATOM]>)
"binds" the free variables of a FUNCTION to current values
COND ("ARGS" CLAUSES)
#DECL ((VALUE) ANY
(CLAUSES) <LIST <LIST <OR FALSE ANY>> [REST <LIST <OR FALSE ANY>>]>)
evaluates conditions and selected expression
CONS (NEW-ELEMENT LIST)
#DECL ((VALUE) LIST
(NEW-ELEMENT) ANY (LIST) LIST)
adds an element to the front of a LIST
COS (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns cosine of a number (arithmetic)
CRLF ("OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE) 'T
(CHANNEL) CHANNEL)
prints a carriage-return and line-feed via an output CHANNEL
DECL-CHECK ("OPTIONAL" SWITCH)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(SWITCH) <OR FALSE ANY>)
enables or disables type-declaration checking
DECL? (OBJECT PATTERN)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) ANY (PATTERN) <OR ATOM FORM>)
tells whether an object matches a type declaration (predicate)
DEFINE ('NAME "ARGS" ARGS)
#DECL ((VALUE) ATOM
(NAME) ANY (ARGS) <LIST [OPT ATOM] LIST [OPT DECL] ANY>)
sets the global value of an ATOM to a FUNCTION
DEFMAC ('NAME "ARGS" ARGS)
#DECL ((VALUE) ATOM
(NAME) ANY (ARGS) <LIST [OPT ATOM] LIST [OPT DECL] ANY>)
sets the global value of an ATOM to a MACRO
DEMSIG (NAME)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NAME) STRING)
signals an ITS daemon
DISABLE (INTERRUPT)
#DECL ((VALUE INTERRUPT) IHEADER)
disables an interrupt
DISMISS (VAL "OPTIONAL" ACTIVATION INT-LEVEL)
#DECL ((VALUE VAL) ANY
(ACTIVATION) ACTIVATION (INT-LEVEL) FIX)
dismisses an interrupt occurrence
ECHOPAIR (IN OUT)
#DECL ((VALUE IN) CHANNEL
(OUT) CHANNEL)
coordinates I/O CHANNELs for echoing characters on rubout
EMPTY? (OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) STRUCTURED)
tells whether a structure has zero elements (predicate)
ENABLE (INTERRUPT)
#DECL ((VALUE INTERRUPT) IHEADER)
enables an interrupt
ENDBLOCK ()
#DECL ((VALUE) <OR OBLIST <LIST [REST <OR OBLIST 'DEFAULT>]>>)
restores the .OBLIST that existed before corresponding call to BLOCK
ENTRY-LOC (ENTRY)
#DECL ((VALUE) FIX
(ENTRY) RSUBR-ENTRY)
returns the offset in the code vector of an RSUBR-ENTRY
EQVB ("TUPLE" WORDS)
#DECL ((VALUE) WORD
(WORDS) <TUPLE [REST <PRIMTYPE WORD>]>)
computes bitwise "equivalence" of machine words
ERRET ("OPTIONAL" VAL (FRAME .LERR\ !-INTERRUPTS))
#DECL ((VALUE) ANY
(VAL) ANY (FRAME) FRAME)
continues evaluation from the last ERROR or LISTEN or from a given FRAME
ERROR ("TUPLE" INFO)
#DECL ((VALUE) ANY
(INFO) TUPLE)
stops and informs user of an error
ERRORS ()
#DECL ((VALUE) OBLIST)
returns the OBLIST where error messages are located
EVAL (ANY "OPTIONAL" ENV)
#DECL ((VALUE) ANY
(ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
evaluates an expression in a given environment
EVALTYPE (TYPE "OPTIONAL" HOW)
#DECL ((VALUE) <OR ATOM APPLICABLE '#FALSE ()>
(TYPE) ATOM (HOW) <OR ATOM APPLICABLE>)
specifies or returns how a data type is evaluated
EVENT (NAME "OPTIONAL" PRIORITY WHICH)
#DECL ((VALUE) IHEADER
(NAME) <OR STRING ATOM IHEADER> (PRIORITY) FIX (WHICH) <OR CHANNEL LOCATIVE>)
sets up an interrupt
EXP (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns "e" to the power of a number (arithmetic)
EXPAND (ANY)
#DECL ((VALUE) ANY
(ANY) ANY)
evaluates its argument (only once if a MACRO is involved) in the top-level environment
FILE-EXISTS? ("TUPLE" FILE-NAME)
#DECL ((VALUE) <OR 'T <FALSE STRING FIX>>
(FILE-NAME) TUPLE)
tests for existence of a file (predicate)
FILE-LENGTH (INCH)
#DECL ((VALUE) FIX
(INCH) CHANNEL)
returns the system-provided length of a file open on an input CHANNEL
FILECOPY ("OPTIONAL" (INCH .INCHAN) (OUCH .OUTCHAN))
#DECL ((VALUE) FIX
(INCH OUCH) CHANNEL)
copies characters from one CHANNEL to another until end-of-file on the input CHANNEL
FIX (NUMBER)
#DECL ((VALUE) FIX
(NUMBER) <OR FLOAT FIX>)
returns integer part of a number (arithmetic)
FLATSIZE (ANY MAX "OPTIONAL" (RADIX 10))
#DECL ((VALUE) <OR FIX '#FALSE ()>
(ANY) ANY (MAX RADIX) FIX)
returns number of characters needed to PRIN1 an object, if not greater than given maximum
FLOAD ("TUPLE" FILE-NAME-AND-LOOK-UP)
#DECL ((VALUE) '"DONE"
(FILE-NAME-AND-LOOK-UP) TUPLE)
reads and evaluates all objects in a file
FLOAT (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns floating-point value of a number (arithmetic)
FORM ("TUPLE" ELEMENTS)
#DECL ((VALUE) FORM
(ELEMENTS) TUPLE)
creates a FORM from explicit arguments
FRAME ("OPTIONAL" (FRAME .LERR\ !-INTERRUPTS))
#DECL ((VALUE) FRAME
(FRAME) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
returns a previous Subroutine call
FREE-RUN (PROCESS)
#DECL ((VALUE) <OR PROCESS '#FALSE ()>
(PROCESS) PROCESS)
causes a PROCESS to leave single-step mode
FREEZE (STRUCTURE)
#DECL ((VALUE) <OR VECTOR UVECTOR STRING BYTES>
(STRUCTURE) <OR <PRIMTYPE VECTOR> <PRIMTYPE TUPLE> <PRIMTYPE UVECTOR>
<PRIMTYPE STRING> <PRIMTYPE BYTES>>)
makes copy of argument in non-moving garbage-collected space
FUNCT (FRAME)
#DECL ((VALUE) ATOM
(FRAME) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
returns Subroutine name of a given previous Subroutine call
FUNCTION ("ARGS" ARGS)
#DECL ((VALUE) FUNCTION
(ARGS) <LIST [OPT ATOM] LIST [OPT DECL] ANY>)
creates a FUNCTION
G=? (NUMBER-1 NUMBER-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NUMBER-1 NUMBER-2) <OR FIX FLOAT>)
tells whether first argument is greater than or equal to second (predicate)
G? (NUMBER-1 NUMBER-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NUMBER-1 NUMBER-2) <OR FIX FLOAT>)
tells whether first argument is greater than second (predicate)
GASSIGNED? (ATOM)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(ATOM) ATOM)
tells whether an ATOM has a global value (predicate)
GBOUND? (ATOM)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(ATOM) ATOM)
tells whether an ATOM ever had a global value (predicate)
GC ("OPTIONAL" MIN (EXHAUSTIVE? <>) MS-FREQ)
#DECL ((VALUE) FIX
(MIN MS-FREQ) FIX (EXHAUSTIVE?) <OR FALSE ANY>)
causes a garbage collection and changes garbage-collection parameters
GC-DUMP (ANY PRINTB)
#DECL ((VALUE) <OR ANY <UVECTOR <PRIMTYPE WORD>>>
(ANY) ANY (PRINTB) <OR CHANNEL FALSE>)
dumps an object so that it can be reproduced exactly
GC-MON ("OPTIONAL" SWITCH)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(SWITCH) <OR FALSE ANY>)
turns garbage-collection monitoring off or on
GC-READ (READB "OPTIONAL" (EOF-ROUTINE '<ERROR ...>))
#DECL ((VALUE) ANY
(READB) CHANNEL (EOF-ROUTINE) ANY)
inputs an object that was previously GC-DUMPed
GDECL ("ARGS" ARGS)
#DECL ((VALUE) ANY
(ARGS) <LIST [REST <LIST [REST ATOM]> <OR ATOM FORM>]>)
declares the type/structure of the global value of ATOMs
GET (ITEM INDICATOR "OPTIONAL" (IF-NONE <>))
#DECL ((VALUE) ANY
(ITEM) <OR STRUCTURED ANY> (INDICATOR) <OR FIX OFFSET ANY> (IF-NONE) ANY)
does NTH or GETPROP
GET-DECL (ATOM-OR-OFFSET)
#DECL ((VALUE) <OR ATOM FORM '#FALSE ()>
(ATOM-OR-OFFSET) <OR LOCD OFFSET>)
gets the type declaration for an ATOM's value or an OFFSET
GETBITS (FROM FIELD)
#DECL ((VALUE) WORD
(FROM) <OR <PRIMTYPE WORD> <PRIMTYPE STORAGE>> (FIELD) BITS)
returns a bit field of a machine word or STORAGE address
GETL (ITEM INDICATOR "OPTIONAL" (IF-NONE <>))
#DECL ((VALUE) <OR LOCATIVE LOCAS ANY>
(ITEM) <OR STRUCTURED ANY> (INDICATOR) <OR FIX OFFSET ANY> (IF-NONE) ANY)
does AT or GETPL
GETPL (ITEM INDICATOR "OPTIONAL" (IF-NONE <>))
#DECL ((VALUE) <OR LOCAS ANY>
(ITEM INDICATOR IF-NONE) ANY)
returns a locative to an association
GETPROP (ITEM INDICATOR "OPTIONAL" (IF-NONE <>))
#DECL ((VALUE) ANY
(ITEM INDICATOR IF-NONE) ANY)
returns the value associated with an item under an indicator
GLOC (ATOM "OPTIONAL" (MAKE-SLOT <>))
#DECL ((VALUE) LOCD
(ATOM) ATOM (MAKE-SLOT) <OR FALSE ANY>)
returns a locative to the global-value cell of an ATOM
GO (LABEL)
#DECL ((VALUE) ANY
(LABEL) <OR ATOM TAG>)
goes to a label and continues evaluation from there
GROW (U/VECTOR END BEG)
#DECL ((VALUE) <OR <PRIMTYPE VECTOR> <PRIMTYPE UVECTOR>>
(U/VECTOR) <OR <PRIMTYPE VECTOR> <PRIMTYPE UVECTOR>> (END BEG) FIX)
increases the size of a vector or uniform vector
GUNASSIGN (ATOM)
#DECL ((VALUE ATOM) ATOM)
causes an ATOM to have no global value
GVAL (ATOM)
#DECL ((VALUE) ANY
(ATOM) ATOM)
returns the global value of an ATOM
HANDLER (IHEADER HANDLER "OPTIONAL" (PROCESS #PROCESS 0))
#DECL ((VALUE) HANDLER
(IHEADER) IHEADER (HANDLER) <OR HANDLER APPLICABLE> (PROCESS) PROCESS)
creates an interrupt HANDLER
HANG ("OPTIONAL" (UNHANG <>))
#DECL ((VALUE) ANY
(UNHANG) ANY)
does nothing, interruptibly, potentially forever
IBYTES (SIZE LENGTH "OPTIONAL" (ELEMENT 0))
#DECL ((VALUE) BYTES
(SIZE LENGTH) FIX (ELEMENT) ANY)
creates a byte-string from implicit arguments
IFORM (LENGTH "OPTIONAL" (ELEMENT #LOSE 0))
#DECL ((VALUE) FORM
(LENGTH) FIX (ELEMENT) ANY)
creates a FORM from implicit arguments
ILIST (LENGTH "OPTIONAL" (ELEMENT #LOSE 0))
#DECL ((VALUE) LIST
(LENGTH) FIX (ELEMENT) ANY)
creates a LIST from implicit arguments
IMAGE (CODE "OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE CODE) FIX
(CHANNEL) CHANNEL)
sends an image-mode character via an output CHANNEL
IN (POINTER)
#DECL ((VALUE) ANY
(POINTER) LOCATIVE)
returns the object pointed to by a locative
INDEX (OFFSET)
#DECL ((VALUE) FIX
(OFFSET) OFFSET)
fetches the integral part of an OFFSET
INDICATOR (ASSOCIATION)
#DECL ((VALUE) ANY
(ASSOCIATION) ASOC)
returns the "indicator" field of an association
INSERT (PNAME OBLIST)
#DECL ((VALUE) ATOM
(PNAME) <OR ATOM STRING> (OBLIST) OBLIST)
adds an ATOM to an OBLIST
INT-LEVEL ("OPTIONAL" NEW-INT-LEVEL)
#DECL ((VALUE) FIX
(NEW-INT-LEVEL) FIX)
returns and/or sets current interrupt level
INTERRUPT (NAME "TUPLE" HANDLER-ARGS)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NAME) <OR STRING ATOM IHEADER> (HANDLER-ARGS) TUPLE)
causes an interrupt to occur
INTERRUPTS ()
#DECL ((VALUE) OBLIST)
returns the OBLIST on which interrupt names are kept
IPC-HANDLER (BODY TYPE OTHER-NAME-1 OTHER-NAME-2
"OPTIONAL" (MY-NAME-1 <UNAME>) (MY-NAME-2 <JNAME>))
#DECL ((VALUE) 'T
(BODY) <OR STRING UVECTOR> (TYPE) FIX
(OTHER-NAME-1 OTHER-NAME-2 MY-NAME-1 MY-NAME-2) STRING)
is the built-in handler for "IPC" (ITS version only)
IPC-OFF ()
#DECL ((VALUE) 'T)
stops all listening on the IPC device (ITS version only)
IPC-ON ("OPTIONAL" (MY-NAME-1 <UNAME>) (MY-NAME-2 <JNAME>))
#DECL ((VALUE) 'T
(MY-NAME-1 MY-NAME-2) STRING)
listens on the IPC device (ITS version only)
ISTORAGE (LENGTH "OPTIONAL" (ELEMENT #LOSE 0))
#DECL ((VALUE) STORAGE
(LENGTH) FIX (ELEMENT) ANY)
creates a non-garbage-collected STORAGE from implicit arguments (archaic)
ISTRING (LENGTH "OPTIONAL" (ELEMENT !\^@))
#DECL ((VALUE) STRING
(LENGTH) FIX (ELEMENT) ANY)
creates a character-string from implicit arguments
ITEM (ASSOCIATION)
#DECL ((VALUE) ANY
(ASSOCIATION) ASOC)
returns the "item" field of an association
ITUPLE (LENGTH "OPTIONAL" (ELEMENT #LOSE 0))
#DECL ((VALUE) TUPLE
(LENGTH) FIX (ELEMENT) ANY)
creates a TUPLE from implicit arguments
IUVECTOR (LENGTH "OPTIONAL" (ELEMENT #LOSE 0))
#DECL ((VALUE) UVECTOR
(LENGTH) FIX (ELEMENT) ANY)
creates a UVECTOR from implicit arguments
IVECTOR (LENGTH "OPTIONAL" (ELEMENT #LOSE 0))
#DECL ((VALUE) VECTOR
(LENGTH) FIX (ELEMENT) ANY)
creates a VECTOR from implicit arguments
JNAME ()
#DECL ((VALUE) STRING)
returns the "job name" of MDL's process
L=? (NUMBER-1 NUMBER-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NUMBER-1 NUMBER-2) <OR FIX FLOAT>)
tells whether first argument is less than or equal to second (predicate)
L? (NUMBER-1 NUMBER-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(NUMBER-1 NUMBER-2) <OR FIX FLOAT>)
tells whether first argument is less than second (predicate)
LEGAL? (STACK-OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(STACK-OBJECT) ANY)
tells whether argument (which might live on the control stack) is still legal (predicate)
LENGTH (OBJECT)
#DECL ((VALUE) FIX
(OBJECT) STRUCTURED)
returns the number of elements in a structure
LENGTH? (OBJECT MAX)
#DECL ((VALUE) <OR FIX '#FALSE ()>
(OBJECT) STRUCTURED (MAX) FIX)
tells whether length of structure is less than or equal to an integer (predicate)
LINK (EXPR PNAME "OPTIONAL" (OBLIST <1 .OBLIST>))
#DECL ((VALUE EXPR) ANY
(PNAME) STRING (OBLIST) OBLIST)
creates a symbolic LINK to any expression for READing
LIST ("TUPLE" ELEMENTS)
#DECL ((VALUE) LIST
(ELEMENTS) TUPLE)
creates a LIST from explicit arguments
LISTEN ("TUPLE" INFO)
#DECL ((VALUE) ANY
(INFO) TUPLE)
stops and informs user that MDL is listening
LLOC (ATOM "OPTIONAL" ENV)
#DECL ((VALUE) LOCD
(ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
returns a locative to the local-value cell of an ATOM
LOAD (CHANNEL "OPTIONAL" (LOOK-UP .OBLIST))
#DECL ((VALUE) '"DONE"
(LOOK-UP) <OR OBLIST <LIST [REST <OR OBLIST 'DEFAULT>]>>)
reads and evaluates all objects via an input CHANNEL
LOCATIVE? (OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) ANY)
tells whether an object is a locative (predicate)
LOG (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns natural logarithm of a number (arithmetic)
LOGOUT ()
#DECL ((VALUE) '#FALSE ())
logs out of the operating system (useful for background processes)
LOOKUP (PNAME OBLIST)
#DECL ((VALUE) <OR ATOM '#FALSE ()>
(PNAME) STRING (OBLIST) OBLIST)
returns an ATOM found on a given OBLIST
LPARSE ("OPTIONAL"
(STRING .PARSE-STRING) (RADIX 10) (LOOK-UP .OBLIST) PARSE-TABLE LOOK-AHEAD)
#DECL ((VALUE) LIST
(STRING) STRING (RADIX) FIX (PARSE-TABLE) VECTOR (LOOK-AHEAD) CHARACTER
(LOOK-UP) <OR OBLIST <LIST [REST <OR OBLIST 'DEFAULT>]>>)
returns a LIST of the objects parsed from a STRING (sections 7.6.6.3, 15.7.2, 17.1.3)
LSH (WORD AMOUNT)
#DECL ((VALUE) WORD
(WORD) <PRIMTYPE WORD> (AMOUNT) FIX)
shifts bits in a machine word
LVAL (ATOM "OPTIONAL" ENV)
#DECL ((VALUE) ANY
(ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
returns the local value of an ATOM
MAIN ()
#DECL ((VALUE) PROCESS)
returns #PROCESS 1 (the main PROCESS)
MANIFEST ("TUPLE" ATOMS)
#DECL ((VALUE) 'T
(ATOMS) <TUPLE [REST ATOM]>)
declares the global values of ATOMs to be constant
MANIFEST? (ATOM)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(ATOM) ATOM)
tells whether the global value of an ATOM is constant (predicate)
MAPF (FINAL-FCN LOOP-FCN "TUPLE" STRUCTURES)
#DECL ((VALUE) ANY
(FINAL-FCN) <OR APPLICABLE FALSE> (LOOP-FCN) APPLICABLE
(STRUCTURES) <TUPLE [REST STRUCTURED]>)
maps function onto elements of structures
MAPLEAVE ("OPTIONAL" (VAL T))
#DECL (
(VAL) ANY)
leaves the most recent MAPF/R with a value
MAPR (FINAL-FCN LOOP-FCN "TUPLE" STRUCTURES)
#DECL ((VALUE) ANY
(FINAL-FCN) <OR APPLICABLE FALSE> (LOOP-FCN) APPLICABLE
(STRUCTURES) <TUPLE [REST STRUCTURED]>)
maps function onto RESTs of structures
MAPRET ("TUPLE" ELEMENTS)
#DECL (
(ELEMENTS) TUPLE)
returns a variable number of objects to the current MAPF/R
MAPSTOP ("TUPLE" ELEMENTS)
#DECL (
(ELEMENTS) TUPLE)
MAPRETs, then stops looping of MAPF/R and causes application
MAX ("TUPLE" NUMBERS)
#DECL ((VALUE) <OR FIX FLOAT>
(NUMBERS) <TUPLE [REST <OR FIX FLOAT>]>)
returns the greatest of its arguments (arithmetic)
ME ()
#DECL ((VALUE) PROCESS)
returns the current PROCESS
MEMBER (OBJECT STRUCTURE)
#DECL ((VALUE) <OR STRUCTURED '#FALSE ()>
(OBJECT) ANY (STRUCTURE) STRUCTURED)
tells whether an object is "structurally" equal to some element of a structure (predicate)
MEMQ (OBJECT STRUCTURE)
#DECL ((VALUE) <OR STRUCTURED '#FALSE ()>
(OBJECT) ANY (STRUCTURE) STRUCTURED)
tells whether an object is "exactly" equal to some element of a structure (predicate)
MIN ("TUPLE" NUMBERS)
#DECL ((VALUE) <OR FIX FLOAT>
(NUMBERS) <TUPLE [REST <OR FIX FLOAT>]>)
returns the least of its arguments (arithmetic)
MOBLIST (NAME "OPTIONAL" (LENGTH 13))
#DECL ((VALUE) OBLIST
(NAME) ATOM (LENGTH) FIX)
creates or gets an OBLIST
MOD (NUMBER MODULUS)
#DECL ((VALUE) FIX
(NUMBER MODULUS) FIX)
returns number-theoretic remainder (fixed-point residue) (arithmetic)
MONAD? (OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) ANY)
tells whether an object is either unstructured or an empty structure (predicate)
N==? (OBJECT-1 OBJECT-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT-1 OBJECT-2) ANY)
tells whether two objects are NOT "exactly" equal (predicate)
N=? (OBJECT-1 OBJECT-2)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT-1 OBJECT-2) ANY)
tells whether two objects are NOT "structurally" equal (predicate)
NETACC (CHANNEL)
#DECL ((VALUE) <OR CHANNEL '#FALSE ()>
(CHANNEL) CHANNEL)
accepts a network connection
NETS (CHANNEL)
#DECL ((VALUE CHANNEL) CHANNEL)
forces operating-system network-CHANNEL buffer to be sent
NETSTATE (CHANNEL)
#DECL ((VALUE) <UVECTOR FIX FIX FIX>
(CHANNEL) CHANNEL)
returns state information for a network CHANNEL
NEWTYPE (NEW-TYPE OLD-TYPE "OPTIONAL" PATTERN)
#DECL ((VALUE NEW-TYPE) ATOM
(OLD-TYPE) ATOM (PATTERN) <OR ATOM FORM>)
defines a new data type
NEXT (ASSOCIATION)
#DECL ((VALUE) <OR ASOC '#FALSE ()>
(ASSOCIATION) ASOC)
returns the next object in the association chain
NEXTCHR ("OPTIONAL" (CHANNEL .INCHAN) (EOF-ROUTINE '<ERROR ...>))
#DECL ((VALUE) <OR CHARACTER FIX>
(CHANNEL) CHANNEL (EOF-ROUTINE) ANY)
returns the character that will next be read via an input CHANNEL
NOT (OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) <OR FALSE ANY>)
computes logical "not" of a truth-value
NTH (STRUCTURED "OPTIONAL" N)
#DECL ((VALUE) ANY
(N) <OR FIX OFFSET>)
fetches the Nth element of a structure
OBLIST? (ATOM)
#DECL ((VALUE) <OR OBLIST '#FALSE ()>
(ATOM) ATOM)
returns an ATOM's OBLIST or false if none (predicate)
OFF (INTERRUPT "OPTIONAL" WHICH)
#DECL ((VALUE) <OR HANDLER IHEADER '#FALSE ()>
(INTERRUPT) <OR HANDLER IHEADER STRING ATOM> (WHICH) <OR CHANNEL LOCATIVE>)
removes an interrupt HANDLER or destroys an interrupt
OFFSET (N PATTERN)
#DECL ((VALUE) OFFSET
(N) FIX (PATTERN) <OR ATOM FORM>)
creates an integer with attached type declaration
ON (NAME APPLICABLE PRIORITY "OPTIONAL" (PROCESS 0) WHICH)
#DECL ((VALUE) HANDLER
(NAME) <OR STRING ATOM> (APPLICABLE) APPLICABLE (PRIORITY) FIX
(PROCESS) <OR FIX PROCESS> (WHICH) <OR CHANNEL LOCATIVE>)
turns on an interrupt and creates an interrupt HANDLER
OPEN ("OPTIONAL" (MODE "READ") "TUPLE" FILE-NAME)
#DECL ((VALUE) <OR CHANNEL <FALSE STRING STRING FIX>>
(MODE) STRING (FILE-NAME) TUPLE)
creates and opens an I/O CHANNEL
OPEN-NR ("OPTIONAL" (MODE "READ") "TUPLE" FILE-NAME)
#DECL ((VALUE) <OR CHANNEL <FALSE STRING STRING FIX>>
(MODE) STRING (FILE-NAME) TUPLE)
creates and opens an I/O CHANNEL without changing file's reference date
OR ("ARGS" ARGS)
#DECL ((VALUE) <OR FALSE ANY>
(ARGS) LIST)
computes logical inclusive "or" of truth-values, evaluated by the Subroutine
OR? ("TUPLE" TUPLE)
#DECL ((VALUE) <OR FALSE ANY>
(TUPLE) TUPLE)
compares logical inclusive "or" of truth-values, evaluated at call time
ORB ("TUPLE" WORDS)
#DECL ((VALUE) WORD
(WORDS) <TUPLE [REST <PRIMTYPE WORD>]>)
computes bitwise inclusive "or" of machine words
OVERFLOW ("OPTIONAL" SWITCH)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(SWITCH) <OR ANY FALSE>)
enables or disables overflow error (arithmetic)
PARSE ("OPTIONAL"
(STRING .PARSE-STRING) (RADIX 10) (LOOK-UP .OBLIST) PARSE-TABLE LOOK-AHEAD)
#DECL ((VALUE) ANY
(STRING) STRING (RADIX) FIX (PARSE-TABLE) VECTOR (LOOK-AHEAD) CHARACTER
(LOOK-UP) <OR OBLIST <LIST [REST <OR OBLIST 'DEFAULT>]>>)
parses a STRING into an object (sections 7.6.6.2, 15.7.2, 17.1.3)
PCODE (NAME OFFSET)
#DECL ((VALUE) PCODE
(NAME) STRING (OFFSET) FIX)
creates pointer to pure RSUBR code
PNAME (ATOM)
#DECL ((VALUE) STRING
(ATOM) ATOM)
returns the print-name of an ATOM as a distinct copy
PRIMTYPE (OBJECT)
#DECL ((VALUE) ATOM
(OBJECT) ANY)
returns the primitive data type of an object
PRIMTYPE-C (TYPE)
#DECL ((VALUE) PRIMTYPE-C
(TYPE) ATOM)
gets a "storage allocation code" for a data type
PRIN1 (OBJECT "OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE OBJECT) ANY
(CHANNEL) CHANNEL)
prints an object via an output CHANNEL
PRINC (OBJECT "OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE OBJECT) ANY
(CHANNEL) CHANNEL)
prints an object via an output CHANNEL without STRING or CHARACTER brackets or ATOM trailers
PRINT (OBJECT "OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE OBJECT) ANY
(CHANNEL) CHANNEL)
prints an object via an output CHANNEL between new-line and space
PRINTB (BUFFER CHANNEL)
#DECL ((VALUE BUFFER) <<OR UVECTOR STORAGE> [REST <PRIMTYPE WORD>]>
(CHANNEL) CHANNEL)
writes binary information via an output CHANNEL
PRINTSTRING (BUFFER "OPTIONAL" (CHANNEL .OUTCHAN) (COUNT <LENGTH .BUFFER>))
#DECL ((VALUE COUNT) FIX
(BUFFER) STRING (CHANNEL) CHANNEL)
writes contents of a STRING via an output CHANNEL
PRINTTYPE (TYPE "OPTIONAL" HOW)
#DECL ((VALUE) <OR ATOM APPLICABLE '#FALSE ()>
(TYPE) ATOM (HOW) <OR ATOM APPLICABLE>)
specifies or returns how a data type is printed
PROCESS (STARTUP)
#DECL ((VALUE) PROCESS
(STARTUP) APPLICABLE)
creates a new PROCESS with given startup function
PROG ("ARGS" ARGS)
#DECL ((VALUE) ANY
(ARGS) <LIST [OPT ATOM] LIST [OPT DECL] ANY>)
executes sequential expressions
PURIFY ("TUPLE" TUPLE)
#DECL ((VALUE) ANY
(TUPLE) TUPLE)
purifies objects for sharing by different operating-system processes
PUT (ITEM INDICATOR "OPTIONAL" VAL)
#DECL ((VALUE) ANY
(ITEM) <OR STRUCTURED ANY> (INDICATOR) <OR FIX OFFSET ANY> (VAL) ANY)
stores into structure or does PUTPROP
PUT-DECL (IDENTIFIER PATTERN)
#DECL ((VALUE IDENTIFIER) <OR LOCD OFFSET>
(PATTERN) <OR ATOM FORM>)
changes the type declaration for an ATOM's value or an OFFSET
PUTBITS (TO FIELD "OPTIONAL" (FROM 0))
#DECL ((VALUE) <PRIMTYPE WORD>
(TO FROM) <PRIMTYPE WORD> (FIELD) BITS)
sets a bit field in a machine word
PUTPROP (ITEM INDICATOR "OPTIONAL" VAL)
#DECL ((VALUE) ANY
(ITEM INDICATOR VAL) ANY)
(dis)associates a value with an item under an indicator
PUTREST (HEAD TAIL)
#DECL ((VALUE HEAD) <PRIMTYPE LIST>
(TAIL) <PRIMTYPE LIST>)
replaces the rest of a list
QUIT ()
#DECL ((VALUE) '#FALSE ())
exits from MDL gracefully
QUITTER (WAS-TYPED CHANNEL)
#DECL ((VALUE WAS-TYPED) CHARACTER
(CHANNEL) CHANNEL)
is the interrupt handler for ^G and ^S quit features
QUOTE ("ARGS" ARGS)
#DECL ((VALUE) ANY
(ARGS) LIST)
returns the first argument unevaluated
RANDOM ("OPTIONAL" SEED-1 SEED-2)
#DECL ((VALUE) FIX
(SEED-1 SEED-2) FIX)
generates a uniform pseudo-random integer (arithmetic)
READ ("OPTIONAL"
(CHANNEL .INCHAN) (EOF-ROUTINE '<ERROR ...>) (LOOK-UP .OBLIST) READ-TABLE)
#DECL ((VALUE) ANY
(CHANNEL) CHANNEL (EOF-ROUTINE) ANY (READ-TABLE) VECTOR
(LOOK-UP) <OR OBLIST <LIST [REST <OR OBLIST 'DEFAULT>]>>)
reads one object via an input CHANNEL (sections 11.1.1.1, 11.3, 15.7.1, 17.1.3)
READB (BUFFER CHANNEL "OPTIONAL" (EOF-ROUTINE '<ERROR ...>))
#DECL ((VALUE) FIX
(BUFFER) <<OR UVECTOR STORAGE> [REST <PRIMTYPE WORD>]>
(CHANNEL) CHANNEL (EOF-ROUTINE) ANY)
reads binary information via an input CHANNEL
READCHR ("OPTIONAL" (CHANNEL .INCHAN) (EOF-ROUTINE '<ERROR ...>))
#DECL ((VALUE) <OR CHARACTER FIX>
(CHANNEL) CHANNEL (EOF-ROUTINE) ANY)
reads one character via an input CHANNEL
READSTRING (BUFFER "OPTIONAL" (CHANNEL .INCHAN) (STOP <LENGTH .BUFFER>)
(EOF-ROUTINE '<ERROR ...>))
#DECL ((VALUE) FIX
(BUFFER) STRING (CHANNEL) CHANNEL (STOP) <OR FIX STRING> (EOF-ROUTINE) ANY)
reads into a STRING via an input CHANNEL
REALTIMER ("OPTIONAL" INTERVAL)
#DECL ((VALUE) <OR FIX FLOAT '#FALSE ()>
(INTERVAL) <OR FIX FLOAT>)
sets or fetches interval for real-time interrupts (ITS version only)
REMOVE (PNAME "OPTIONAL" OBLIST)
#DECL ((VALUE) <OR ATOM '#FALSE ()>
(PNAME) <OR ATOM STRING> (OBLIST) OBLIST)
removes an ATOM from an OBLIST
RENAME ("TUPLE" FILE-NAME/S)
#DECL ((VALUE) <OR 'T <FALSE STRING FIX>>
(FILE-NAME/S) <TUPLE <OR STRING CHANNEL>>)
renames or deletes a disk file
REP ()
#DECL ((VALUE) ANY)
is the built-in function for READ-EVAL-PRINT loop
REPEAT ("ARGS" ARGS)
#DECL ((VALUE) ANY
(ARGS) <LIST [OPT ATOM] LIST [OPT DECL] ANY>)
executes sequential expressions repeatedly
RESET (CHANNEL)
#DECL ((VALUE) <OR CHANNEL <FALSE STRING STRING FIX>>
(CHANNEL) CHANNEL)
reopens an I/O CHANNEL at its beginning
REST (STRUCTURED "OPTIONAL" (N 1))
#DECL ((VALUE) STRUCTURED
(N) FIX)
removes the first N elements from a structure and changes to primitive data type
RESTORE ("OPTIONAL" NAME-1 NAME-2 NAME-3 NAME-4)
#DECL ((VALUE) '"RESTORED"
(NAME-1 NAME-2 NAME-3 NAME-4) STRING)
restores MDL's state from a file
RESUME (VAL "OPTIONAL" (PROCESS <RESUMER>))
#DECL ((VALUE) ANY
(VAL) ANY (PROCESS) PROCESS)
transfers execution to another PROCESS
RESUMER ("OPTIONAL" (PROCESS <ME>))
#DECL ((VALUE) <OR PROCESS '#FALSE ()>
(PROCESS) PROCESS)
returns the PROCESS that last resumed the given PROCESS
RETRY ("OPTIONAL" FRAME)
#DECL (
(FRAME) FRAME)
retries a previous Subroutine call, usually from the error level
RETURN ("OPTIONAL" (VAL T) (ACTIVATION .LPROG\ !-INTERRUPTS))
#DECL ((VALUE) ANY
(VAL) ANY (ACTIVATION) ACTIVATION)
leaves a PROG/REPEAT with a value
RGLOC (ATOM "OPTIONAL" (MAKE-SLOT <>))
#DECL ((VALUE) LOCR
(ATOM) ATOM (MAKE-SLOT) <OR FALSE ANY>)
returns a locative to the global-value cell of an ATOM for pure-program use
ROOT ()
#DECL ((VALUE) OBLIST)
returns the OBLIST containing names of primitives
ROT (WORD AMOUNT)
#DECL ((VALUE) WORD
(WORD) <PRIMTYPE WORD> (AMOUNT) FIX)
rotates bits in a machine word
RSUBR (CANDIDATE)
#DECL ((VALUE) RSUBR
(CANDIDATE) <VECTOR <OR CODE PCODE> ATOM DECL [REST ANY]>)
creates an RSUBR
RSUBR-ENTRY (CANDIDATE OFFSET)
#DECL ((VALUE) RSUBR-ENTRY
(CANDIDATE) <VECTOR <OR ATOM RSUBR> ATOM DECL> (OFFSET) FIX)
adds an entry point to an RSUBR
RSUBR-LINK ("OPTIONAL" SWITCH)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(SWITCH) <OR FALSE ANY>)
enables or disables the automatic RSUBR linking feature
RUNINT ("TUPLE" TUPLE)
#DECL ((VALUE) ANY
(TUPLE) TUPLE)
applies interrupt handler (for internal use only)
RUNTIMER ("OPTIONAL" INTERVAL)
#DECL ((VALUE) <OR FIX FLOAT '#FALSE ()>
(INTERVAL) <OR FIX FLOAT>)
sets or fetches interval for run-time interrupt (ITS version only)
SAVE ("TUPLE" FILE-NAME-AND-GC?)
#DECL ((VALUE) '"SAVED"
(FILE-NAME-AND-GC?) <TUPLE [OPT STRING] [OPT STRING]
[OPT STRING] [OPT STRING] [OPT <OR FALSE ANY>]>)
writes the entire state of MDL to a file
SEND (OTHER-NAME-1 OTHER-NAME-2 BODY
"OPTIONAL" (TYPE 0) (MY-NAME-1 <UNAME>) (MY-NAME-2 <JNAME>))
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OTHER-NAME-1 OTHER-NAME-2 MY-NAME-1 MY-NAME-2) STRING (TYPE) FIX
(BODY) <OR STRING STORAGE <UVECTOR [REST <PRIMTYPE WORD>]>>)
sends an IPC message (ITS version only)
SEND-WAIT (OTHER-NAME-1 OTHER-NAME-2 BODY
"OPTIONAL" (TYPE 0) (MY-NAME-1 <UNAME>) (MY-NAME-2 <JNAME>))
#DECL ((VALUE) 'T
(OTHER-NAME-1 OTHER-NAME-2 MY-NAME-1 MY-NAME-2) STRING (TYPE) FIX
(BODY) <OR STRING STORAGE <UVECTOR [REST <PRIMTYPE WORD>]>>)
sends an IPC message and waits for it to be received (ITS version only)
SET (ATOM LVAL "OPTIONAL" ENV)
#DECL ((VALUE LVAL) ANY
(ATOM) ATOM (ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
changes the local value of an ATOM
SETG (ATOM GVAL)
#DECL ((VALUE GVAL) ANY
(ATOM) ATOM)
changes (the global value of an ATOM
SETLOC (POINTER OBJECT)
#DECL ((VALUE OBJECT) ANY
(POINTER) LOCATIVE)
changes the contents pointed to by a locative
SIN (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns sine of a number (arithmetic)
SLEEP (<OR FIX FLOAT> "OPTIONAL" (UNHANG <>))
#DECL ((VALUE) ANY
(UNHANG) ANY)
does nothing, interruptibly, the given number of seconds
SNAME ("OPTIONAL" DIRECTORY)
#DECL ((VALUE DIRECTORY) STRING)
sets or returns the directory name used by default for new I/O CHANNELs
SORT (PRED KEY-STRUC "OPTIONAL" (RECORD-LENGTH 1) (KEY-OFFSET 0)
"TUPLE" OTHER-STRUCS-AND-RECORD-LENGTHS)
#DECL ((VALUE KEY-STRUC) <OR <PRIMTYPE VECTOR> <PRIMTYPE TUPLE> <PRIMTYPE UVECTOR>>
(PRED) <OR FALSE APPLICABLE> (RECORD-LENGTH KEY-OFFSET) FIX
(OTHER-STRUCS-AND-RECORD-LENGTHS)
<TUPLE [REST <OR <PRIMTYPE VECTOR> <PRIMTYPE TUPLE> <PRIMTYPE UVECTOR>> FIX]>)
sorts elements of a structure and rearranges other structures
SPECIAL-CHECK ("OPTIONAL" SWITCH)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(SWITCH) <OR ANY FALSE>)
turns interpreter special-checking on or off
SPECIAL-MODE ("OPTIONAL" SWITCH)
#DECL ((VALUE) <OR 'SPECIAL 'UNSPECIAL>
(SWITCH) <OR 'SPECIAL 'UNSPECIAL>)
sets specialty declaration used by default
SPNAME (ATOM)
#DECL ((VALUE) STRING
(ATOM) ATOM)
returns the print-name of an ATOM by sharing it
SQRT (NUMBER)
#DECL ((VALUE) FLOAT
(NUMBER) <OR FIX FLOAT>)
returns square root of a number (arithmetic)
SQUOTA (SYMBOL)
#DECL ((VALUE) <OR FIX '#FALSE ()>
(SYMBOL) <PRIMTYPE WORD>)
gets the address of an internal interpreter symbol (for internal use only)
STACKFORM ("ARGS" ARGS)
#DECL ((VALUE) ANY
(ARGS) LIST)
applies a function to stacked arguments (archaic)
STATE (PROCESS)
#DECL ((VALUE) ATOM
(PROCESS) PROCESS)
returns a PROCESS's current state
STRCOMP (STRING-1 STRING-2)
#DECL ((VALUE) <OR '1 '0 '-1>
(STRING-1 STRING-2) <OR ATOM STRING>)
compares two character-strings or two print-names
STRING ("TUPLE" ELEMENTS)
#DECL ((VALUE) STRING
(ELEMENTS) <TUPLE [REST <OR STRING CHARACTER>]>)
creates a character-string from explicit arguments
STRUCTURED? (OBJECT)
#DECL ((VALUE) <OR 'T '#FALSE ()>
(OBJECT) ANY)
tells whether an object is structured (predicate)
SUBSTITUTE (NEW OLD)
#DECL ((VALUE OLD) ANY
(NEW) ANY)
substitutes one object for another in the entire address space
SUBSTRUC (FROM "OPTIONAL" (REST 0) (AMOUNT <- <LENGTH .OBJECT> .REST>) TO)
#DECL ((VALUE TO) <OR LIST VECTOR UVECTOR STRING BYTES>
(FROM) <OR <PRIMTYPE LIST> <PRIMTYPE VECTOR> <PRIMTYPE TUPLE>
<PRIMTYPE UVECTOR> <PRIMTYPE STRING> <PRIMTYPE BYTES>>
(REST AMOUNT) FIX)
copies (part of) a structure into another
SUICIDE (VAL "OPTIONAL" (PROCESS <RESUMER>))
#DECL ((VALUE) ANY
(VAL) ANY (PROCESS) PROCESS)
causes the current PROCESS to die and resumes another
TAG (LABEL)
#DECL ((VALUE) TAG
(LABEL) ATOM)
creates a TAG for use by GO
TERPRI ("OPTIONAL" (CHANNEL .OUTCHAN))
#DECL ((VALUE) '#FALSE ()
(CHANNEL) CHANNEL)
prints a carriage-return and line-feed via an output CHANNEL
TIME ("TUPLE" IGNORED)
#DECL ((VALUE) FLOAT
(IGNORED) TUPLE)
returns the elapsed execution time in seconds
TOP (STRUCTURE)
#DECL ((VALUE) <OR VECTOR TUPLE UVECTOR STORAGE STRING BYTES TEMPLATE>
(STRUCTURE) <OR <PRIMTYPE VECTOR> <PRIMTYPE TUPLE>
<PRIMTYPE UVECTOR> <PRIMTYPE STORAGE>
<PRIMTYPE STRING> <PRIMTYPE BYTES> <PRIMTYPE TEMPLATE>>)
replaces all elements removed from a non-list structure by RESTing and changes to primitive data type
TTYECHO (CHANNEL SWITCH)
#DECL ((VALUE CHANNEL) CHANNEL
(SWITCH) <OR FALSE ANY>)
turns echoing (of characters typed on a terminal) on or off
TUPLE ("TUPLE" ELEMENTS)
#DECL ((VALUE) TUPLE
(ELEMENTS) TUPLE)
creates a TUPLE from explicit arguments
TYI ("OPTIONAL" CHANNEL)
#DECL ((VALUE) CHARACTER
(CHANNEL) CHANNEL)
inputs a CHARACTER from a terminal immediately
TYPE (OBJECT)
#DECL ((VALUE) ATOM
(OBJECT) ANY)
returns the data type of an object
TYPE-C (TYPE "OPTIONAL" PRIMTYPE)
#DECL ((VALUE) TYPE-C
(TYPE PRIMTYPE) ATOM)
makes a data type code for pure-program use
TYPE-W (TYPE "OPTIONAL" PRIMTYPE RIGHT-HALF)
#DECL ((VALUE) TYPE-W
(TYPE PRIMTYPE) ATOM (RIGHT-HALF) <PRIMTYPE WORD>)
makes a data-type machine word for pure-program use
TYPE? (OBJECT "TUPLE" TYPES)
#DECL ((VALUE) <OR ATOM '#FALSE ()>
(OBJECT) ANY (TYPES) <TUPLE ATOM [REST ATOM]>)
tells whether an object's data type is one of the given types (predicate)
TYPEPRIM (TYPE)
#DECL ((VALUE) ATOM
(TYPE) ATOM)
returns a data type's primitive type
UNAME ()
#DECL ((VALUE) STRING)
returns the "user name" of MDL's process
UNASSIGN (ATOM "OPTIONAL" ENV)
#DECL ((VALUE ATOM) ATOM
(ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
causes an ATOM to have no local value
UNMANIFEST ("TUPLE" ATOMS)
#DECL ((VALUE) 'T
(ATOMS) <TUPLE [REST ATOM]>)
declares the global values of ATOMs not to be constants
UNPARSE (OBJECT "OPTIONAL" RADIX)
#DECL ((VALUE) STRING
(OBJECT) ANY (RADIX) FIX)
creates a STRING representation of an object
UNWIND ('NORMAL 'CLEAN-UP)
#DECL ((VALUE) ANY
(NORMAL CLEAN-UP) ANY)
specifies cleaning-up during non-local return
UTYPE (UVECTOR)
#DECL ((VALUE) ATOM
(UVECTOR) <PRIMTYPE UVECTOR>)
returns the data type of all elements of a uniform vector
UVECTOR ("TUPLE" ELEMENTS)
#DECL ((VALUE) UVECTOR
(ELEMENTS) TUPLE)
creates a UVECTOR from explicit arguments
VALID-TYPE? (TYPE)
#DECL ((VALUE) <OR TYPE-C '#FALSE ()>
(TYPE) ATOM)
tells whether an ATOM is the name of a type (predicate)
VALRET (MESSAGE)
#DECL ((VALUE) '#FALSE ()
(MESSAGE) <OR STRING FIX>)
passes a message to the superior operating-system process
VALUE (ATOM "OPTIONAL" ENV)
#DECL ((VALUE) ANY
(ATOM) ATOM (ENV) <OR FRAME ENVIRONMENT ACTIVATION PROCESS>)
returns the local or else the global value of an ATOM
VECTOR ("TUPLE" ELEMENTS)
#DECL ((VALUE) VECTOR
(ELEMENTS) TUPLE)
creates a VECTOR from explicit arguments
XJNAME ()
#DECL ((VALUE) STRING)
returns the "intended job name" of MDL's process
XORB ("TUPLE" WORDS)
#DECL ((VALUE) WORD
(WORDS) <TUPLE [REST <PRIMTYPE WORD>]>)
computes bitwise exclusive "or" of machine word:
XUNAME ()
#DECL ((VALUE) STRING)
returns the "intended user name" of MDL's process