chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #852: csi segfaults when playing with modules and


From: Chicken Trac
Subject: Re: [Chicken-janitors] #852: csi segfaults when playing with modules and macros
Date: Fri, 18 May 2012 07:53:56 -0000

#852: csi segfaults when playing with modules and macros
----------------------+-----------------------------------------------------
  Reporter:  megane   |       Owner:       
      Type:  defect   |      Status:  new  
  Priority:  minor    |   Milestone:  4.8.0
 Component:  unknown  |     Version:  4.7.x
Resolution:           |    Keywords:       
----------------------+-----------------------------------------------------

Comment(by sjamaan):

 The problem here is that bar returns the actual macro transformer
 procedure bound to {{{define}}}. In the compiler, that doesn't work
 because macro transformers aren't available as first-class procedures in
 the compiler (unless you make them available somehow).

 You *might* be able to see this by modifying it to an er-macro-
 transformer:

 {{{
  (module foo
   (bar)
   (import chicken scheme)

   (define-syntax bar
     (er-macro-transformer
      (lambda (e r c)
        `(,(r 'list) ,(r 'define))))))

  (module a
   *
   (import chicken scheme)
   (import foo)

   (bar))

 }}}

 This code crashes in master (w/ debugbuild), but shows the following in
 4.7.0 (w/o debugbuild):

 {{{
 (((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-
 rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules ((syntax-rules
 ((syntax-rules ((syntax-rules ((synta......
 }}}

 That's how macro transformers are currently printed ;)

 The segfault is a problem in the printer, not in the macro transformer.

-- 
Ticket URL: <http://bugs.call-cc.org/ticket/852#comment:1>
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]