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/