On Thu 17 Nov 2011 18:44, Noah Lavine <noah.b.lav...@gmail.com> writes:

>>> - On a related note, why do most of the Tree-IL record type not appear
>>> in the define-type statement in tree-il.scm line 133, and is that
>>> connected with the borrow-core-vtables macro that I don't understand
>>> at all? :-)
>>
>> Yes.
>
> Then I have a new goal: understand that. :-)

The deal is that macroexpansion produces tree-il.  The usual
macroexpander is provided by psyntax.  But before psyntax is loaded,
when the first bits of Scheme are seen, there is a boot expander written
in C that produces tree-il, with support for a subset of Scheme.  This
is in expand.[ch].

Obviously it can't load scheme in order to get the vtable for <seq>, for
example, so it defines some core subset of tree-il in C.

Then when tree-il loads, it grabs that core subset and re-exports it.

Does that help?

Thre is similar but more limited code in psyntax.scm, right at the top.

Regards,

Andy
-- 
http://wingolog.org/

Reply via email to