[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
section 4.2
- To: cl-compiler@sail.stanford.edu
- Subject: section 4.2
- From: sandra%defun@cs.utah.edu (Sandra J Loosemore)
- Date: Thu, 6 Apr 89 12:40:19 MDT
- Cc: cl-editorial@sail.stanford.edu
Some time ago, I promised Kathy Chapman that I would prepare a draft
of section 4.2 for the standard. I've started to outline the
organization and decide which issues go where, which is what follows.
Any comments you have on this before I get started on serious writing
would be welcome.
The issues I've listed are those that are relevant to the discussion,
and I expect that in some cases not all of the material from the issue
will be included directly in that place. For example, issue
COMPILED-FUNCTION-REQUIREMENTS will probably end up being distributed
between the subsections on COMPILE and COMPILE-FILE in section 4.2,
and the description of the COMPILED-FUNCTION data type in section 2.2.
I haven't yet figured out the details of exactly what sections will be
affected by each of our issues yet, but I do plan to put together a
list eventually (once section 4.2 starts to take shape).
-Sandra
---- cut here -------- cut here -------- cut here -------- cut here ----
Introduction
------------
The compiler is a utility that translates programs into an
implementation-dependent form that can be represented or executed more
efficiently. Compiling a program involves resolving certain kinds of
references appearing within the code at compiletime, instead of
waiting until the program is actually run.
In some implementations, compilation may happen implicitly. For
example, it is permissible to implicitly compile all functions defined
with DEFUN or FUNCTION, or to implement EVAL so that it implicitly
compiles the form and then executes the resulting code. Common Lisp
also provides tools (the functions COMPILE and COMPILE-FILE) for
explicitly forcing compilation to take place.
Time of Binding
---------------
[OK, we've said that the compiler works by resolving some things in
advance. Now talk about exactly what those things are.]
[Issues:
*COMPILE-ENVIRONMENT-CONSISTENCY
PROCLAIM-INLINE-WHERE
ALLOW-LOCAL-INLINE
]
COMPILE
-------
[What COMPILE is required to/allowed to do.]
[Issues:
COMPILE-ARGUMENT-PROBLEMS
*COMPILED-FUNCTION-REQUIREMENTS
]
COMPILE-FILE
------------
[Present our model of how the file compiler works. List all
the macros that do special compile-time magic.]
[Issues:
COMPILER-DIAGNOSTICS
COMPILER-VERBOSITY
WITH-COMPILATION-UNIT
*COMPILED-FUNCTION-REQUIREMENTS
EVAL-WHEN-NON-TOP-LEVEL
DEFINING-MACROS-NON-TOP-LEVEL
LOCALLY-TOP-LEVEL
COMPILE-FILE-HANDLING-OF-TOP-LEVEL-FORMS
*CLOS-MACRO-COMPILATION
*PROCLAIM-ETC-IN-COMPILE-FILE
IN-PACKAGE-FUNCTIONALITY
COMPILE-FILE-PACKAGE
]
Compiler/Loader Interface
-------------------------
[How COMPILE-FILE tells LOAD to reconstruct objects appearing in
the source code.]
[Issues:
CONSTANT-COMPILABLE-TYPES
*CONSTANT-FUNCTION-COMPILATION
*COMPILE-FILE-SYMBOL-HANDLING
LOAD-OBJECTS
CONSTANT-COLLAPSING
CONSTANT-CIRCULAR-COMPILATION
LOAD-TIME-EVAL (?)
]
-------