Subject: bug#32770: Packaging SLIME/SWANK as Common Lisp library

From: Andy Patterson <[email-masked]>
Date: Tue, 2 Oct 2018 04:55:31 -0400

Hi,

On Sun, 30 Sep 2018 23:46:08 +0200
Pierre Neidhardt <[email-masked]> wrote:

> Also see
> 
> 	https://github.com/quicklisp/quicklisp-projects/issues/1561
> 
> There are some interesting links, mostly about the Nix system.  See
> the
> 
> 	https://github.com/NixOS/nixpkgs/blob/5048b0d1f9e908665a01c35f49b2d9816128e089/pkgs/development/lisp-modules/quicklisp-to-nix-output/swank.nix
> 

Having taken just a quick look at what's there, it seems that the
approach is fairly different from what we're doing.  They're using the
default asdf build target, and I think they must be relying on output
translations having been set up right to avoid re-compilation.

I'm trying to get a Nix OS VM set up to play around with what's there.

> file: I think it would have given us a clear hint with
> ~asdFilesToKeep = ["swank.asd"];~, had we looked at Nix before.
> 

It looks like they're doing that in all of the packages.  In general,
we shouldn't expect to have to bring definitions from upstream's asd
file into our own.  Asdf's best practices documentation warns against
it.  Also, they're using upstream slime, unlike your package, so I
don't think anything is being compiled at all.

The difference here between Nix's system and ours
is that they're using the upstream asd file to load the system, whereas
we generate our own just for the build's output.  This allows us to
load the compiled file (or files) directly, without having to rely on
mapping source files to compiled files.

> I haven't looked to closely into what else Nix is doing to package
> Common Lisp, but it seems rather complete.  Any good idea we could
> borrow, Andy?

It'd be nice to have an importer.  Maybe we can use Nix's work to
reduce the amount of investigation needed to get there.

--
Andy