[Top][All Lists]
[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.