15.4 Compiler Errors and Warnings

In addition to the error messages mentioned in this chapter, the following error messages may be displayed. In general, the five star prefix is used for error messages, the three star prefix for warnings. The display of warning messages can be suppressed by evaluating (off msg).

⋆⋆⋆⋆⋆ Too many arguments N

The restriction on the number of arguments is based in part on the fact that arguments to compiled functions are passed in general purpose registers rather than directly on a stack. The compiler will generate code for the offending definition. Although the code appears to be correct, attempting to apply the function will result in error.

⋆⋆⋆⋆⋆ Attempt to compile non-lambda expression FORM

This error occurs within the context of a call on compd, when the expression is not a valid lambda expression.

⋆⋆⋆ NAME has not been defined, because it is flagged LOSE

If a function name is flagged LOSE then it cannot be redefined. Attempting to compile an interpretive definition is considered redefinition in this context.

⋆⋆⋆⋆⋆ Ill-formed function expression FORM

The offending expression is an instance of function application. This message will appear if the function is atomic and not an id, or if the function is a list which is not a valid lambda expression.

⋆⋆⋆⋆⋆ Odd number of arguments to SETQ FORM

The number of arguments passed to a SETQ must be even.

⋆⋆⋆⋆⋆ Incorrect number of arguments to NAME

The number of arguments passed to either apply, idapply, codeapply, cons, go, or return was not correct.