Opened 14 years ago
Last modified 12 years ago
#618 closed defect
bound variables get stripped incorrectly — at Version 1
Reported by: | felix winkelmann | Owned by: | sjamaan |
---|---|---|---|
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.
Note: See
TracTickets for help on using
tickets.