From: jimka
Subject: changes in USEd packages
Date: 
Message-ID: <1190543886.394011.71510@y42g2000hsy.googlegroups.com>
Can some please explain, or perhaps point me to the hyperspec
explanation of the semantics of package changes.    In particular if
package A uses package B, and later package B changes,
(make-package is called again on B, or B gets some new exported
symbols, etc).   Is package A suppose to recognize this even if the
def-package is never called again on A?

I know that for classes there are well defined semantics for class
redefinition, but what
about for packages?

-jim

From: jimka
Subject: Re: changes in USEd packages
Date: 
Message-ID: <1190573750.623246.134890@57g2000hsv.googlegroups.com>
It must be a hard question, or maybe a stupid one...
From: Barry Margolin
Subject: Re: changes in USEd packages
Date: 
Message-ID: <barmar-E1C07F.21462723092007@comcast.dca.giganews.com>
In article <························@57g2000hsv.googlegroups.com>,
 jimka <·····@rdrop.com> wrote:

> It must be a hard question, or maybe a stupid one...

Impatient?  You only waited about 8 hours.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Barry Margolin
Subject: Re: changes in USEd packages
Date: 
Message-ID: <barmar-AE664E.21455023092007@comcast.dca.giganews.com>
In article <·······················@y42g2000hsy.googlegroups.com>,
 jimka <·····@rdrop.com> wrote:

> Can some please explain, or perhaps point me to the hyperspec
> explanation of the semantics of package changes.    In particular if
> package A uses package B, and later package B changes,
> (make-package is called again on B, or B gets some new exported
> symbols, etc).   Is package A suppose to recognize this even if the
> def-package is never called again on A?
> 
> I know that for classes there are well defined semantics for class
> redefinition, but what
> about for packages?

Using a package means that you automatically inherit new exported 
symbols.  The spec never seems to say this explicitly, but it's implied 
by section 11.1.1.2.5, which describes when name conflicts are detected.  
It says that EXPORT checks for name conflicts, which is only possible if 
packages that use this package would inherit the symbol.

-- 
Barry Margolin, ······@alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***
From: Alan Crowe
Subject: Re: changes in USEd packages
Date: 
Message-ID: <86hclkvvsi.fsf@cawtech.freeserve.co.uk>
jimka <·····@rdrop.com> writes:

> Can some please explain, or perhaps point me to the hyperspec
> explanation of the semantics of package changes.    In particular if
> package A uses package B, and later package B changes,
> (make-package is called again on B, or B gets some new exported
> symbols, etc).   Is package A suppose to recognize this even if the
> def-package is never called again on A?
> 
> I know that for classes there are well defined semantics for class
> redefinition, but what
> about for packages?
> 

I've tried writing a tuturial on the package system. I
stopped because I'm not really qualified to do so and became
concerned least I propagated my own misunderstandings.

However, what I've written so far

http://www.cawtech.demon.co.uk/lisp/symbols-and-packages.html

does, I think,  make sense, which give me hope that it may
be correct so far as it goes.

I have tried to reverse engineer the specification to come
up with a teleological description. It directly addresses
the point you raise.

Alan Crowe
Edinburgh
Scotland