Joubert Nel <joubert@...> writes:
> I received a note from Christophe mentioning that the result when
> changing a (defpackage) form inbetween evaluating successive (require)
> forms, is undefined.
> However, I'm *not* modifying the (defpackage) form itself, merely stuff
> inside the package. It seems like a subtle, but definite distinction.
It doesn't seem like a very relevant distinction though, in light of
what the spec actually says:
If defined-package-name already refers to an existing package, the
name-to-package mapping for that name is not changed. If the new
definition is at variance with the current state of that package,
the consequences are undefined; an implementation might choose to
modify the existing package to reflect the new definition.
Note that it's not a matter of modifying the defpackage form, it's a
matter of modifying the state of the package in any way, without
having it be reflected in a defpackage form that's evaluated in the