guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ASDF Builder (Common Lisp) & "package-inferred-system" Packages


From: Katherine Cox-Buday
Subject: Re: ASDF Builder (Common Lisp) & "package-inferred-system" Packages
Date: Sat, 12 Jan 2019 14:24:38 -0600
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

I've done some more digging, and I have a better idea of why this is
failing.

Running `(asdf:operate 'asdf:compile-bundle-op :foo)` on a
`package-inferred-system` produces several `.fasl` files -- one for each
sub-package instead of the usual `foo--system.fasl` file. The
`cleanup-files` phase then deletes[1] any `.fasl` files which do not have a
`--system.fasl` suffix.

I tried working around this by manually concatenating all the `.fasl`
files together using `uiop:combine-fasls` which I believe works. I also
had to add a new build phase to take place after the `create-asd-file`
phase to do a string replace to change dependencies back to the
`foo/bar` style instead of `foo-bar`.

I still believe the build system should handle `package-inferred-system`
style CL packages properly so that maintainers don't have to do this
kind of tweaking for every package (the number of which I believe will
steadily increase).

I'm trying to confirm that this whole things works, but I believe I may
be hitting another bug with CL being able to find dependencies. It seems
as though even if the dependenices are listed in the generated `.asd`
file, and my Guix SBCL can find that `.asd` and attempt to load its
system, SBCL cannot find the dependencies.

I'm trying to determine why this might be, but it's currently blocking
me from proposing a patch which adds 44 CL packages.

My current theory is that we perform a `setf` on the
`*source-registry-parameter*` variable, but the ASDF manual
specifically, and strongly, says[2] that this is meant to be a read-only
variable. Maybe this is not working as intended?

I'm also going through some steps to establish a clean-room to make sure
it's nothing with my setup.

If anyone feels they can point me in helpful directions, that would be
very much appreciated :)

[1] - 
http://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/asdf-build-system.scm#n193
[2] - 
https://www.common-lisp.net/project/asdf/asdf.html#g_t_002asource_002dregistry_002dparameter_002a-variable

-- 
Katherine



reply via email to

[Prev in Thread] Current Thread [Next in Thread]