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

Package problem



    Date: Thu, 5 Apr 90 16:17 PDT
    From: Chucko@VERMITHRAX.SCH.Symbolics.COM (Charles R. Fry)
    
	Date: Thu, 5 Apr 90 14:41 PDT
	From: larry@atc.boeing.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
	do:
    
	(in-package (find-package 'tv) :nicknames '(w))
    
	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.
    
    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

This answer is all correct, but I'd like to add one useful fact.
The documented :PREFIX-NAME option to DEFPACKAGE, MAKE-PACKAGE, and
IN-PACKAGE is provided to address exactly this problem.  You can
use this to specify prefixing with TV: instead of W:.  For documentation,
:Show Documentation (for topic) :PREFIX-NAME <return>.  Of course
something this useful is not part of standard Common Lisp, so you'll
need a #+Symbolics in your source code to keep the Explorer from
complaining (unless the same extension exists on the Explorer).