{Begin SubSec Compiler Error Messages} {Title Compiler Error Messages} {Text {Tag CompilerErrors} {index *PRIMARY* Compiler error messages} {index *PRIMARY* Errors messages from compiler} Messages describing errors in the function being compiled are also printed on the terminal. These messages are always preceded by {index ***** (in compiler error messages)}{lisp *****}. Unless otherwise indicated below, the compilation will continue. {Begin LabeledList Compiler Error Messages} {Label {lisp ({arg FN} NOT ON FILE, COMPILING IN CORE DEFINITION)}{index *PRIMARY* NOT IN FILE - USING DEFINITION IN CORE Error} } {Label } {Text From calls to {fn BCOMPL} and {fn BRECOMPILE}. } {Label {lisp ({arg FN} NOT COMPILEABLE)}{index *PRIMARY* NOT COMPILEABLE Error} } {Text An {lisp EXPR} definition for {arg FN} could not be found. In this case, no code is produced for {arg FN}, and the compiler proceeds to the next function to be compiled, if any. } {Label {lisp ({arg FN} NOT FOUND)}{index *PRIMARY* NOT FOUND Error} } {Text Occurs when {fn RECOMPILE} or {fn BRECOMPILE} try to copy the compiled definition of {arg FN} from {arg CFILE}, and cannot find it. In this case, no code is copied and the compiler proceeds to the next function to be compiled, if any. } {Label {lisp ({arg FN} NOT ON BLKFNS)}{index *PRIMARY* NOT ON BLKFNS Error} } {Text {arg FN} was specified as an entry to a block, or else was on {var BLKAPPLYFNS}, but did not appear on the {arg BLKFNS}. In this case, no code is produced for the entire block and the compiler proceeds to the next function to be compiled, if any. } {Label {lisp ({arg FN} CAN'T BE BOTH AN ENTRY AND THE BLOCK NAME)}{index *PRIMARY* CAN'T BE BOTH AN ENTRY AND THE BLOCK NAME Error} } {Label} {Text In this case, no code is produced for the entire block and the compiler proceeds to the next function to be compiled, if any. } {Label {lisp ({arg BLKNAME} - USED BLKAPPLY WHEN NOT APPLICABLE)}{index *PRIMARY* USED BLKAPPLY WHEN NOT APPLICABLE Error} } {Label} {Text {fn BLKAPPLY} is used in the block {arg BLKNAME}, but there are no {var BLKAPPLYFNS} or {var ENTRIES} declared for the block. } {Label {lisp ({arg VAR} SHOULD BE A SPECVAR - USED FREELY BY} {arg FN}){index *PRIMARY* SHOULD BE A SPECVAR Error} } {Label} {Text While compiling a block, the compiler has already generated code to bind {arg VAR} as a {lisp LOCALVAR}, but now discovers that {arg FN} uses {arg VAR} freely. {arg VAR} should be declared a {lisp SPECVAR} and the block recompiled. } {Label {lisp ((* --) COMMENT USED FOR VALUE)}{index *PRIMARY* COMMENT USED FOR VALUE Error} } {Text A comment appears in a context where its value is being used, e.g. {lisp (LIST X (* --) Y)}. The compiled function will run, but the value at the point where the comment was used is undefined. } {Label {lisp (({arg FORM}) - NON-ATOMIC CAR OF FORM)}{index *PRIMARY* NON-ATOMIC CAR OF FORM Error} } {Text If user intended to treat the value of {arg FORM} as a function, he should use {fn APPLY*} ({PageRef Fn APPLY*}). {arg FORM} is compiled as if {fn APPLY*} had been used. } {Label {lisp ((SETQ {arg VAR} {arg EXPR} --) BAD SETQ)}{index *PRIMARY* BAD SETQ Error} } {Text {fn SETQ} of more than two arguments. } {Label {lisp ({arg FN} - USED AS ARG TO NUMBER FN?)}{index *PRIMARY* USED AS ARG TO NUMBER FN? Error} } {Text The value of a predicate, such as {lisp GREATERP} or {lisp EQ}, is used as an argument to a function that expects numbers, such as {lisp IPLUS}. } {Label {lisp ({arg FN} - NO LONGER INTERPRETED AS FUNCTIONAL ARGUMENT)}{index NO LONGER INTERPRETED AS FUNCTIONAL ARGUMENT Error} } {Label} {Text The compiler has assumed {arg FN} is the name of a function. If the user intended to treat the {it value} of {arg FN} as a function, {fn APPLY*} ({PageRef Fn APPLY*}) should be used. This message is printed when {arg FN} is not defined, and is also a local variable of the function being compiled. } {Label {lisp ({arg FN} - ILLEGAL RETURN)}{index *PRIMARY* ILLEGAL RETURN Error} } {Text {fn RETURN} encountered when not in {fn PROG}. } {Label {lisp ({arg TG} - ILLEGAL GO)}{index *PRIMARY* ILLEGAL GO Error} } {Text {fn GO} encountered when not in a {fn PROG}. } {Label {lisp ({arg TG} - MULTIPLY DEFINED TAG)}{index *PRIMARY* MULTIPLY DEFINED TAG Error} } {Text {arg TG} is a {lisp PROG} label that is defined more than once in a single {lisp PROG}. The second definition is ignored. } {Label {lisp ({arg TG} - UNDEFINED TAG)}{index *PRIMARY* UNDEFINED TAG Error} } {Text {arg TG} is a {lisp PROG} label that is referenced but not defined in a {lisp PROG}. } {Label {lisp ({arg VAR} - NOT A BINDABLE VARIABLE)}{index *PRIMARY* NOT A BINDABLE VARIABLE Error} } {Text {arg VAR} is {lisp NIL}, {lisp T}, or else not a literal atom. } {Label {lisp ({arg VAR} {arg VAL} -- BAD PROG BINDING)}{index *PRIMARY* BAD PROG BINDING Error} } {Text Occurs when there is a prog binding of the form {lisp ({arg VAR} {arg VAL{sub 1}} {ellipsis} {arg VAL{sub N}})}. } {Label {lisp ({arg TG} - MULTIPLY DEFINED TAG, LAP)}{index *PRIMARY* MULTIPLY DEFINED TAG, LAP Error} } {Text {arg TG} is a label that was encountered twice during the second pass of the compilation. If this error occurs with no indication of a multiply defined tag during pass one, the tag is in a LAP macro. } {Label {lisp ({arg TG} - UNDEFINED TAG, LAP)}{index *PRIMARY* UNDEFINED TAG, LAP Error} } {Text {arg TG} is a label that is referenced during the second pass of compilation and is not defined. LAP treats {arg TG} as though it were a {lisp COREVAL}, and continues the compilation. } {Label {lisp ({arg TG} - MULTIPLY DEFINED TAG, ASSEMBLE)}{index *PRIMARY* MULTIPLY DEFINED TAG, ASSEMBLE Error} } {Text {arg TG} is a label that is defined more than once in an assemble form. } {Label {lisp ({arg TG} - UNDEFINED TAG, ASSEMBLE)}{index *PRIMARY* UNDEFINED TAG, ASSEMBLE Error} } {Text {arg TG} is a label that is referenced but not defined in an assemble form. } {Label {lisp ({arg OP} - OPCODE? - ASSEMBLE)}{index *PRIMARY* OPCODE? - ASSEMBLE Error} } {Text {arg OP} appears as {fn CAR} of an assemble statement, and is illegal. } {Label {lisp (NO BINARY CODE GENERATED OR LOADED FOR {arg FN})}{index *PRIMARY* NO BINARY CODE GENERATED OR LOADED Error} } {Label} {Text A previous error condition was sufficiently serious that binary code for {arg FN} cannot be loaded without causing an error. } {End LabeledList Compiler Error Messages} }{End SubSec Compiler Error Messages}