#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 13 years ago by
Description: | modified (diff) |
---|
comment:2 Changed 13 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.