[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] node types in chicken's core language
From: |
Peter Bex |
Subject: |
Re: [Chicken-hackers] node types in chicken's core language |
Date: |
Thu, 8 Aug 2013 15:41:46 +0200 |
User-agent: |
Mutt/1.4.2.3i |
On Thu, Aug 08, 2013 at 09:24:29PM +0800, Xing Su wrote:
> Hi everybody! I have a question about node types in chicken's CORE language.
>
> I'd like to hack into chicken and now I'm reading through the source code.
> The release version I use is the latest stable release, version 4.8.0.4.
Cool!
>
> According to the compiler internal on chicken wiki
> <http://wiki.call-cc.org/Internals>, the there are several compiler
> passes from Scheme code to native C, and after the first pass named
> CANONICALIZATION,
> the scheme code is translated to the chicken CORE language, which is
> actually an
> abstract-syntax-tree. I want to insert a user-defined pass here after
> CANONICALIZATION
> and before CPS CONVERSION, so all kinds of nodes in CORE language should
> be taken
> in to consideration.
>
> What confused me is that, as the wiki says, there are compiler nodes
> <http://wiki.call-cc.org/compiler-nodes> and
> compiler special forms <http://wiki.call-cc.org/compiler-special-forms>
> and they share some type of nodes.
> After a simple test, I found that after canonicalization can produce nodes
> in both category.
>
> I wonder that
> (1) what's the difference between these two categories?
I don't know if these are truly separate. For example, ##core#inline
is listed on both wiki pages. I'm not even sure these wiki pages have
been maintained along with the core (but they might).
> (2) should I deal with all node types in both categories when wring a
> user-defined pass?
I'm CC'ing Felix, since he is not subscribed to this list. I think he'll
be able to help you more than I can.
Cheers,
Peter
--
http://www.more-magic.net