Summary
bound variables get stripped incorrectly
Metadata
- Id: 4035fb553674ebd4c62d696ae378423ccd19d544
- Trac id: 618
- Type: defect
- Reporter: felix
- Owner: felix
- Cc:
- Status: closed
- Component: expander
- Estimated difficulty:
- Resolution: fixed
- Priority: major
- Milestone: 4.9.0
- Version: 4.7.x
- Changetime: 2012-09-24 21:47:48 UTC
- Created: 2011-06-23 19:11:42 UTC
- Keywords: syntax strip-syntax
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.
Changes and comments
[2011-06-23 19:12:53 UTC] felix changed description
[2011-06-23 20:48:29 UTC] sjamaan changed status from new to assigned
[2011-06-23 20:48:29 UTC] sjamaan changed owner from sjamaan to felix
[2011-06-23 20:48:29 UTC] sjamaan wrote:
Please try 41cff6f in the resurrected expander-simplifications branch.
[2011-06-23 22:27:28 UTC] sjamaan wrote:
also 315fc36
[2011-06-24 17:36:41 UTC] sjamaan changed status from assigned to closed
[2011-06-24 17:36:41 UTC] sjamaan set resolution to fixed
[2011-06-24 17:36:41 UTC] sjamaan wrote:
Was merged, closing
[2012-09-24 21:47:48 UTC] felix wrote:
Milestone 4.8.0 deleted