Anyone interested in "package versioning"?
Jean-Claude Beaudoin
jean.claude.beaudoin at gmail.com
Wed May 18 17:06:24 UTC 2016
On Wed, May 18, 2016 at 7:57 AM, Alessio Stalla <alessiostalla at gmail.com>
wrote:
> Can you elaborate on that?
>
Not really yet. I haven't though enough about it at this point, the idea is
still too fresh.
But I will at least mention my main source of inspiration on the subject,
coming from my Smalltalk days (of somewhat fading memory): the
ENVY/Developer system.
>
> 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.
>
>
Well, "packages" seem to me to be the only system structuring device
offered by the CL spec. So you have to work from there toward something
more appropriate, I'd say. In a somewhat upward compatible manner I'd hope.
> 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.
>
>
This is an interesting line of argument you've got here...
Thanks,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/pro/attachments/20160518/12e3ab2d/attachment.html>
More information about the pro
mailing list