Opened 16 years ago
Last modified 10 years ago
#16 new enhancement
Re-evaluation of DEFPACKAGE form is ignored
Reported by: | Mark Evenson | Owned by: | somebody |
---|---|---|---|
Priority: | minor | Milestone: | unscheduled |
Component: | other | Version: | 1.0 |
Keywords: | Cc: | ||
Parent Tickets: |
Description
Evaluation of DEFPACKAGE forms for existing packages are ignored.
Although this is allowed by the ANSI specification, no other non-trivial implementation of Common Lisp has this behavior as this is considered a major pain for developers working with packages to have to restart their system to make modifications in the package.
Change History (3)
comment:1 Changed 15 years ago by
comment:2 Changed 15 years ago by
As far as I understand a quick analysis of SBCL which is also a multi-threaded Lisp, to implement this we would have to:
- create a global mutex WITH-PACKAGES for FIND-PACKAGE, MAKE-PACKAGE, RENAME-PACKAGE, DELETE-PACKAGE, LIST-ALL-PACKAGES, INTERN, UNINTERN, EXPORT, UNEXPORT, IMPORT, SHADOWING-IMPORT, SHADOW, USE-PACKAGE, UNUSE-PACKAGE, and FIND-ALL-SYMBOLS.
- Check that nicknames are not being used as the redefined name (??)
- Warn about various changes (like unusing previously used packages)
comment:3 Changed 10 years ago by
There's no need to restart to export a symbol. It is enough to eval (export <symbol>) from the package.
See: http://osdir.com/ml/armedbear-devel/2012-04/msg00032.html
But yes, this is annoying.
At a minimum in the near term we should warn the user of this behavior.