chicken-janitors
[Top][All Lists]
Advanced

[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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]