<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/gexp.scm, branch master</title>
<subtitle>Personal branch of https://git.savannah.gnu.org/cgit/guix.git/ for implementing 'guix deploy'.
</subtitle>
<id>https://www.git.jakob.space/guix.git/atom?h=master</id>
<link rel='self' href='https://www.git.jakob.space/guix.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/'/>
<updated>2019-04-04T15:47:02Z</updated>
<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://www.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://www.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://www.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://www.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://www.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>
<entry>
<title>Merge branch 'master' into core-updates</title>
<updated>2018-11-29T14:56:49Z</updated>
<author>
<name>Marius Bakke</name>
<email>mbakke@fastmail.com</email>
</author>
<published>2018-11-29T14:56:49Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=25ca46985ccb26880f98b479d2a3ac862b20006e'/>
<id>urn:sha1:25ca46985ccb26880f98b479d2a3ac862b20006e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>derivations: Add properties.</title>
<updated>2018-11-28T09:39:58Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-11-26T21:14:11Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=8856f409d13cd7376be4319b9f75df0692c009d6'/>
<id>urn:sha1:8856f409d13cd7376be4319b9f75df0692c009d6</id>
<content type='text'>
* guix/derivations.scm (derivation): Add #:properties parameter.
[user+system-env-vars]: Honor it.
(derivation-properties): New procedure.
(build-expression-&gt;derivation): Add #:properties and pass it to
'derivation'.
* guix/gexp.scm (gexp-&gt;derivation): Likewise.
* tests/derivations.scm ("derivation-properties"): New test.
* tests/gexp.scm ("gexp-&gt;derivation properties"): New test.
* doc/guix.texi (Derivations, G-Expressions): Adjust accordingly.
</content>
</entry>
<entry>
<title>Merge branch 'master' into core-updates</title>
<updated>2018-11-14T20:20:46Z</updated>
<author>
<name>Marius Bakke</name>
<email>mbakke@fastmail.com</email>
</author>
<published>2018-11-14T20:20:46Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=79ee97a144aaaa890be0724aaf796e2a771179d7'/>
<id>urn:sha1:79ee97a144aaaa890be0724aaf796e2a771179d7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>store: Add a functional object cache and use it in 'lower-object'.</title>
<updated>2018-11-12T22:37:13Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2015-11-20T17:44:29Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=c6080c3249560ef777b9a4eb6a78e7605b8b98d8'/>
<id>urn:sha1:c6080c3249560ef777b9a4eb6a78e7605b8b98d8</id>
<content type='text'>
This leads to ~25% improvements on things like:

  guix system build desktop.tmpl --no-grafts -d

* guix/store.scm (&lt;nix-server&gt;)[object-cache]: New field.
* guix/store.scm (open-connection): Initialize it.
(cache-object-mapping, lookup-cached-object, %mcached): New procedures.
(mcached): New macro.
* guix/gexp.scm (lower-object): Use it.
* guix/grafts.scm (grafting?): New procedure.
</content>
</entry>
<entry>
<title>Merge branch 'master' into core-updates</title>
<updated>2018-11-05T22:56:22Z</updated>
<author>
<name>Marius Bakke</name>
<email>mbakke@fastmail.com</email>
</author>
<published>2018-11-05T22:56:22Z</published>
<link rel='alternate' type='text/html' href='https://www.git.jakob.space/guix.git/commit/?id=f4a5faa9dcadc698383e15743ac5f974ee0e3c8b'/>
<id>urn:sha1:f4a5faa9dcadc698383e15743ac5f974ee0e3c8b</id>
<content type='text'>
</content>
</entry>
</feed>
