Path: utzoo!mnetor!uunet!husc6!hao!gatech!mcnc!decvax!ima!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: Structure editors in common lisp Message-ID: <14165@think.UUCP> Date: 22 Dec 87 19:58:38 GMT References: <1487@orstcs.CS.ORST.EDU> <464@cresswell.quintus.UUCP> <215@aiva.ed.ac.uk> Sender: usenet@think.UUCP Reply-To: barmar@sauron.think.com.UUCP (Barry Margolin) Organization: Thinking Machines Corporation, Cambridge, MA Lines: 34 In article <215@aiva.ed.ac.uk> jeff@uk.ac.ed.aiva (Jeff Dalton) writes: >The book discusses the consistencey rules on page 173. You will note >that it specifies the conditions under which these rules remain true >and the sorts of "explicit action" that can cause them to become false. Unfortunately, these rules only exist when *PACKAGE* doesn't change. This means that you can't maintain consistency if you use IN-PACKAGE. And if you can't use IN-PACKAGE much of the value of the package system is lost. Here's an example. file1 contains: (in-package "p1") (export 's1) file2 contains: (in-package "p2" :use '("p1")) (setq s1 t) CLtL says that the order of loading files shouldn't matter, but the effect of the SETQ in file2 depends on whether file1 was loaded before or after it. If file1 is loaded first then it sets p1::s1; if file2 is loaded without loading file1 it sets p2::s1, and if file1 is later loaded the EXPORT will signal an error because it would create a name conflict. --- Barry Margolin Thinking Machines Corp. barmar@think.com seismo!think!barmar