Luís Oliveira writes:
> I see many projects trying to avoid dependencies (and therefore
> duplicating code). Being able to depend on the "Standard Library" would
> probably make authors/maintainers not worry so much about that. Does
> this make any sense at all?
We'd still have to resolve the version problem first.
For application code, it wouldn't matter to depend on a "standard" library.
But for a library, this is problematic, since another library may
depend on another version of the same "standard" library. Therefore,
both libraries couldn't be used in the same core image for the
conflict on the "standard" library version.
With NIH this is resolved somewhat inelegantly, but effectively:
there's little code that depends on my own utility library, so when I
make an incompatible change to it, I can easily enough update all my
other programs using it (but not always so easily, so I keep snapshoot
_copies_ of my utility libraries with deployed applications!).
You'll have to "extend" the packaging system of Common Lisp first.
- hierarchical packages (see Franz's),
- package nicknames relative to the current package,
- package versions.
(in-package :p1)
(use-package :com.informatimago.common-lisp.avl :version '1.2.1 :as :avl)
(avl:insert *tree* *element*)
(in-package :p2)
(use-package :cl.extensions.avl :version '1.0.newest :as :avl)
(avl:insert *tree* *element*)
(in-package :p2 :version "2.0")
(use-package :cl.extensions.avl :version '1.0.newest :as :avl1)
(use-package :cl.extensions.avl :version '2.1.newest :as :avl2)
(avl1:map-tree (lambda (e) (avl2:insert *tree-2* e)) *tree-1*)
(Versions could be added to the package names:
p2.2.0
cl.extensions.avl.1.0.newest
cl.extensions.avl.2.1.3
cl.extensions.avl.2
cl.extensions.avl.2.newest ; the last three names could refer the same
; package in a given image.
)
--
__Pascal Bourguignon__ http://www.informatimago.com/
"Specifications are for the weak and timid!"
_______________________________________________
Gardeners mailing list
[email protected]
http://www.lispniks.com/mailman/listinfo/gardeners