The Revised Maclisp ManualThe PitmanualPage A-26
Published by HyperMeta Inc.
 
Prev | Index | Next
[Blue Marble]
Climate Change
By what date must we act?


Internal System Functions

Extend Support

Maclisp has some support for extended datatypes. It was added in order to implement the initial support for the NIL language. It is not yet documented in this draft of the manual. Don't bother looking. This page is mostly just random bits of useful trivia for those who happen to already know about extends.


USRHUNKStatus Option(STATUS USRHUNK)

[PDP-10 Only] Returns a function which specifies the “user hunk” predicate, which determines whether to “hook into” a user-provided definition for some system facility, or to treat the data strictly as a hunk. If no such function exists, returns NIL.


USRHUNKSStatus Option(SSTATUS USRHUNK fn)

[PDP-10 Only] Used to enable fn as a “user hunk” predicate unless fn is NIL, in which case the “user hunk” feature is disabled instead. See (STATUS USRHUNK).


CALLIStatus Option(STATUS CALLI)

[PDP-10 Only] Returns the call intepreter function, a “transfer function” to be used when a “user hunk” is FUNCALL'd or NIL if no such call interpreter exists. The function, when it exists, behaves as a substitute for the IAPPLY internal Lisp routine.


CALLISStatus Option(SSTATUS CALLI fn)

[PDP-10 Only] Sets the Maclisp call interpreter to be a given fn. It is probably not possible to write the fn in Maclisp; typically, it is a hand-coded LAP function.


SENDIStatus Option(STATUS SENDI)

[PDP-10 Only] Returns the currently active SEND interpreter, a function which is invoked in order to send a message to a “user hunk.” When a hunk which passes the USRHUNK test is given as an argument to any of EQUAL, SUBST, PURCOPY, EVAL, PRINT, EXPLODE, FLATSIZE, ALPHALESSP, SAMEPNAMEP, NAMESTRING, SXHASH or some out-of-core functions such as GFLATSIZE, SPRINT, USERATOMS-HOOK, DESCRIBE, or WHICH-OPERATIONS.


SENDISStatus Option(SSTATUS SENDI fn)

[PDP-10 Only] Sets the SEND interpreter function returned by (STATUS SENDI).


VECTORStatus Option(STATUS VECTOR)

[PDP-10 Only] Returns a list of the functions set up by a call to (SSTATUS VECTOR ...) or NIL if no such functions are active.


VECTORSStatus Option(SSTATUS VECTOR fns)

[PDP-10 Only] Specifies the functions, fns, which can be used by LEXPR-FUNCALL to recognize and destructure vectors by LEXPR-FUNCALL. The list, fns, should have the format

(vectorp vectorlength vref)

where all elements are SUBR pointers (not symbols, lambda expressions, or even LSUBR pointers). The vectorp function should be a one argument predicate which returns true for vector things; vectorlength should be a function which returns the length of a vector which is its only argument; and vref should be a function of 2 arguments, a vector and an index, and returns an element of that vector.

(SSTATUS VECTOR NIL) disables a previous call to (SSTATUS VECTOR ...).

Read-Eval-Print Internal Subroutines


*-READ-EVAL-PRINTFunction(*-READ-EVAL-PRINT)

[PDP-10 Only] This function performs the READ part of each cycle through the read-eval-print-loop. The value it returns is passed on to the next phase of the loop (the READ-*-EVAL-PRINT hook if not NIL, or the READ-*-EVAL-PRINT function otherwise).


READ-*-EVAL-PRINTFunction(READ-*-EVAL-PRINT form)

[PDP-10 Only] This function performs the EVAL part of each cycle through the read-eval-print-loop. It receives a form to be EVAL'd and the value it returns is passed on to the next phase of the loop (the READ-EVAL-*-PRINT hook if if not NIL, or the READ-EVAL-*-PRINT function otherwise).


READ-EVAL-*-PRINTFunction(READ-EVAL-*-PRINT form)

[PDP-10 Only] This function performs the PRINT part of each cycle through the read-eval-print-loop. It receives a form to be PRINT'd and the value it returns is passed on to the next phase of the loop (the READ-EVAL-PRINT-* hook if not NIL, or the READ-EVAL-PRINT-* function otherwise).


READ-EVAL-PRINT-*Function(READ-EVAL-PRINT-*)

[PDP-10 Only] This function performs the trailing part of each cycle through the read-eval-print-loop. It types a carriage return. Its return value is not used by the system and is therefore not defined.

Functions Referenced by Compiled Code

The functions in this section are generated by the compiler automatically when necessary. They should not be referred to in user code. They are documented here primarily for the sake of those trying to debug compiled code.


*APPLYFunction(*APPLY f l)

[PDP-10 Only] The simple (two argument) case of APPLY.


*EVALFunction(*EVAL expression)

[PDP-10 Only] The simple (one argument) case of EVAL.


*APPENDFunction(*APPEND l1 l2)

[PDP-10 Only] The simple (two argument) case of APPEND.


*NCONCFunction(*NCONC l1 l2)

[PDP-10 Only] The simple (two argument) case of NCONC.

Definition:

(DEFUN *NCONC (L1 L2)
  (COND ((NULL L1) L2)
        (T (RPLACD (LAST L1) L2)
           L2)))

*DELETEFunction(*DELETE object l)

[PDP-10 Only] The simple (two argument) case of DELETE.

Definition:

(DEFUN *DELETE (OBJ LIST)
  (COND ((NULL LIST) NIL)
        ((ATOM LIST)
         (ERROR '|ARGUMENT MUST BE A PROPER LIST| LIST))
        ((EQUAL OBJ (CAR LIST))
         (*DELETE OBJ (CDR LIST)))
        (T (RPLACD LIST (*DELETE OBJ (CDR LIST)))
           LIST)))

*DELQFunction(*DELQ object l)

[PDP-10 Only] The simple (two argument) case of DELQ. Like *DELETE but uses EQ instead of EQUAL.


*PRIN1Function(*PRIN1 value)

[PDP-10 Only] The simple (one argument) case of PRIN1.


*PRINCFunction(*PRINC value)

[PDP-10 Only] The simple (one argument) case of PRINC.


*PRINTFunction(*PRINT value)

[PDP-10 Only] The simple (one argument) case of PRINT.


*TERPRIFunction(*TERPRI)

[PDP-10 Only] The simple (no argument) case of TERPRI.


*TYOFunction(*TYO char)

[PDP-10 Only] The simple (one argument) case of TYO.


*READFunction(*READ)

[PDP-10 Only] The simple (no argument) case of READ.


*READCHFunction(*READCH)

[PDP-10 Only] The simple (no argument) case of READCH.


*TYIFunction(*TYI)

[PDP-10 Only] The simple (no argument) case of TYI.


*PLUSFunction(*PLUS n1 n2)

[PDP-10 Only] The simple (two argument) case of PLUS.


*TIMESFunction(*TIMES n1 n2)

[PDP-10 Only] The simple (two argument) case of TIMES.


*DIFFunction(*DIF n1 n2)

The simple (two argument) case of DIFFERENCE.


*QUOFunction(*QUO n1 n2)

The simple (two argument) case of QUOTIENT.


*LESSFunction(*LESS n1 n2)

[PDP-10 Only] The simple (two argument) case of LESSP.


*GREATFunction(*GREAT n1 n2)

[PDP-10 Only] The simple (two argument) case of GREATERP.

Initial Condition Handlers


+INTERNAL-AUTOLOADFunction(+INTERNAL-AUTOLOAD exp)

exp must be of the form (fn . filespec ). Loads filespec, which must be a namelist or namestring. This is the initial handler for the Lisp autoloading facility (see AUTOLOAD).

In these handlers, the datum argument, is a list whose car is the offending datum. The handler will create a Lisp breakpoint (see *BREAK) and the variable ARGS will be bound to the handler's argument.


+INTERNAL-*RSET-BREAKFunction(+INTERNAL-*RSET-BREAK datum)

This is the initial handler for *RSET-TRAP.


+INTERNAL-FAC-BREAKFunction(+INTERNAL-FAC-BREAK datum)

Default handler for Lisp's FAIL-ACT error breaks.


+INTERNAL-GCL-BREAKFunction(+INTERNAL-GCL-BREAK datum)

This is the default handler for GC-LOSSAGE.


+INTERNAL-GCO-BREAKFunction(+INTERNAL-GCO-BREAK datum)

This is the default handler for GC-OVERFLOW.


+INTERNAL-IOL-BREAKFunction(+INTERNAL-IOL-BREAK datum)

[PDP-10 Only] This is the default handler for IO-LOSSAGE.


+INTERNAL-PDL-BREAKFunction(+INTERNAL-PDL-BREAK datum)

This is the default handler for PDL overflows.


+INTERNAL-UBV-BREAKFunction(+INTERNAL-UBV-BREAK datum)

This is the default handler for an UNBND-VRBL condition.


+INTERNAL-UDF-BREAKFunction(+INTERNAL-UDF-BREAK datum)

Like +INTERNAL-UBV-BREAK only for undefined functions.

This is the default handler for a UNDF-FNCTN condition.


+INTERNAL-UGT-BREAKFunction(+INTERNAL-UGT-BREAK datum)

The default value of the variable UNSEEN-GO-TAG.


+INTERNAL-WNA-BREAKFunction(+INTERNAL-WNA-BREAK datum)

The default value of the variable WRNG-NO-ARGS.


+INTERNAL-WTA-BREAKFunction(+INTERNAL-WTA-BREAK datum)

The default value of the variable WRNG-TYPE-ARG

Exception Handlers


+INTERNAL-TTY-ENDPAGEFNFunction(+INTERNAL-TTY-ENDPAGEFN file)

This is a system provided function which will type ##MORE## on file, which should be a file object open for output. This function will not return until the user types a space on the device which is ttycons of given file.

This is the default ENDPAGEFN for the default tty output file object which is the initial value of TYO.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-INCLUDE-EOFFNFunction(+INTERNAL-INCLUDE-EOFFN ...???...)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-UREAD-EOFFNFunction(+INTERNAL-UREAD-EOFFN ...???...)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

LISP Internals


+INTERNAL-TTYSCAN-SUBRFunction(+INTERNAL-TTYSCAN-SUBR ...???...)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


QMARKFunction(QMARK)

This function returns the symbol "?". It should not be relied upon at all. It is a crock that is used by a certain aspect of Lisp internals. Users should pretend it isn't there. Its continued existence is not guaranteed.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


SYMBOLSValueNIL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

The MACAID Package


|constant-p/||Function(|constant-p/|| ...???...)

Autoloads from file: LISP;MACAID FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|no-funp/||Function(|no-funp/|| ...???...)

Autoloads from file: LISP;MACAID FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|side-effectsp/||Function(|side-effectsp/|| ...???...)

Autoloads from file: LISP;MACAID FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|carcdrp/||Function(|carcdrp/|| ...???...)

Autoloads from file: LISP;MACAID FASL

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|carcdrp/||ValueT

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


FLATTEN-SYMSFunction(FLATTEN-SYMS ...???...)

Autoloads from file: LISP;MACAID FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|Certify-no-var-dependency/||Function(|Certify-no-var-dependency/|| ...???...)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-CARCDRPFunction(+INTERNAL-CARCDRP symbol)

For system use only. Returns a fixnum saying if the thing is a C....R name (no more than 4 a's or d's) or -1 if it's not.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-DUP-PFunction(+INTERNAL-DUP-P ...???...)

Autoloads from file: LISP;MACAID FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

Vectors


|defvst-construction/||Function(|defvst-construction/|| ...???...)

Autoloads from file: LISP;DEFVST FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|defvst-typchk/||Function(|defvst-typchk/|| ...???...)

Autoloads from file: LISP;DEFVST FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


STRUCT-TYPEPFunction(STRUCT-TYPEP ...???...)

Autoloads from file: LISP;DEFVST FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

Initial Read Character Macros


+INTERNAL-/'-MACROFunction(+INTERNAL-/'-MACRO)

This is a readcharacter macro initially on singlequote. It wraps a QUOTE around the next form.

Definition:

(DEFUN +INTERNAL-/'-MACRO () (LIST 'QUOTE (READ)))

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-/|-MACROFunction(+INTERNAL-/|-MACRO)

This is the default reader macro for the vertical-bar character, “|”. It could have been enabled by doing (SSTATUS MACRO /| '+INTERNAL-/|-MACRO).

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-/;-MACROFunction(+INTERNAL-/;-MACRO)

This is a splicing macro which reads characters until a carriage return and returns NIL (meaning no forms are to be inserted into the object currently being assembled). Thus, it implements Lisp's comment character.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-/"-MACROFunction(+INTERNAL-/"-MACRO)

This is a readcharacter macro which is designed to be placed on the doublequote character. (It is not initially on for reasons of compatibility with old code that would not expect it). The macro is like +INTERNAL-/|-MACRO except that the token read is MAKNAM'd and SETQ'd to itself to give the illusion of a string.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-/#-MACROFunction(+INTERNAL-/#-MACRO)

Autoloads from file: LISP;SHARPM FASL

This is a readcharacter macro for use in various # syntaxes.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

Note well that, unlike Common Lisp, many MACLISP syntaxes print with a leading “#” without any intent of being rereadable. For example, an object representing an open file might print as #FILE-IN-|DSK:FOO;BAR 259|-70766 and yet there is no #F dispatch sequence defined, and a type T array object might print as #T-100-70720 and yet there is no #T. There is a #N syntax, but it is not related to notations like #NIL-100-71720 for printing type #NIL array objects.


|+INTERNAL-`-macro/||Function(|+INTERNAL-`-macro/||)

Autoloads from file: LISP;BACKQ FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|+INTERNAL-,-macro/||Function(|+INTERNAL-,-macro/||)

Autoloads from file: LISP;BACKQ FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

Control Characters


+INTERNAL-^B-BREAKFunction(+INTERNAL-^B-BREAK input-stream character)

This is the default handler for Control-B interrupts. It could have been enabled by doing (SSTATUS TTYINT 2. '+INTERNAL-^B-BREAK). It, like all tty interrupt handlers, receives two arguments. The file object upon which the interrupt was received (nearly always TYI) and the ascii value of the character which was typed to invoke the interrupt (in this case, 2, but there is no reason that the break can't be put on another key in which case it is possible to determine what key was actually typed).

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-^Q-MACROFunction(+INTERNAL-^Q-MACRO)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-^S-MACROFunction(+INTERNAL-^S-MACRO)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

Backquote Internals

The functions in this section are for internal use only and are not intended for any kind of normal programming. However, you might see occasional references to these in things that get typed out to you, so it's potentially useful to know what they are about.


|+INTERNAL-`-grindmacros/||Function(|+INTERNAL-`-grindmacros/||)

Autoloads from file: LISP;GRINDE FASL

???


|`,./||Special Form(|`,./|| . form)

Autoloads from file: LISP;BACKQ FASL

Representation for backquote's ",." syntax.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|`,@/||Special Form(|`,@/|| . form)

Autoloads from file: LISP;BACKQ FASL

Representation for backquote's ",@" syntax.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|`,/||Special Form(|`,/|| . form)

Autoloads from file: LISP;BACKQ FASL

Representation for backquote's "," syntax

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|`-,-level/||Value0

Used by ` to count the number of , levels that READ is in so that it can tell if a comma has been seen which did not have an associated backquote.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|`-expander/||Special Form(|`-expander/|| . form)

Autoloads from file: LISP;BACKQ FASL

Representation for backquotes "`" syntax.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|`-expander/| MACRO|Function(|`-expander/| MACRO| bqform)

Autoloads from file: LISP;BACKQ FASL

SUBR form of |`-expander/||.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


|+INTERNAL-macro-loser/||Function(|+INTERNAL-macro-loser/|| form)

Autoloads from file: LISP;BACKQ FASL

SUBR form of |`,@/|| and |`,./|| and |`,/||

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


CREATE-JOBFunction(CREATE-JOB ...???...)

Autoloads from file: LISP;HUMBLE FASL

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.

Midas and Lap


SQOZ/|Function(SQOZ/| ...???...)

???

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


GETMIDASOPFunction(GETMIDASOP ...???...)

Autoloads from file: LISP;GETMID FASL

???

Note:

This looks a lot like the arg is something like a symbol and that it will return the numeric value of that PDP-10 opcode.

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


LAPSpecial Form(LAP fname fprop)

Autoloads from file: LISP;LAP FASL

Reads a series of LAP (Lisp Assembly Program) expressions representing a function definition and installs the corresponding expression in memory for immediate use. The series of expressions is terminated by a NIL.

(lap foo lsubr)
;Loading LAP 110
;Loading GETMIDASOP 17
(args foo (0 . 0))
(setz a)
(popj p)
nil

=> (127300 (FOO LSUBR 127276))
(foo)
=> NIL

See also: LAP-A-LIST

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


LAP-A-LISTFunction(LAP-A-LIST l)

Autoloads from file: LISP;LAP FASL

Given a list of LAP (Lisp Assembly Program) expressions, does what the LAP program would do if those same expressions were fed to LAP as input expressions.

This function is also used by LAP after it builds a list of the user's input.

(lap-a-list '((lap foo lsubr)
              (args foo (0 . 0))
              (setz a)
              (popj p)
              nil))
;Loading LAP 110
;Loading GETMIDASOP 17
=> (127300 (FOO LSUBR 127276))
(foo)
=> NIL

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


+INTERNAL-LOSSAGEFunction(+INTERNAL-LOSSAGE id fn datum)

Used for signalling unexpected conditions or incompleteness of code in a system function. fn is the name of the function which signals the error. id is an identifier label, in case there is more than one call to +INTERNAL-LOSSAGE in the function. The datum is any information about the lossage which will be helpful to the implementor later when he sees the bug report.

    
(+INTERNAL-LOSSAGE NIL 'SI:INVALIDATED X) ;X is bound to the symbol LIST
;System error, or system code incomplete: Id 'NIL' in function SI:INVALIDATED.
;    Losing datum is: LIST
;+INTERNAL-LOSSAGE (NIL SI:INVALIDATED LIST)

;BKPT FAIL-ACT

Web-Only Note:

This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.


[Blue Marble]
Climate Change
Can we really wait decades before we act?

The Revised Maclisp Manual (Sunday Morning Edition)
Published Sunday, December 16, 2007 06:17am EST, and updated Sunday, July 6, 2008.
Prev | Index | Next