unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Pierre Neidhardt <mail@ambrevar.xyz>
To: Katherine Cox-Buday <cox.katherine.e@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: ASDF Builder (Common Lisp) & "package-inferred-system" Packages
Date: Sat, 03 Aug 2019 10:04:59 +0200	[thread overview]
Message-ID: <87sgqiu11w.fsf@ambrevar.xyz> (raw)
In-Reply-To: <87ef238g8t.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2464 bytes --]

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.

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!


> In the interim, an idea I had was to borrow the "base package" concept I
> came across when packaging other, non package-inferred, systems. I
> haven't tried it yet, but I think it should work, even if it sounds
> tedious to me.
>
> Sticking with the dbus example, it looks like we have the following
> situation:
>
> - dbus
>   - dbus/all
>     - dbus/utils
>     - dbus/protocols
>     - ...
>
> I think what we could do is define a `dbus-base` package which is
> hidden, and then start defining "sub-packages" which simply inherit from
> the base package, i.e.:
>
> - dbus-base
>   - dbus-utils (inherit from dbus-base)
>   - dbus-protocols (inherit from dbus-base)
>   - ...
>   - dbus-all (inherit from dbus-base; require dbus-utils,
>     dbus-protocols, etc.)
>
> In essence we would be manually defining the dependency tree that ASDF
> is inferring. We could probably lean on Common Lisp and ASDF itself to
> generate these packages within a hypothetical importer.

I don't think that would work, because the inferred packages can have
circular dependencies, e.g. dbus-utils depends on dbus-protocols which
depends on dbus-utils (correct me if I'm wrong).
But this is not allowed in Guix (the dependency graph is acyclic).

> But as I said, this seems quite tedious. We really should make our
> Common Lisp packaging smarter.

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

Andy, what do you think?

-- 
Pierre Neidhardt
https://ambrevar.xyz/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

  reply	other threads:[~2019-08-03  8:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-11  0:25 ASDF Builder (Common Lisp) & "package-inferred-system" Packages Katherine Cox-Buday
2019-01-11  9:01 ` Pierre Neidhardt
2019-01-11 15:34   ` Katherine Cox-Buday
2019-01-12 20:24     ` Katherine Cox-Buday
2019-01-13 19:14       ` Andy Patterson
2019-01-14  0:20         ` Katherine Cox-Buday
2019-08-02 16:28           ` Pierre Neidhardt
2019-08-02 16:43             ` Pierre Neidhardt
2019-08-02 17:37               ` Pierre Neidhardt
2019-08-02 20:27             ` Katherine Cox-Buday
2019-08-03  8:04               ` Pierre Neidhardt [this message]
2019-08-03  8:44                 ` Pierre Neidhardt
2019-08-03 14:14                 ` Katherine Cox-Buday
2019-08-06 10:41                   ` Pierre Neidhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sgqiu11w.fsf@ambrevar.xyz \
    --to=mail@ambrevar.xyz \
    --cc=cox.katherine.e@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).