mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-23 03:54:12 +02:00
add support for variable transformers: settable identifier syntax
* module/ice-9/psyntax.scm (set!): Handle variable transformers; though, they cannot produce definitions. (make-variable-transformer): New procedure. (identifier-syntax): Allow the R6RS form that makes variable transformers. * module/ice-9/psyntax-pp.scm: Regenerated. * doc/ref/r6rs.texi (R6RS Incompatibilities): Remove letrec* item, and add set! restriction.
This commit is contained in:
parent
7034da249b
commit
bfccdcd530
3 changed files with 8296 additions and 7755 deletions
|
@ -24,10 +24,6 @@ intentional, some of them are bugs, and some are simply unimplemented features.
|
|||
Please let the Guile developers know if you find one that is not on this list.
|
||||
|
||||
@itemize
|
||||
@item
|
||||
In the R6RS, internal definitions expand to @code{letrec*}, not @code{letrec}.
|
||||
Guile does not support @code{letrec*}, though that would be nice.
|
||||
|
||||
@item
|
||||
The R6RS specifies many situations in which a conforming implementation must
|
||||
signal a specific error. Guile doesn't really care about that too much -- if a
|
||||
|
@ -37,8 +33,12 @@ correct R6RS program would not hit that error, we don't bother checking for it.
|
|||
Multiple @code{library} forms in one file are not yet supported. This is because
|
||||
the expansion of @code{library} sets the current module, but does not restore
|
||||
it. This is a bug.
|
||||
@end itemize
|
||||
|
||||
@item
|
||||
A @code{set!} to a variable transformer may only expand to an expression, not a
|
||||
definition -- even if the original @code{set!} expression was in definition
|
||||
context.
|
||||
@end itemize
|
||||
|
||||
@node R6RS Standard Libraries
|
||||
@subsection R6RS Standard Libraries
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue