From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: Tree-IL Questions Date: Thu, 17 Nov 2011 22:59:12 +0100 Message-ID: <87y5veh0lr.fsf@pobox.com> References: <871ut7j5oi.fsf@pobox.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1321567167 3957 80.91.229.12 (17 Nov 2011 21:59:27 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 17 Nov 2011 21:59:27 +0000 (UTC) Cc: guile-devel To: Noah Lavine Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Nov 17 22:59:23 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RR9zO-0001S9-M9 for guile-devel@m.gmane.org; Thu, 17 Nov 2011 22:59:22 +0100 Original-Received: from localhost ([::1]:55254 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RR9zO-0004vM-2s for guile-devel@m.gmane.org; Thu, 17 Nov 2011 16:59:22 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:41839) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RR9zL-0004vD-8Z for guile-devel@gnu.org; Thu, 17 Nov 2011 16:59:20 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RR9zK-0000s2-0T for guile-devel@gnu.org; Thu, 17 Nov 2011 16:59:19 -0500 Original-Received: from a-pb-sasl-sd.pobox.com ([74.115.168.62]:48286 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RR9zJ-0000rv-T2 for guile-devel@gnu.org; Thu, 17 Nov 2011 16:59:17 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 345AF8771; Thu, 17 Nov 2011 16:59:17 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=Ar0Inb80TQophJNDPoHocwPv6RQ=; b=bnCQZh oopo6IulkWuwUnB7nmrp4dShydi6ygGCNSV08Fm2j/HVoe0SkwIgq+0qFwvwR/7C me2HDdZMHSTK2VbQ36iez6494ctMzPywb35iEXWEdx6Qbii0KI1ALEkqMfyGdCyU mLjZ+dt7me4Sl3XsJAcvyGVDrVwyqwgCOJHWg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=wibeo5bGjxX61Sdm0+yhEY8WD2TbTY02 bNL2wTSAK8FzMIAy0IY9qUH7lMT2I++/F0pqBLvnSlAcR6LzpWf4lHvGWwmazRaK hcCGs1Q3iMvFERBOwTwoCXuzhEI73eaIfvhbtDtDYTddNKB+VhCQqjpgXrHngSZQ FcdUtl+x8Z8= Original-Received: from a-pb-sasl-sd.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 2DAA08770; Thu, 17 Nov 2011 16:59:17 -0500 (EST) Original-Received: from badger (unknown [90.164.198.39]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTPSA id 9808A876F; Thu, 17 Nov 2011 16:59:16 -0500 (EST) In-Reply-To: (Noah Lavine's message of "Thu, 17 Nov 2011 09:44:47 -0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) X-Pobox-Relay-ID: 64C39C9E-1167-11E1-86B7-65B1DE995924-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 74.115.168.62 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:12910 Archived-At: On Thu 17 Nov 2011 18:44, Noah Lavine 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 , 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/