Opened 14 years ago

Last modified 12 years ago

#618 closed defect

bound variables get stripped incorrectly — at Initial Version

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

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 (0)

Note: See TracTickets for help on using tickets.