#618 closed defect (fixed)
bound variables get stripped incorrectly
| Reported by: | felix winkelmann | Owned by: | felix winkelmann |
|---|---|---|---|
| Priority: | major | Milestone: | 4.9.0 |
| Component: | expander | Version: | 4.7.x |
| Keywords: | syntax strip-syntax | Cc: | |
| Estimated difficulty: |
Description (last modified by )
Matthew Flatt reports:
The following program prints a gensym in v4.7.0 and 4aaea216cc9887, but I think it should print the symbol 'x:
(define-syntax c
(syntax-rules ()
[(_)
(let ([x 10])
(let-syntax ([z (syntax-rules ()
[(_) (quote x)])])
(write (z))
(newline)))]))
(c)
I wrote the example because I'm suspicious of "compiler.scm" treating ##core#quote' and ##core#syntax the same. Maybe ##sys#strip-syntax in "expand.scm" is supposed to do different things in quote and syntax mode; the comment "if se is given, retain bound vars" in ##sys#strip-syntax` suggests that it had two modes at some point in the past.
Change History (5)
comment:1 Changed 14 years ago by
| Description: | modified (diff) |
|---|
comment:2 Changed 14 years ago by
| Owner: | changed from sjamaan to felix winkelmann |
|---|---|
| Status: | new → assigned |
Note: See
TracTickets for help on using
tickets.

Please try 41cff6f in the resurrected expander-simplifications branch.