unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Andy Patterson <ajpatter@uwaterloo.ca>
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: Sun, 13 Jan 2019 14:14:26 -0500	[thread overview]
Message-ID: <20190113141426.00360523@mailservices.uwaterloo.ca> (raw)
In-Reply-To: <87lg3p7hfd.fsf@gmail.com>

Hey Katherine,

On Sat, 12 Jan 2019 14:24:38 -0600
Katherine Cox-Buday <cox.katherine.e@gmail.com> wrote:

> 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.
> 

This phase has always been a bit of a hack.  There are already some
other packages where asdf doesn't produce an output file which matches
the expected name, so we had to change that.  I'd be in favour of
removing the phase wholesale until we can create one which works
better.  Ultimately we should be querying asdf for the output files
that it produced, and allowing the phase to be switched off with an
argument.

> 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`.
> 

We've done something similar (the opposite) with the slynk package so
it's not unheard of.  If there's a better way to handle it though, we
should give it a go.

> 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).
> 

Definitely agree here.  We currently don't have overly many packages
relying on the build system so now would be a great time to fix it as
much as possible.

> 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.
> 

Hmm, I'd need to see more information here to be able to offer anything
useful.  I think I've ran into similar problems in the past but I don't
remember what the solutions were.

> 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?
> 

It's possible - this was the best way that I found at the time to
associate a system with a file directly.  AFAIK there's no way to ask
asdf to load a system from a file directly.  Any suggestions here are
welcome.

> [...]

Thanks,

--
Andy

  reply	other threads:[~2019-01-13 19:54 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 [this message]
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
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=20190113141426.00360523@mailservices.uwaterloo.ca \
    --to=ajpatter@uwaterloo.ca \
    --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).