maclina/compile
Reference implementation compiler for Maclina.
System Information
Definition Index
-
MACLINA.COMPILE
Package for Lisp compiler and evaluator. Main entry points are COMPILE and EVAL.
-
EXTERNAL CONDITION ASSUMED-FUNCTION-NOW-MACRO
This warning is signaled when a macro has been newly defined, but the compilation unit has previously encountered uses of the name that it assumed to refer to a function.
-
EXTERNAL CONDITION RESOLVE-FUNCTION
Condition that can be SIGNALed to indicate to a compilation unit that a new function has been defined, and that previously unknown references to an operator by that name can now be resolved.
-
EXTERNAL CONDITION RESOLVE-MACRO
Condition that can be SIGNALed to indicate to a compilation unit that a new macro has been defined, and that previously unknown references to an operator by that name can now be resolved.
-
EXTERNAL CONDITION UNKNOWN-FUNCTION
Condition signaled when the compiler encounters an unknown operator.
-
EXTERNAL CONDITION UNKNOWN-REFERENCE
Parent type of conditions signaled by the compiler to indicate an unknown name that may be defined later.
-
EXTERNAL CONDITION UNKNOWN-REFERENCE-RESOLUTION
Parent type for conditions that can be SIGNALed at compile time to indicate to an ongoing compilation unit that a previously unknown name is now known.
-
EXTERNAL CONDITION UNKNOWN-VARIABLE
Condition signaled when the compiler encounters an unknown variable.
-
EXTERNAL STRUCTURE CFUNCTION
A compiler function, i.e. compiler information about an eventual function. After being produced by COMPILE-INTO, contains enough information to make an actual function out of. Compiler functions are used by the file compiler. See COMPILE-INTO
-
EXTERNAL STRUCTURE CMODULE
A compiler module. Represents a collection of functions being compiled together; for example local functions defined by FLET or LAMBDA will share a module with their parent function. See MAKE-CMODULE See CMODULE-LITERALS See CFUNCTION See COMPILE-INTO
-
EXTERNAL STRUCTURE CONSTANT-INFO
No documentation provided. -
EXTERNAL STRUCTURE ENV-INFO
No documentation provided. -
EXTERNAL STRUCTURE FDEFINITION-INFO
No documentation provided. -
EXTERNAL STRUCTURE LTV-INFO
No documentation provided. -
EXTERNAL STRUCTURE VALUE-CELL-INFO
No documentation provided. -
EXTERNAL FUNCTION ADD-DECLARATIONS
- ENV
- DECLARATIONS
No documentation provided. -
EXTERNAL FUNCTION ADD-MACROS
- ENV
- MACROS
Augment a compiler lexenv with new macro definitions. The new definitions should be an alist, with names for cars and macro information objects (returned by MAKE-LOCAL-MACRO) for cdrs. See MAKE-LOCAL-MACRO
-
EXTERNAL FUNCTION ADD-SYMBOL-MACROS
- ENV
- SYMBOL-MACROS
Augment a compiler lexenv with new symbol macro definitions. The new definitions should be an alist, with names for cars and symbol macro information objects (returned by MAKE-SYMBOL-MACRO) for cdrs. See MAKE-SYMBOL-MACRO
-
EXTERNAL FUNCTION CFUNCTION-CLOSED
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION CFUNCTION-CMODULE
- INSTANCE
-
EXTERNAL FUNCTION CFUNCTION-DOC
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION CFUNCTION-FINAL-ENTRY-POINT
- CFUNCTION
-
EXTERNAL FUNCTION CFUNCTION-FINAL-SIZE
- CFUNCTION
Return the size in bytes of the bytecode corresponding to a compiler function. See CFUNCTION
-
EXTERNAL FUNCTION CFUNCTION-LAMBDA-LIST
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION CFUNCTION-LAMBDA-LIST-P
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION CFUNCTION-NAME
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION CFUNCTION-NLOCALS
- CFUNCTION
Return the number of local variables bound within a compiler function. See CFUNCTION
-
EXTERNAL FUNCTION CMODULE-LITERALS
- INSTANCE
Retrieve the literals vector of a CMODULE. This is a vector containing information about constants, LOAD-TIME-VALUE forms, etc. present in compiled code. See CMODULE
-
EXTERNAL FUNCTION COMPILE
- LAMBDA-EXPRESSION
- &OPTIONAL
- ENVIRONMENT
- *CLIENT*
Compile LAMBDA-EXPRESSION into a function in the compilation ENVIRONMENT. Returns three values: FUNCTION, WARNINGSP, FAILUREP, which are the same as those of CL:COMPILE. FUNCTION may or may not be considered a COMPILED-FUNCTION by the host - this is out of Maclina's control. Unlike CL:COMPILE, COMPILE does not accept a function name, and does not alter bindings to install the newly compiled function.
-
EXTERNAL FUNCTION COMPILE-INTO
- MODULE
- LAMBDA-EXPRESSION
- ENV
- &REST
- KEYS
- &KEY
- BLOCK-NAME
- DECLARATIONS
Compile LAMBDA-EXPRESSION in the compilation ENVIRONMENT into a new compiler function within MODULE. The compiler function information is returned, but is not loaded into being an actual callable function. COMPILE-INTO underlies all other compilation operations and can be used for lower level purposes, such as getting a compiler function to serialize during COMPILE-FILE. If DECLARATIONS is provided, the body of the lambda expression is treated as if it was in a PROGN, so declaration expressions are not permitted (and will be treated as forms). The provided DECLARATIONS are used instead of any in the body. If BLOCK-NAME is provided, a block of that name will be established around the body of the lambda expression. These options are available so that functions can be compiled with implicit blocks or progns regardless of the compilation environment's bindings of CL:PROGN or CL:BLOCK. See CMODULE
-
EXTERNAL FUNCTION COMPUTE-MACROEXPANDER
- NAME
- LAMBDA-LIST
- BODY
- ENV
Given the definition of a local macro - its name, lambda list, body, and the environment it's being compiled in - return an actual function to use as a macroexpander. The environment should be one returned by LEXENV-FOR-MACROLET. See LEXENV-FOR-MACROLET See ADD-MACROS
-
EXTERNAL FUNCTION CONSTANT-INFO-VALUE
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION CONSTANTP
- FORM
- &OPTIONAL
- ENV
No documentation provided. -
EXTERNAL FUNCTION EVAL
- FORM
- &OPTIONAL
- ENVIRONMENT
- *CLIENT*
As CL:EVAL. Evaluate FORM in the compilation ENVIRONMENT and the current dynamic environment.
-
EXTERNAL FUNCTION EVAL-PROGN
- FORMS
- &OPTIONAL
- ENVIRONMENT
- *CLIENT*
Evaluate FORMS as a progn in the compilation ENVIRONMENT. This is provided as a convenience function, because it works regardless of how CL:PROGN is bound in ENVIRONMENT, if at all.
-
EXTERNAL FUNCTION FDEFINITION-INFO-NAME
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION LEXENV-FOR-MACROLET
- ENV
Given a compiler lexenv, return a lexenv stripped of runtime information. This is suitable for passing to COMPUTE-MACROEXPANDER and is used for compiling MACROLET forms correctly. See COMPUTE-MACROEXPANDER
-
EXTERNAL FUNCTION LINK
- CMODULE
Finish compilation of the MODULE, computing the final, linked bytecode. Does not load constants. See CMODULE
-
EXTERNAL FUNCTION LTV-INFO-FORM
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION LTV-INFO-READ-ONLY-P
- INSTANCE
No documentation provided. -
EXTERNAL FUNCTION MACROEXPAND
- FORM
- &OPTIONAL
- ENV
No documentation provided. -
EXTERNAL FUNCTION MACROEXPAND-1
- FORM
- &OPTIONAL
- ENV
As CL:MACROEXPAND. Uses Trucler to interrogate for macro definitions, so it is (probably) more flexible than the host function.
-
EXTERNAL FUNCTION MAKE-CMODULE
Create a new, empty compiler module. Functions can be compiled into the module with COMPILE-INTO. See CMODULE
-
EXTERNAL FUNCTION MAKE-LOCAL-MACRO
- NAME
- EXPANDER
Given a macro name and expander function, return a compiler information structure it can use to understand the MACROLET binding. This structure is usable in concert with ADD-MACROS. See COMPUTE-MACROEXPANDER See ADD-MACROS
-
EXTERNAL FUNCTION MAKE-NULL-LEXICAL-ENVIRONMENT
- GLOBAL-ENVIRONMENT
Create a compiler lexenv given a global compilation environment. This can be used for local augmentations and passed as an argument to COMPILE, etc. See ADD-DECLARATIONS See ADD-MACROS See ADD-SYMBOL-MACROS
-
EXTERNAL FUNCTION MAKE-SYMBOL-MACRO
- NAME
- EXPANSION
Given a symbol and its macroexpansion, return a compiler information structure which it can use to understand the SYMBOL-MACROLET binding. This structure is usable in concert with ADD-SYMBOL-MACROS. See ADD-SYMBOL-MACROS
-
EXTERNAL FUNCTION VALUE-CELL-INFO-NAME
- INSTANCE
No documentation provided. -
EXTERNAL GENERIC-FUNCTION NAME
- CONDITION
No documentation provided. -
EXTERNAL GENERIC-FUNCTION RESOLVE-REFERENCE
- RESOLUTION
- REFERENCE
This function can be called by WITH-COMPILATION-UNIT's expansion when it receives an UNKNOWN-REFERENCE-RESOLUTION signal. The function is called with the resolution condition and any unresolved condition. If the resolution resolves the given condition, T should be returned. Other effects are permissible, such as signaling warnings.
-
EXTERNAL GENERIC-FUNCTION RUN-TIME-ENVIRONMENT
- CLIENT
- COMPILATION-ENVIRONMENT
The compiler calls this function to get the run time environment for a given compilation environment. Clients should customize it in accordance with their environments' structures.
-
EXTERNAL MACRO WITH-COMPILATION-RESULTS
- &BODY
- BODY
Evaluate BODY as a progn, and then return values analogous to those returned by COMPILE. Specifically, three values are returned: * the primary value of BODY * warningsp, which is true iff evaluation of BODY signaled any unhandled warnings * failurep, which is true iff evaluation of BODY signaled any unhandled warnings or errors, other than style warnings COnditions may be handled from outside the body of WITH-COMPILATION-RESULTS. Handling a warning with MUFFLE-WARNING is not sufficient to prevent WITH-COMPILATION-RESULTS from noting it: you would need a different restart.
-
EXTERNAL MACRO WITH-COMPILATION-UNIT
- &REST
- OPTIONS
- &KEY
- OVERRIDE
- &BODY
- BODY
As CL:WITH-COMPILATION-UNIT. Evaluate BODY as a progn and return its values. Within the dynamic environment of WITH-COMPILATION-UNIT, actions deferred by the compiler until the end of compilation will be deferred to the end of the outermost WITH-COMPILATION-FORM (or the innermost with :override true). On exit, this outermost WITH-COMPILATION-FORM will print to *ERROR-OUTPUT* a summary of conditions signaled during evaluation, if there were any. For now in Maclina, these actions are only signaling certain kinds of warnings relating to unknown names.
-
EXTERNAL SOURCE-TRANSFORM CFUNCTION-CLOSED
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CFUNCTION-CLOSED)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CFUNCTION-CMODULE
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CFUNCTION-CMODULE)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CFUNCTION-DOC
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CFUNCTION-DOC)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CFUNCTION-LAMBDA-LIST
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CFUNCTION-LAMBDA-LIST)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CFUNCTION-LAMBDA-LIST-P
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CFUNCTION-LAMBDA-LIST-P)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CFUNCTION-NAME
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CFUNCTION-NAME)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CMODULE-LITERALS
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CMODULE-LITERALS)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM CONSTANT-INFO-VALUE
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF CONSTANT-INFO-VALUE)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM FDEFINITION-INFO-NAME
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF FDEFINITION-INFO-NAME)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM LTV-INFO-FORM
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF LTV-INFO-FORM)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM LTV-INFO-READ-ONLY-P
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF LTV-INFO-READ-ONLY-P)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM MAKE-CMODULE
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF MAKE-CMODULE)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM MAKE-NULL-LEXICAL-ENVIRONMENT
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF MAKE-NULL-LEXICAL-ENVIRONMENT)
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM VALUE-CELL-INFO-NAME
No documentation provided. -
EXTERNAL SOURCE-TRANSFORM (SETF VALUE-CELL-INFO-NAME)
No documentation provided.
-