<feed xmlns='http://www.w3.org/2005/Atom'>
<title>guix.git/guix/records.scm, branch master</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=master</id>
<link rel='self' href='https://git.jakob.space/guix.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/'/>
<updated>2019-03-30T10:08:39Z</updated>
<entry>
<title>records: Support custom 'this' identifiers.</title>
<updated>2019-03-30T10:08:39Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-03-29T21:40:55Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=d2be7e3c4ba8d6d0dde9b4c0bff623ab85637424'/>
<id>urn:sha1:d2be7e3c4ba8d6d0dde9b4c0bff623ab85637424</id>
<content type='text'>
This lets record users choose an identifier other than 'this-record'.

* guix/records.scm (make-syntactic-constructor): Add #:this-identifier.
[wrap-field-value]: Honor it.
(define-record-type*): Add form with extra THIS-IDENTIFIER and honor
it.
* tests/records.scm ("define-record-type* &amp; thunked &amp; inherit &amp; custom this"):
New test.
</content>
</entry>
<entry>
<title>records: Allow thunked fields to refer to 'this-record'.</title>
<updated>2019-03-25T22:37:06Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-03-22T13:02:00Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=abd4d6b33dba4de228e90ad15a8efb456fcf7b6e'/>
<id>urn:sha1:abd4d6b33dba4de228e90ad15a8efb456fcf7b6e</id>
<content type='text'>
* guix/records.scm (this-record): New syntax parameter.
(make-syntactic-constructor)[wrap-field-value]: When F is thunked,
return a one-argument lambda instead of a thunk, and parameterize
THIS-RECORD.
(define-record-type*)[thunked-field-accessor-definition]: Pass X
to (real-get X).
* tests/records.scm ("define-record-type* &amp; thunked &amp; this-record")
("define-record-type* &amp; thunked &amp; default &amp; this-record")
("define-record-type* &amp; thunked &amp; inherit &amp; this-record"): New tests.
</content>
</entry>
<entry>
<title>records: Make 'report-duplicate-field-specifier' available at expansion-time.</title>
<updated>2019-01-24T19:48:14Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2019-01-24T19:48:14Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=bbb2bd50dcb160d8e60fc657b96f1b6739cd8d89'/>
<id>urn:sha1:bbb2bd50dcb160d8e60fc657b96f1b6739cd8d89</id>
<content type='text'>
Fixes a regression in 'guix pack -R' introduced with commit
c2dcff41c2e47f5f978f467864d5ed7829939884.  The imported modules of
'c-compiler' would be compiled in this order: first (guix records),
then (guix search-paths).  Consequently,
'report-duplicate-field-specifier' would be reported as unbound while
compiling (guix search-paths), leading to a build failure.

* guix/records.scm (report-invalid-field-specifier)
(report-duplicate-field-specifier): Move within 'eval-expand'.
</content>
</entry>
<entry>
<title>records: Detect duplicate field initializers.</title>
<updated>2019-01-22T22:04:05Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-04-19T16:33:25Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=c2dcff41c2e47f5f978f467864d5ed7829939884'/>
<id>urn:sha1:c2dcff41c2e47f5f978f467864d5ed7829939884</id>
<content type='text'>
* guix/records.scm (report-duplicate-field-specifier): New procedure.
(make-syntactic-constructor): Call it.
* tests/records.scm ("define-record-type* &amp; duplicate initializers"):
New test.

Co-authored-by: Mark H Weaver &lt;mhw@netris.org&gt;
</content>
</entry>
<entry>
<title>records: Adjust to test changes in 'record-abi-mismatch-error'.</title>
<updated>2018-08-31T15:26:56Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-31T15:23:38Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=8e1395be5c7d1a6e895fb5b1e70bebc0fef161a6'/>
<id>urn:sha1:8e1395be5c7d1a6e895fb5b1e70bebc0fef161a6</id>
<content type='text'>
Fixes a test failure introduced in
de5cbd4a38a33e0412f1c481fe8e01a871dc13e5.

* guix/records.scm (abi-check): Refer to TYPE in an unquoted context so
we get at the RTD.
* tests/records.scm ("ABI checks"): Adjust 'catch' handler to changes
in the 'record-abi-mismatch-error' arguments.
</content>
</entry>
<entry>
<title>records: Adjust 'record-abi-mismatch-error' arguments.</title>
<updated>2018-08-29T21:32:01Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-08-29T20:28:06Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=de5cbd4a38a33e0412f1c481fe8e01a871dc13e5'/>
<id>urn:sha1:de5cbd4a38a33e0412f1c481fe8e01a871dc13e5</id>
<content type='text'>
Previously, 'display-error' (as used by 'warn-about-load-error', for
instance) would be called with a wrong number of arguments when a
'record-abi-mismatch-error' was caught:

  warning: failed to load '(gnu tests install)':
  Backtrace:
  [...]
  ERROR: In procedure display-error:
  Wrong number of arguments to #&lt;procedure display-error (_ _ _ _ _ _)&gt;

Now you get warnings and error reports as intended:

  warning: failed to load '(gnu tests install)':
  In procedure abi-check: &lt;openssh-configuration&gt;: record ABI mismatch; recompilation needed
  warning: failed to load '(gnu tests ssh)':
  In procedure abi-check: &lt;openssh-configuration&gt;: record ABI mismatch; recompilation needed

* guix/records.scm (print-record-abi-mismatch-error): Remove.
Remove top-level call to 'set-exception-printer!'.
(abi-check): Use arguments as expected by 'display-error'.
</content>
</entry>
<entry>
<title>records: Make a couple of procedures available at expansion time.</title>
<updated>2018-05-31T16:13:08Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-05-31T15:32:22Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=9768848af80764af6040e75867ae15a41228364b'/>
<id>urn:sha1:9768848af80764af6040e75867ae15a41228364b</id>
<content type='text'>
* guix/records.scm (current-abi-identifier, abi-check): Wrap in
'eval-when'.
</content>
</entry>
<entry>
<title>records: Insert record type ABI checks in constructors.</title>
<updated>2018-05-23T08:21:02Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2018-05-16T08:05:24Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=7874bbbb9f09cc14ea3e179fd0fa10da5f90cfc7'/>
<id>urn:sha1:7874bbbb9f09cc14ea3e179fd0fa10da5f90cfc7</id>
<content type='text'>
* guix/records.scm (print-record-abi-mismatch-error): New procedure.
&lt;top level&gt;: Add 'set-exception-printer!' call.
(current-abi-identifier, abi-check): New procedures.
(make-syntactic-constructor): Add #:abi-cookie parameter.  Insert calls
to 'abi-check'.
(define-record-type*)[compute-abi-cookie]: New procedure.
Use it and emit a definition of the 'current-abi-identifier' for TYPE.
* tests/records.scm ("ABI checks"): New test.
</content>
</entry>
<entry>
<title>records: Use 'make-struct/no-tail'.</title>
<updated>2017-12-01T17:47:34Z</updated>
<author>
<name>Ludovic Courtès</name>
<email>ludo@gnu.org</email>
</author>
<published>2017-12-01T17:09:22Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=cea25b08bfd22bda940e5ac7ea29d4fa035d8303'/>
<id>urn:sha1:cea25b08bfd22bda940e5ac7ea29d4fa035d8303</id>
<content type='text'>
* guix/records.scm (make-syntactic-constructor): Use
'make-struct/no-tail' as 'make-struct' is deprecated as of 2.2.3.
</content>
</entry>
<entry>
<title>guix: records: Add match-record.</title>
<updated>2017-11-05T14:21:53Z</updated>
<author>
<name>nee</name>
<email>nee.git@cock.li</email>
</author>
<published>2017-10-25T18:44:54Z</published>
<link rel='alternate' type='text/html' href='https://git.jakob.space/guix.git/commit/?id=6692d8454a89e542d85d2b6a93adfd373aeec39c'/>
<id>urn:sha1:6692d8454a89e542d85d2b6a93adfd373aeec39c</id>
<content type='text'>
* guix/records.scm: New syntax-rule.

Signed-off-by: Ludovic Courtès &lt;ludo@gnu.org&gt;
</content>
</entry>
</feed>
