295 lines
116 KiB
Plaintext
295 lines
116 KiB
Plaintext
Copyright (c) 1986 Xerox Corporation. All rights reserved.
|
||
|
||
2
|
||
|
||
14.10 Error List
|
||
1
|
||
|
||
There are currently fifty-plus types of errors in the Interlisp system. Some of these errors are implementation dependent, i.e., appear in Interlisp-D but may not appear in other Interlisp systems. The error number is set internally by the code that detects the error before it calls the error handling functions. It is also the value returned by ERRORN if called subsequent to that type of error, and is used by ERRORMESS for printing the error message.
|
||
Most errors will print the offending expression following the message, e.g., NON-NUMERIC ARG NIL is very common. Error number 18 (control-B) always causes a break (unless HELPFLAG is NIL). All other errors cause breaks if BREAKCHECK returns T (see ("WhenToBreak" . TAG)).
|
||
The errors are listed below by error number:
|
||
0 SYSTEM ERROR
|
||
Low-level Interlisp system error. It is quite possible that random programs or data structures might have already been smashed. Unless he is sure he knows what the problem is, the user is best advised to save any important information, and reload the Interlisp system as soon as possible.
|
||
1 No longer used.
|
||
2 STACK OVERFLOW
|
||
Occurs when computation is too deep, either with respect to number of function calls, or number of variable bindings. Usually because of a non-terminating recursive computation, i.e., a bug.
|
||
3 ILLEGAL RETURN
|
||
Call to RETURN when not inside of an interpreted PROG.
|
||
4 ARG NOT LIST
|
||
RPLACA called on a non-list.
|
||
5 HARD DISK ERROR
|
||
An error with the local disk drive.
|
||
6 ATTEMPT TO SET NIL
|
||
Via SET or SETQ
|
||
7 ATTEMPT TO RPLAC NIL
|
||
Attempt either to RPLACA or to RPLACD NIL with something other than NIL.
|
||
8 UNDEFINED OR ILLEGAL GO
|
||
GO when not inside of a PROG, or GO to nonexistent label.
|
||
9 FILE WON'T OPEN
|
||
From OPENSTREAM (("OPENSTREAM" . Function)).
|
||
10 NON-NUMERIC ARG
|
||
A numeric function e.g., PLUS, TIMES, GREATERP, expected a number.
|
||
11 ATOM TOO LONG
|
||
Attempted to create a litatom (via PACK, or typing one in, or reading from a file) with too many characters. In Interlisp-D, the maximum number of characters in a litatom is 255.
|
||
12 ATOM HASH TABLE FULL
|
||
No room for any more (new) atoms.
|
||
13 FILE NOT OPEN
|
||
From an I/O function, e.g., READ, PRINT, CLOSEF.
|
||
14 ARG NOT LITATOM
|
||
SETQ, PUTPROP, GETTOPVAL, etc., given a non-atomic arg.
|
||
15 TOO MANY FILES OPEN
|
||
16 END OF FILE
|
||
From an input function, e.g., READ, READC, RATOM. After the error occurs, the file will still be left open.
|
||
Note: It is possible to use an ERRORTYPELST entry (("ERRORTYPELST" . Variable)) to return a character as the value of the call to ERRORX, and the program will continue, e.g. returning "]" may be used to complete a read operation.
|
||
17 ERROR
|
||
Call to ERROR (("ERROR" . Function)).
|
||
18 BREAK
|
||
Control-B was typed.
|
||
19 ILLEGAL STACK ARG
|
||
A stack function expected a stack position and was given something else. This might occur if the arguments to a stack function are reversed. Also occurs if user specified a stack position with a function name, and that function was not found on the stack. See ("STACK" . TAG).
|
||
20 FAULT IN EVAL
|
||
Artifact of bootstrap process. Never occurs after FAULTEVAL is defined.
|
||
21 ARRAYS FULL
|
||
System will first initiate a garbage collection of array space, and if no array space is reclaimed, will then generate this error.
|
||
22 FILE SYSTEM RESOURCES EXCEEDED
|
||
Includes no more disk space, disk quota exceeded, directory full,etc.
|
||
23 FILE NOT FOUND
|
||
File name does not correspond to a file in the corresponding directory. Can also occur if file name is ambiguous.
|
||
Interlisp is initialized with an entry on ERRORTYPELST (("ERRORTYPELST" . Variable)) to call SPELLFILE for this error. SPELLFILE will search alternate directories or perform spelling correction on the connected directory. If SPELLFILE fails, then the user will see this error.
|
||
24 BAD SYSOUT FILE
|
||
Date does not agree with date of MAKESYS, or file is not a sysout file at all (see ("SYSOUT" . Function)).
|
||
25 UNUSUAL CDR ARG LIST
|
||
A form ends in a non-list other than NIL, e.g., (CONS T . 3).
|
||
26 HASH TABLE FULL
|
||
See hash array functions, ("Hash Arrays" . TERM).
|
||
27 ILLEGAL ARG
|
||
Catch-all error. Currently used by PUTD, EVALA, ARG, FUNARG, etc.
|
||
28 ARG NOT ARRAY
|
||
ELT or SETA given an argument that is not a legal array (see ("ELT" . Function)).
|
||
29 ILLEGAL OR IMPOSSIBLE BLOCK
|
||
(Interlisp-10) Not enough free blocks available (from GETBLK or RELBLK).
|
||
30 STACK PTR HAS BEEN RELEASED
|
||
A released stack pointer was supplied as a stack descriptor for a purpose other than as a stack pointer to be re-used (see ("Reusing Stack Pointers" . TERM)).
|
||
31 STORAGE FULL
|
||
Following a garbage collection, if not enough words have been collected, and there is no un-allocated space left in the system, this error is generated.
|
||
32 ATTEMPT TO USE ITEM OF INCORRECT TYPE
|
||
Before a field of a user data type is changed, the type of the item is first checked to be sure that it is the expected type. If not, this error is generated (see ("User Data Types" . TERM)).
|
||
33 ILLEGAL DATA TYPE NUMBER
|
||
The argument is not a valid user data type number (see ("User Data Types" . TERM)).
|
||
34 DATA TYPES FULL
|
||
All available user data types have been allocated (see ("User Data Types" . TERM)).
|
||
35 ATTEMPT TO BIND NIL OR T
|
||
In a PROG or LAMBDA expression.
|
||
36 TOO MANY USER INTERRUPT CHARACTERS
|
||
Attempt to enable a user interrupt character when all user channels are currently enabled (see ("User Interrupt Characters" . TERM)).
|
||
37 READ-MACRO CONTEXT ERROR
|
||
(Interlisp-10 only) Occurs when a READ is executed from within a read macro function and the next token is a ) or a ] (see ("ReadMacros" . TAG)).
|
||
38 ILLEGAL READTABLE
|
||
The argument was expected to be a valid read table (see ("ReadTables" . TAG)).
|
||
39 ILLEGAL TERMINAL TABLE
|
||
The argument was expected to be a valid terminal table (see ("TerminalTables" . TAG)).
|
||
40 SWAPBLOCK TOO BIG FOR BUFFER
|
||
(Interlisp-10) An attempt was made to swap in a function/array which is too large for the swapping buffer.
|
||
41 PROTECTION VIOLATION
|
||
Attempt to open a file that user does not have access to. Also reference to unassigned device.
|
||
42 BAD FILE NAME
|
||
Illegal character in file specification, illegal syntax, e.g. two ;'s etc.
|
||
43 USER BREAK
|
||
Error corresponding to user interrupt character. See ("User Interrupt Characters" . TERM).
|
||
44 UNBOUND ATOM
|
||
This occurs when a variable (litatom) was used which had neither a stack binding (wasn't an argument to a function nor a PROG variable) nor a top level value. The "culprit" ((CADR ERRORMESS)) is the litatom. Note that if DWIM corrects the error, no error occurs and the error number is not set. However, if an error is going to occur, whether or not it will cause a break, the error number will be set.
|
||
45 UNDEFINED CAR OF FORM
|
||
Undefined function error. This occurs when a form is evaluated whose function position (CAR) does not have a definition as a function. Culprit is the form.
|
||
46 UNDEFINED FUNCTION
|
||
This error is generated if APPLY is given an undefined function. Culprit is (LIST FN ARGS)
|
||
47 CONTROL-E
|
||
The user typed control-E.
|
||
48 FLOATING UNDERFLOW
|
||
Underflow during floating-point operation.
|
||
49 FLOATING OVERFLOW
|
||
Overflow during floating-point operation.
|
||
50 OVERFLOW
|
||
Overflow during integer operation.
|
||
51 ARG NOT HARRAY
|
||
Hash array operations given an argument that is not a hash array.
|
||
52 TOO MANY ARGUMENTS
|
||
Too many arguments given to a lambda-spread, lambda-nospread, or nlambda-spread function.
|
||
Note that Interlisp-D does not cause an error if more arguments are passed to a function than it is defined with. This argument occurs when more individual arguments are passed to a function than Interlisp-D can store on the stack at once. The limit is currently 80 arguments.
|
||
In addition, many system functions, e.g., DEFINE, ARGLIST, ADVISE, LOG, EXPT, etc, also generate errors with appropriate messages by calling ERROR (see ("ERROR" . Function)) which causes error number 17.
|
||
|