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

a (last ?) package question

Thanks for the responses to my previous questions about package usage.
I'm still having a problem as follows:

I'm trying to create a system called zelda.   I want the zelda function
names and variables to be interned into the ZELDA package.  I want to be
able to use a few of these defuns without prefix when the USER package
is current.  The following load file almost does what I want.   The
files in the defsystem that are in the [ai.vis] directory are loaded
into the CL-USER package (controlled by the file's attribute list) and
those in the [jfk.zelda] directory are loaded into the ZELDA package.

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?

Joe Karnicky

;;; -*- 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))

(defvar zelda::*task-directory nil "directory for jfk task plist files")
(setq zelda::*task-directory "vax:[jfk.zelda]")

;;; defines the TASKS file system for the LISPM 
(defun mkzelda ()
  ;; No interesting value is returned
  (defsystem zelda
    (:short-name "ZELDA"
     :pretty-name "Task Management System"
     :default-pathname "vax:[jfk.zelda]"
     :journal-directory "vax:[jfk.zelda]"
     :patchable nil)
    (:module init ("zelinit" "vax:[ai.vis]vrcinit"))
    (:module newlispfns ("vax:[ai.vis]newlispfns" "vax:[ai.vis]store"
			 "vax:[ai.vis]util" "vax:[ai.vis]screenops")
	     (:in-order-to :compile (:load init)))
    (:module taskfns ("taskfns"
		      "zelsearch" "zeltime"
		      "zelutil" "zelhelp")
	     (:in-order-to :compile (:load init)
			   (:load newlispfns))); some macros here
    (:module graphics ("zelgraph"
	     (:in-order-to :compile (:load init)
			   (:load newlispfns)))
    ) ;defsystem
  (compile-system 'zelda :update-directory nil :increment-version nil
		  :query nil)
  (format t "~%~%The TASKS  system is now defined"))

;;; top level calls to make the system


(use-package 'zelda 'user)

(in-package 'zelda)

(set-up-windows)  ; defined in taskfns.lsp

(startt) ;read in tasks from file

(in-package 'user)