[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] #277: keywords should not be renamed by syntax expans
From: |
Chicken Trac |
Subject: |
[Chicken-janitors] #277: keywords should not be renamed by syntax expansion |
Date: |
Sun, 27 Jun 2010 16:16:57 -0000 |
#277: keywords should not be renamed by syntax expansion
----------------------+-----------------------------------------------------
Reporter: felix | Owner: felix
Type: defect | Status: new
Priority: critical | Milestone: 4.6.0
Component: expander | Version: 4.5.x
Keywords: keywords |
----------------------+-----------------------------------------------------
(Example by sjamaan)
{{{
(define-syntax foo
(syntax-rules ()
((foo procname)
(define (procname #!key (who "world"))
(print "hello, " who)))))
(foo bar)
(bar who: 1)
}}}
expands into:
{{{
(set! bar
(##core#lambda
tmp3839
(let ((who3040
(##sys#get-keyword 'who30: tmp3839 (##core#lambda ()
'"world"))))
(let () (print '"hello, " who3040)))))
}}}
and doesn't detect the "who:" keyword correctly on invocation.
Note that the `who` variable must be renamed, the keyword not.
--
Ticket URL: <http://www.irp.oist.jp/trac/chicken/ticket/277>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
- [Chicken-janitors] #277: keywords should not be renamed by syntax expansion,
Chicken Trac <=