[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] #618: bound variables get stripped incorrectly
From: |
Chicken Trac |
Subject: |
[Chicken-janitors] #618: bound variables get stripped incorrectly |
Date: |
Thu, 23 Jun 2011 17:11:42 -0000 |
#618: bound variables get stripped incorrectly
---------------------------------+------------------------------------------
Reporter: felix | Owner: sjamaan
Type: defect | Status: new
Priority: major | Milestone: 4.8.0
Component: expander | Version: 4.7.x
Keywords: syntax strip-syntax |
---------------------------------+------------------------------------------
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.
--
Ticket URL: <http://bugs.call-cc.org/ticket/618>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
- [Chicken-janitors] #618: bound variables get stripped incorrectly,
Chicken Trac <=