On Sat, Feb 13, 2010 at 10:59 AM, Alexander Gavrilov <firstname.lastname@example.org>
As I understand, that file is an integration shim that activates
when both def and common modules are loaded, but allows them to
be used independently. Thus the 'common' one cannot directly
contain a reference to def. Although it can probably include a
placeholder in-package macro that by default directly expands
to the common lisp one.
I do not understand much of that paragraph, but please understand the following: according to the Hyperspec, the value of *package* has to be changed exactly the same when compile-file and when load are used. In other words, in-package can not have one argument at compile time and then, when loading, deciding to use one or another package depending on what is available. This is explained here
and summarized here without many of the important details from the previous page
If you need a symbol reference with a home package that depends on previously loaded packages and want this to work reliably and portably, one alternative is to use LOAD-TIME-VALUE with INTERN. Another, more reasonable alternative in the presence of many such cases, is to create a proxy package.