unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: 36578@debbugs.gnu.org
Subject: [bug#36578] [PATCH 0/9] Modernize the API of the 'derivation' primitive
Date: Wed, 10 Jul 2019 19:04:08 +0200	[thread overview]
Message-ID: <20190710170408.21321-1-ludo@gnu.org> (raw)

Hello Guix!

This is the continuation of the season cleanup!  These patches
adjust <lowered-gexp> to refer to <derivation-input>.

More importantly, they change the calling convention of the
‘derivation’ primitive such that #:inputs must be a list
of <derivation-input>, and a new #:sources parameter must be
used to pass “sources” (content-addressed files added to the
store with the ‘add-to-store’ RPC or similar.)  This replaces
the former weird tuples used as #:inputs.  The weird tuples
are still allowed but deprecated.

There are few users of ‘derivation’ and ‘raw-derivation’.  One
of them is ‘build-expression->derivation’, which I hope to
officially deprecate soonish in favor of ‘gexp->derivation’; in
the meantime, it still uses the deprecated calling convention
but deprecation warnings are disabled in this case.

Eventually, we’ll be able to build <derivation> entirely in
memory, which would allow us to create .drv files in the store
at once (maybe with RPC pipelining), or to not create them
at all.  We’ll see…

Feedback welcome!

Ludo’.

Ludovic Courtès (9):
  derivations: 'derivation' primitive accepts <derivation> and
    #:sources.
  gexp: <lowered-gexp> separates sources from derivation inputs.
  gnu: guile-bootstrap: Use the new 'derivation' calling convention.
  download: Use the new 'derivation' calling convention.
  derivations: 'map-derivation' uses the new 'derivation' calling
    convention.
  derivations: Update tests to use new calling convention.
  derivations: Deprecate the previous calling convention.
  gexp: 'lowered-gexp-guile' now returns a <derivation-input>.
  channels: Avoid use of 'derivation-input-path'.

 gnu/packages/bootstrap.scm |  7 +--
 guix/channels.scm          |  5 ++-
 guix/derivations.scm       | 65 ++++++++++++++++++++-------
 guix/download.scm          |  3 +-
 guix/gexp.scm              | 92 ++++++++++++++++++++------------------
 guix/remote.scm            | 38 +++++-----------
 po/guix/POTFILES.in        |  1 +
 tests/derivations.scm      | 89 +++++++++++++++---------------------
 tests/gexp.scm             |  8 ++--
 9 files changed, 159 insertions(+), 149 deletions(-)

-- 
2.22.0

             reply	other threads:[~2019-07-10 17:05 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-10 17:04 Ludovic Courtès [this message]
2019-07-10 17:11 ` [bug#36578] [PATCH 1/9] derivations: 'derivation' primitive accepts <derivation> and #:sources Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 2/9] gexp: <lowered-gexp> separates sources from derivation inputs Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 3/9] gnu: guile-bootstrap: Use the new 'derivation' calling convention Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 4/9] download: " Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 5/9] derivations: 'map-derivation' uses " Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 6/9] derivations: Update tests to use new " Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 7/9] derivations: Deprecate the previous " Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 8/9] gexp: 'lowered-gexp-guile' now returns a <derivation-input> Ludovic Courtès
2019-07-10 17:11   ` [bug#36578] [PATCH 9/9] channels: Avoid use of 'derivation-input-path' Ludovic Courtès
2019-07-15  8:46 ` bug#36578: [PATCH 0/9] Modernize the API of the 'derivation' primitive Ludovic Courtès

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=20190710170408.21321-1-ludo@gnu.org \
    --to=ludo@gnu.org \
    --cc=36578@debbugs.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).