diff options
author | Mark H Weaver <mhw@netris.org> | 2012-11-07 12:21:44 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2012-11-08 19:20:28 -0500 |
commit | d9e368979bc2b8faa8859cde833b507e7eb83e7f (patch) | |
tree | 30378b872824923e1ac1ad73a6989bd12db4e083 /libguile/async.h | |
parent | 02a362a665ce462e4fe2409b2e2fc2c0007360f2 (diff) | |
download | guile-d9e368979bc2b8faa8859cde833b507e7eb83e7f.tar.gz |
Implement functional record setters.
Written in collaboration with Ludovic Courtès <ludo@gnu.org>
* module/srfi/srfi-9.scm: Internally, rename 'accessor' to 'getter'
and 'modifier' to 'setter'.
(define-tagged-inlinable, getter-type, getter-index, getter-copier,
%%on-error, %%set-fields): New macros.
(%define-record-type): New macro for creating both mutable and
immutable records, and containing a substantially rewritten version of
the code formerly in 'define-record-type'.
(define-record-type): Now just a wrapper for '%define-record-type'.
(throw-bad-struct, make-copier-id): New procedures.
* module/srfi/srfi-9/gnu.scm (define-immutable-record-type, set-field,
and set-fields): New exported macros.
(collate-set-field-specs): New procedure.
(%set-fields-unknown-getter, %set-fields): New macros.
* test-suite/tests/srfi-9.test: Add tests. Rename getters and setters
in existing tests to make the functional setters look better.
Diffstat (limited to 'libguile/async.h')
0 files changed, 0 insertions, 0 deletions