[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-janitors] #212: expand* and ppexpand* break on the "and" macro
From: |
Chicken Trac |
Subject: |
[Chicken-janitors] #212: expand* and ppexpand* break on the "and" macro |
Date: |
Wed, 14 Apr 2010 18:19:11 -0000 |
#212: expand* and ppexpand* break on the "and" macro
-------------------------+--------------------------------------------------
Reporter: jeronimo | Owner:
Type: defect | Status: new
Priority: minor | Milestone: 4.5.0
Component: extensions | Version:
Keywords: expand-full |
-------------------------+--------------------------------------------------
Hi,
I have tried sending the definition of "and" from R5RS,
{{{
(define-syntax my-and
(syntax-rules ()
((my-and) #t)
((my-and test) test)
((my-and test1 test2 ...)
(if test1 (my-and test2 ...) #f))))
}}}
to expand* and ppexpand*, and they break:
{{{
#;2> (ppexpand* '(my-and 1 2 3))
Error: (null-list?) bad argument type - not a list: 3
Call history:
<eval> (rename22 (##core#syntax my-and))
<eval> (##sys#cons (quote21 #f) (quote21 ()))
<eval> (##sys#cdr input13)
<eval> (##sys#eq? tail23 (quote ()))
<eval> (##sys#pair? temp24)
<eval> (##sys#eq? (##sys#cdr temp24) (quote ()))
<eval> (##sys#cdr temp24)
<eval> (##sys#car tail23) <--
}}}
But the macro works fine:
{{{
#;3> (my-and 1 2 3)
3
#;4> (my-and 2 #f 4)
#f
}}}
But it works with other macros I have been using.
I'm using git Chicken master/HEAD, and expand-full 1.0.0.
J.
--
Ticket URL: <http://www.irp.oist.jp/trac/chicken/ticket/212>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.
- [Chicken-janitors] #212: expand* and ppexpand* break on the "and" macro,
Chicken Trac <=