6.1 About the Compiler
6.1.4 Maintaining package compatibility in compiled files
Incompatibilities between a source file and the corresponding compiled file can be caused by package system differences between the compile-time and the load-time environments. While this is an inherent inconsistency in some read-print operations rather than a problem with compilation, the package differences can cause errors in the compiled code. A package is a Common Lisp object that specifies a mapping between print name strings and symbols. While Liquid Common Lisp responds to minor changes in the package layout without causing errors, the package system must be used carefully to avoid troublesome package differences between a source file and the compiled binary file.
You can avoid the most common causes of package differences by using the following guidelines:
- Use care in creating and defining packages. In particular, define a package entirely in one file rather than spreading the definition over several files. Section 7.3 of The Advanced User's Guide contains a set of rules that can help you avoid package problems.
- Remember that the colon qualification syntax is only visible in the source code text. Once the Lisp reader has read your code, the rest of the Lisp system cannot tell whether you used, for example,
spades
,ace:spades
, orace::spades
. Thus, Lisp reading loses some information, and as a result, the variation between the printed representations of the source file and the compiled file can cause package system inconsistencies.
For more information about packages, see Section 7.3 in The Advanced User's Guide and the chapter "Packages" in CLtL2.
The User's Guide - 9 SEP 1996 Generated with Harlequin WebMaker