1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-22 04:30:19 +02:00
guile/module
Mark H Weaver d9e368979b 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.
2012-11-08 19:20:28 -05:00
..
ice-9 Fix copyright years in `futures.scm'. 2012-11-05 19:16:09 +01:00
language Simplify calls to 'eqv?' when one argument is an immediate constant. 2012-10-08 11:56:10 -04:00
oop fix goops compilation when current language is not scheme 2012-07-05 10:15:02 +02:00
rnrs Improve the usage of variable names in Scheme docstrings. 2012-02-02 12:24:40 +01:00
scripts Fix a couple of warnings. 2012-01-26 00:37:23 +01:00
srfi Implement functional record setters. 2012-11-08 19:20:28 -05:00
sxml remove duplicate when/unless definitions 2012-01-20 21:16:50 +01:00
system Don't stat(2) and access(2) the .go location before using it. 2012-09-11 23:44:59 +02:00
texinfo docbook->texi fix 2012-05-08 16:03:54 +02:00
web web: Fix possible file descriptor leak in `open-socket-for-uri'. 2012-10-13 21:13:10 +02:00
Makefile.am Fix @ and @@ to not capture lexicals; new @@ @@ form for R6RS libraries 2012-07-06 20:12:50 +02:00
rnrs.scm Enhance transcoder-related functionality of `(rnrs io ports)' 2011-03-13 23:14:43 +01:00
statprof.scm add gcprof 2011-05-05 11:43:12 +02:00
texinfo.scm more robust texinfo alias handling 2012-08-25 14:11:45 +02:00