summaryrefslogtreecommitdiff
path: root/libguile/async.h
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2012-11-07 12:21:44 -0500
committerMark H Weaver <mhw@netris.org>2012-11-08 19:20:28 -0500
commitd9e368979bc2b8faa8859cde833b507e7eb83e7f (patch)
tree30378b872824923e1ac1ad73a6989bd12db4e083 /libguile/async.h
parent02a362a665ce462e4fe2409b2e2fc2c0007360f2 (diff)
downloadguile-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