all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ivan Petkov <ivanppetkov@gmail.com>
To: guix-devel <guix-devel@gnu.org>
Subject: Re: Current state of cargo-build-system
Date: Sun, 27 Jan 2019 15:13:24 -0800	[thread overview]
Message-ID: <D9708D30-BAED-49F5-A692-4D4B634F13D4@gmail.com> (raw)
In-Reply-To: <2E175E19-40C4-4954-A282-EE31C77D7A5D@gmail.com>

Answering my own question after digging through the guix source, maybe someone
can correct me if I’ve gotten things wrong!

> On Jan 25, 2019, at 3:57 PM, Ivan Petkov <ivanppetkov@gmail.com> wrote:
> 
> However, it appears that guix still insists on building the entire package even
> if we only depend on the "src" output. Is it possible to lazily build packages
> based on the type of dependency? Is this something the build system can finagle,
> or is this an inherent limitation to guix?

So it appears that guix takes package definitions and feeds them to their
respective build system, which then get lowered to a bag (a more low-level
representation of a package). The bag is then built as the actual derivation.

Thus it is possible for the build system to do any kind of preprocessing of the
dependency closure or even produce dynamic/hidden packages if neccessary (but is
this discouraged?).

It also appears that guix expects to build the package entirely and it allows
the build system to split up the result into various outputs, but there isn't a
notion of lazily building out only the required outputs (I suppose the real
solution to this would be to break up the package definition in the appropriate
way to support this).

I have some ideas on how to resolve our cargo woes, namely by introducing
crate-source-only packages that don't actually get built and substitute those
for any potential cycles. I'd like to make imports and maintenance of package
definitions as simple as possible, so I'd like to explore making the build
system a bit more clever in handling this.

Will do some more prototyping on my own and report back!

--Ivan

  reply	other threads:[~2019-01-27 23:13 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-21  0:11 Current state of cargo-build-system Ivan Petkov
2019-01-23 10:50 ` Ludovic Courtès
2019-01-23 11:46   ` ng0
2019-01-23 17:10 ` Danny Milosavljevic
2019-01-25 23:57   ` Ivan Petkov
2019-01-27 23:13     ` Ivan Petkov [this message]
2019-01-28  8:44     ` Ricardo Wurmus
2019-01-28 16:23       ` Ivan Petkov

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

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

  git send-email \
    --in-reply-to=D9708D30-BAED-49F5-A692-4D4B634F13D4@gmail.com \
    --to=ivanppetkov@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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.