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

a (last ?) package question



    Date: Tue,  5 SEP 89 19:29:19 PDT 
    From: KARNICKY@crvax.sri.com (Karnicky)

    Now, when I load this file, I get an error message at the point that the
    (use-package 'zelda 'user) is run which says USER already contains the
    symbols u d tt db l s h sd m st restart w e eplan editdb and findme.
    When I RESUME from this error the problematic symbols in the USER package
    are uninterned, and the program does exactly what I wanted.

    Question:  How did those symbols get interned into the USER package?
	    Is this load file correctly arranged?

    ;;; -*- Mode: LISP; Base: 10; Syntax: Common-lisp -*-

    (defpackage zelda
      (:prefix-name "ZELDA")
      (:use symbolics-common-lisp)
      (:export u d tt db l s h sd m st restart w e eplan editdb findme))

When this file is loaded, it is read in the USER package.  Therefore,
all the non-prefixed symbols in the DEFPACKAGE form are interned in the
USER package.  Replace the symbols in the :EXPORT option with strings
(don't forget to make them uppercase) and you should be OK.

Just as a matter of style, I'd be careful with all those single-letter
symbols.  Users tend to use such things as temporary, throw-away
variables and functions.  The external symbols of a package form an
interface to its facilities, so the names should generally be more
descriptive.

                                                barmar