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.
[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 .
[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.
[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 .
[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
[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).
[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).
[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).
[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.
[PDP-10 Only] The simple (two argument) case of APPLY .
[PDP-10 Only] The simple (one argument) case of EVAL .
[PDP-10 Only] The simple (two argument) case of APPEND .
[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)))
[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 )))
[PDP-10 Only] The simple (one argument) case of PRIN1 .
[PDP-10 Only] The simple (one argument) case of PRINC .
[PDP-10 Only] The simple (one argument) case of PRINT .
[PDP-10 Only] The simple (no argument) case of TERPRI .
[PDP-10 Only] The simple (one argument) case of TYO .
[PDP-10 Only] The simple (no argument) case of READ .
[PDP-10 Only] The simple (no argument) case of READCH .
[PDP-10 Only] The simple (no argument) case of TYI .
[PDP-10 Only] The simple (two argument) case of PLUS .
[PDP-10 Only] The simple (two argument) case of TIMES .
The simple (two argument) case of DIFFERENCE .
The simple (two argument) case of QUOTIENT .
[PDP-10 Only] The simple (two argument) case of LESSP .
[PDP-10 Only] The simple (two argument) case of GREATERP .
Initial Condition Handlers
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.
This is the initial handler for *RSET-TRAP .
Default handler for Lisp's FAIL-ACT error breaks.
This is the default handler for GC-LOSSAGE .
This is the default handler for GC-OVERFLOW .
[PDP-10 Only] This is the default handler for IO-LOSSAGE .
This is the default handler for PDL overflows.
This is the default handler for an UNBND-VRBL condition.
Like +INTERNAL-UBV-BREAK only for undefined functions.
This is the default handler for a UNDF-FNCTN condition.
The default value of the variable UNSEEN-GO-TAG .
The default value of the variable WRNG-NO-ARGS .
The default value of the variable WRNG-TYPE-ARG
Exception Handlers
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.
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
LISP Internals
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
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.
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
The MACAID Package
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.
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.
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.
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.
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
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.
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
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.
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
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.
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.
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
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.
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.
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.
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.
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.
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
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.
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
???
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.
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.
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.
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.
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.
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.
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.
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.
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
???
Web-Only Note:
This entry had been suppressed for the original hardcopy edition. It is included here for indexing completeness.
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.
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.
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.
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.