<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/gexp.scm, branch merge-deploy</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://git.jakob.space/guix.git/atom?h=merge-deploy</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=merge-deploy'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-07-26T21:50:12Z</updated>
<entry>
<title>gexp: 'program-file' honors the current system and cross-compilation target.</title>
<updated>2019-07-26T21:50:12Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-26T21:48:03Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=2e8cabb8d630a8423e2e5a3bf150c1c0310b945d'/>
<id>urn:sha1:2e8cabb8d630a8423e2e5a3bf150c1c0310b945d</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/36813&gt;.
Reported by Jakob L. Kreuze &lt;zerodaysfordays.sdf.org@sdf.org&gt;.

* guix/gexp.scm (program-file-compiler): Pass #:system and #:target to
'gexp-&gt;script'.
(load-path-expression): Add #:system and #:target and honor them.
(gexp-&gt;script): Likewise.
* tests/gexp.scm ("program-file #:system"): New test.
* doc/guix.texi (G-Expressions): Adjust accordingly.
</content>
</entry>
<entry>
<title>gexp: 'compiled-modules' can cross-compile.</title>
<updated>2019-07-26T21:47:43Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-26T21:22:28Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=2cc5ec7f0d64e9e94f6ae637e1f9573d4b948f0a'/>
<id>urn:sha1:2cc5ec7f0d64e9e94f6ae637e1f9573d4b948f0a</id>
<content type='text'>
* guix/gexp.scm (compiled-modules): Add #:target and honor it.
</content>
</entry>
<entry>
<title>gexp: 'lowered-gexp-guile' now returns a &lt;derivation-input&gt;.</title>
<updated>2019-07-15T08:01:05Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-10T16:39:25Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=b9373e262730578ba6c3805ffe44900f10bc655c'/>
<id>urn:sha1:b9373e262730578ba6c3805ffe44900f10bc655c</id>
<content type='text'>
* guix/derivations.scm (derivation-input-output-path): New procedure.
* guix/gexp.scm (lower-gexp): Wrap GUILE in a &lt;derivation-input&gt;.
(gexp-&gt;derivation): Adjust accordingly.
* guix/remote.scm (remote-pipe-for-gexp, remote-eval): Adjust
accordingly.
* tests/gexp.scm ("lower-gexp"): Adjust accordingly.
</content>
</entry>
<entry>
<title>gexp: &lt;lowered-gexp&gt; separates sources from derivation inputs.</title>
<updated>2019-07-15T08:01:05Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-07-09T21:05:01Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=386857748097619b3b75a7bf93677b6aa742d03c'/>
<id>urn:sha1:386857748097619b3b75a7bf93677b6aa742d03c</id>
<content type='text'>
* guix/gexp.scm (lower-inputs): Return either &lt;derivation-input&gt; records
or store items.
(lower-reference-graphs): Return file/input pairs.
(&lt;lowered-gexp&gt;)[sources]: New field.
(lower-gexp): Adjust accordingly.
(gexp-&gt;input-tuple): Remove.
(gexp-&gt;derivation)[graphs-file-names]: Handle only the
'derivation-input?' and 'string?' cases.
Pass #:sources to 'raw-derivation'; ensure #:inputs contains only
&lt;derivation-input&gt; records.
* guix/remote.scm (remote-eval): Adjust to the new &lt;lowered-gexp&gt;
interface.
* tests/gexp.scm ("lower-gexp"): Adjust to expect &lt;derivation-input&gt;
records instead of &lt;gexp-input&gt;
</content>
</entry>
<entry>
<title>gexp: Add 'lower-gexp' and express 'gexp-&gt;derivation' in terms of it.</title>
<updated>2019-07-04T16:05:02Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-06-10T12:34:36Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=2ca41030d5189d83ea2a28ea64cf0e19efed5fd7'/>
<id>urn:sha1:2ca41030d5189d83ea2a28ea64cf0e19efed5fd7</id>
<content type='text'>
* guix/gexp.scm (gexp-input-thing, gexp-input-output)
(gexp-input-native?): Export.
(lower-inputs): Return &lt;gexp-input&gt; records instead of tuples.
(lower-reference-graphs): Adjust accordingly.
(&lt;lowered-gexp&gt;): New record type.
(lower-gexp, gexp-input-&gt;tuple): New procedure.
(gexp-&gt;derivation)[%modules]: Remove.
[requested-graft?]: New variable.
[add-modules]: New procedure.
Rewrite in terms of 'lower-gexp'.
(gexp-inputs): Add TODO comment.
* tests/gexp.scm ("lower-gexp"): New test.
</content>
</entry>
<entry>
<title>gexp: 'compiled-modules' loads modules before compiling them.</title>
<updated>2019-04-04T15:47:02Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-04-04T15:18:06Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=a31174e896047e6a0f42b69db331fdeebb3cc995'/>
<id>urn:sha1:a31174e896047e6a0f42b69db331fdeebb3cc995</id>
<content type='text'>
This works around &lt;https://bugs.gnu.org/15602&gt; in the context of
modules specified with 'with-imported-modules'.

* guix/gexp.scm (gexp-&gt;derivation): Add #:pre-load-modules? parameter
and pass it to 'compiled-modules'.
(compiled-modules): Add #:pre-load-modules? parameter and honor it.
* guix/packages.scm (patch-and-repack): Pass #:pre-load-modules? to
'gexp-&gt;derivation'.
</content>
</entry>
<entry>
<title>monads, gexp: Prevent redefinition of syntax parameters.</title>
<updated>2019-02-06T22:06:18Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-02-06T20:58:43Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=8245bb74fc7bdcdc2f9d458057cefc9cd982e489'/>
<id>urn:sha1:8245bb74fc7bdcdc2f9d458057cefc9cd982e489</id>
<content type='text'>
Fixes &lt;https://bugs.gnu.org/27476&gt;.

This fixes multi-threaded compilation of this code where syntax
parameters could end up being redefined and where a race condition could
lead a thread to see the "wrong" value of the syntax parameter.

* guix/monads.scm (define-syntax-parameter-once): New macro.
(&gt;&gt;=, return): Use it.
* guix/gexp.scm (define-syntax-parameter-once): New macro.
(current-imported-modules, current-imported-extensions): Use it.
</content>
</entry>
<entry>
<title>gexp: 'gexp-&gt;script' does not emit load-path expression when unnecessary.</title>
<updated>2019-01-07T22:50:56Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-07T22:45:15Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=efff32452a050e2cd715c38717dd03cad5511bc0'/>
<id>urn:sha1:efff32452a050e2cd715c38717dd03cad5511bc0</id>
<content type='text'>
This removes two elements from %LOAD-PATH and %LOAD-COMPILED-PATH of the
'guix' command and thus further reduces the number of 'stat' calls it
makes.

* guix/gexp.scm (load-path-expression): Return #f when MODULES and
EXTENSIONS are both empty.
(gexp-&gt;script): Don't emit anything when SET-LOAD-PATH is #f.
</content>
</entry>
<entry>
<title>gexp: Lowering a &lt;computed-file&gt; honors SYSTEM and TARGET.</title>
<updated>2019-01-04T23:08:04Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-04T23:01:18Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=9ec154f51f52ee3702c611637e96ccb0d59f543a'/>
<id>urn:sha1:9ec154f51f52ee3702c611637e96ccb0d59f543a</id>
<content type='text'>
* guix/gexp.scm (computed-file-compiler): Pass #:system and #:target to
'gexp-&gt;derivation'.
* tests/gexp.scm ("lower-object, computed-file, #:system"): New test.
</content>
</entry>
<entry>
<title>Use 'mapm' instead of 'sequence' + 'map'.</title>
<updated>2018-12-19T22:52:24Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-06-25T13:33:58Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=b334674fe5e99209e4f726e0d692ffa6bab9d6a1'/>
<id>urn:sha1:b334674fe5e99209e4f726e0d692ffa6bab9d6a1</id>
<content type='text'>
Previously we'd use the (sequence M (map P L)) idiom just because 'mapm'
was slower (not specialized for the given monad).  This is no longer the
case since commit dcb95c1fc936d74dfdf84b7e59eff66cb99c5a63.

* guix/gexp.scm (lower-inputs): Use (mapm M P L) instead of (sequence
M (map P L)).
(lower-references, gexp-&gt;sexp, imported-files): Likewise.
* guix/profiles.scm (profile-derivation): Likewise.
* guix/scripts/environment.scm (inputs-&gt;requisites): Likewise.
* guix/scripts/system.scm (copy-closure): Likewise.
</content>
</entry>
</feed>
