Anyone interested in "package versioning"?

Alessio Stalla alessiostalla at gmail.com
Wed May 18 11:57:18 UTC 2016


Can you elaborate on that?

The stance on packages found in the mentioned Quora post is based on the
old misconception about packages being modules, or "software packages" in
the Linux distribution sense. They're not. They are really just namespaces,
containers of symbols. So it does not make any sense, to me, that they have
versions. Software has versions, not names.

I think it *is* already possible, even if no convenient machinery for it
exists, to load the same symbols under different packages (i.e. to use
different names for different versions of the same concepts).

(defpackage p ...)
(load (compile-file "p-1.0.lisp"))
(rename-package "P" "P-1.0")
(defpackage p ...)
(load (compile-file "p-1.1.lisp"))
(rename-package "P" "P" "P-1.1")

p-*.lisp start with (in-package :p)

Then you can compile code against p (latest version), p-1.0 and/or p-1.1.
Of course each p-*.lisp must be "nice" - only define things in package p.


On 18 May 2016 at 11:36, Stelian Ionescu <sionescu at cddr.org> wrote:

> On Wed, 2016-05-18 at 00:21 -0400, Jean-Claude Beaudoin wrote:
> > Hi CL Pros,
> >
> > I just came across a post on Quora
> > <https://www.quora.com/Where-did-we-go-wrong-Why-didnt-Common-Lisp-fi
> > x-the-world/answer/Robert-Smith-9?srid=dnzK>
> > by
> > Robert Smith where he mentions the idea of assigning some sort of
> > "version"
> > to Common Lisp packages in order to improve code configuration
> > control.
> >
> > This seems to me to be a pretty neat and interesting idea!
> >
> > Has anyone of you explored such a concept, or know of anyone that
> > did?
> > Or, is anyone of you curious about it?
>
> It's a very bad idea to do code versioning in the linker/loader in
> order to load two versions at the same time. Saying it makes code-reuse
> hard is preposterous.
>
> --
> Stelian Ionescu a.k.a. fe[nl]ix
> Quidquid latine dictum sit, altum videtur.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/pro/attachments/20160518/1beff79c/attachment-0001.html>


More information about the pro mailing list