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, 03 Aug 2019 09:14:17 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)

Pierre Neidhardt <address@hidden> writes:

> Hi Katherine!
>
> One of the issue that we have with the current build system is that it
> does not find the dependencies properly for the inferred packages.
>
> Robert from the ASDF team suggested a solution:
>
>                       https://gitlab.common-lisp.net/asdf/asdf/issues/10
>
> I think if we use his more general function, we can properly populate
> the *source-registry*.  So that would be a solution to the first of our
> problems, that of the missing inputs.

Perfect!

> The main other issue is the one you mention: we need to compile the
> .fasl files right.
>
>> - Stop rolling all code into system-fasls
>> - Output each file's equivalent fasl to a common directory for the
>>   system
>> - Set a search path in the profile to recursively search the SBCL fasl
>>   output tree for systems.
>
> This sounds reasonable.  Also you mentioned above that concatenating the
> generated fasl files into a single one manually worked for you.  If it
> works, then why not!

I never got this to work[1]. I think Ningle's systems are being bundled
into a single fasl, but for whatever reason, its subsystems cannot be
found despite that bundled fasl being on the path.

Last I looked at this, I remember being left with the distinct
impression that we would have to stop producing system fasls, and rather
than having one directory of system fasls, we'd have a tree of system
directories, each populated with all the fasls for a system e.g.:

- ~/.guix-profile/lib/sbcl/
  - dbus/
    - dbus-all.fasl
    - dbus-utils.fasl
    - ...

And then find a way to search ~/.guix-profile/lib/sbcl/ recursively. The
ASDF manual says[2] $XDG_CONFIG_DIRS/common-lisp/source-registry.conf
can hold configurations, as well as `CL_SOURCE_REGISTRY`. Maybe Guix
could set one of these in the profile to something like `(:tree
(:home ".guix-profile/lib/sbcl/"))`.

Or we could stick to the `*source-registry*` variable and use a smarter
Common Lisp function to populate it.

> I believe your above solution could work.  Wanna give it a shot?

Currently I have 1 day a week to work on open source things, and I have
been busy with other projects. Those may be wrapping up "soon", and then
I could give it a go, but I don't think you want to wait for me :) I
also don't speak Guile very well, and these larger changes to the build
system would probably take me awhile. It would probably be faster and
help to educate me if I were a reviewer on patches you produce.

I also want to mention that I remember going around in circles on this a
bit, so take everything I say here with a grain of salt. I think
experimentation is needed to find the cleanest implementation!

> Andy, what do you think?

[1]- https://lists.gnu.org/archive/html/guix-devel/2019-01/msg00204.html
[2] - https://www.common-lisp.net/project/asdf/asdf.html#Configurations

-- 
Katherine



reply via email to

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