[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue COMPILE-FILE-SYMBOL-HANDLING, version 3



> My question:  How is the compiler supposed to tell whether or not the symbol
> name was qualified in the input file?  Presumably it gets the symbol via READ,
> which doesn't transmit any indication of whether the package qualification
> was explicit or not.
>  
> So how can it distinguish between symbol-name and current-package:symbol-name?

It can't and it doesn't.
 
> I contend that for this reason, the "current-package" model is unworkable.
> This may not be an issue any longer, but I think this is sufficient
> justification for the "home-package" model being the only reasonable one.
> 

I contend essentially the same thing: the goal of mapping compile-time
symbols to load-time symbols with the same home package is the right
one, and the compiler and loader should work to accomplish that.  This
is the tightest enforcement of sameness between compiletime and runtime
that appears to be possible using compile-file in Common Lisp, so it is
the best choice.  It is also relatively simple for programmers to
understand.

Still, the principles expressed in the NEW-REQUIRE-CONSISTENCY
proposal look like to me like good ones for programmers to follow,
and the committee sentiment is that this approach is more practical
for the standard.  As I understand the requirements of the new
proposal, if programmers follow the rules their symbols wind up
with the same home package at compile- and load-time.

Am I mistaken in this?

				-Cris