[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Date: Thu, 5 Apr 90 14:41 PDT
From: email@example.com (Larry Baum)
I have run into the following behavior which is annoying. We have a
system that we are maintaining for both Symbolics and Explorers, so we
(in-package (find-package 'tv) :nicknames '(w))
Pardon my ignorance, I haven't worked on Explorers in a while (for obvious
reasons). Is their window system package named W? If TV is a valid name for
their window package, you could leave off the nickname with no ill effects.
Now if this is loaded and we are working on something else and we write
code that references the TV package (e.g. (setq my-window
(tv:make-window ...) and then save and compile the file, the compiled
file references the "W" package. If we then try to load the compiled
file on a different machine or world where we haven't created the W
nickname, we get an error saying that W is an undefined package.
Keep in mind that nowhere in the source code is there a reference to W:,
i.e. this is just an undesired side effect of loading our system. Why
does the compiler change referneces to the TV package to refernces to
the W package?
Because the printer and the binary dumper always refer to packages by their
shortest nicknames, in this case W. I believe this is true of both brands of
Lispm. Thus it would not seem wise to specify nicknames in IN-PACKAGE forms.
When writing portable code, one must always use the lowest common denominator,
unless one is willing to define the extensions themselves.
-- Chuck Fry
Symbolics Software Support