{Begin SubSec Compiler Error Messages} {Title Compiler Error Messages} {Text {Tag CompilerErrors} {index *BEGIN* compiler error messages} {index *BEGIN* errors in compiler} Messages describing errors in the function being compiled are also printed on the teletype. 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} } {Item From calls to {fn BCOMPL} and {fn BRECOMPILE}. } {Label {lisp ({arg FN} NOT COMPILEABLE)}{index *PRIMARY* NOT COMPILEABLE Error} } {Item 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} } {Item 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} } {Item {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} } {Item 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} } {Item {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} } {Item In Interlisp-10, 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} } {Item 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} } {Item 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} } {Item {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} } {Item 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} } {Item 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, he must use {fn APPLY*} ({PageRef Fn APPLY*}). This message is printed when {arg FN} is not defined, and is also a local variable of the function being compiled. Note that earlier versions of the Interlisp-10 compiler did treat {arg FN} as a functional argument, and compiled code to evaluate it. } {Label {lisp ({arg FN} - ILLEGAL RETURN)}{index *PRIMARY* ILLEGAL RETURN Error} } {Item {fn RETURN} encountered when not in {fn PROG}. } {Label {lisp ({arg TG} - ILLEGAL GO)}{index *PRIMARY* ILLEGAL GO Error} } {Item {fn GO} encountered when not in a {fn PROG}. } {Label {lisp ({arg TG} - MULTIPLY DEFINED TAG)}{index *PRIMARY* MULTIPLY DEFINED TAG Error} } {Item {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} } {Item {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} } {Item {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} } {Item 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, ASSEMBLE)}{index *PRIMARY* MULTIPLY DEFINED TAG, ASSEMBLE Error} } {Item {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} } {Item {arg TG} is a label that is referenced but not defined in an {lisp ASSEMBLE} form. } {Label {lisp ({arg TG} - MULTIPLY DEFINED TAG, LAP)}{index *PRIMARY* MULTIPLY DEFINED TAG, LAP Error} } {Item {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} } {Item {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 OP} - OPCODE? - ASSEMBLE)}{index *PRIMARY* OPCODE? - ASSEMBLE Error} } {Item {arg OP} appears as {fn CAR} of an assemble statement, and is illegal. See {PageRef Tag Assembler} for legal assemble statements. } {Label {lisp (NO BINARY CODE GENERATED OR LOADED FOR {arg FN})}{index *PRIMARY* NO BINARY CODE GENERATED OR LOADED Error} } {Item 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} {index *END* errors in compiler} {index *END* compiler error messages} }{End SubSec Compiler Error Messages}