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: Introducing Jitgen Date: Fri, 28 Jan 2011 11:34:35 +0100 Message-ID: References: <877hfit2o5.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1296222375 27615 80.91.229.12 (28 Jan 2011 13:46:15 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 28 Jan 2011 13:46:15 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Jan 28 14:46:11 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PioeQ-0000Nq-O6 for guile-devel@m.gmane.org; Fri, 28 Jan 2011 14:46:11 +0100 Original-Received: from localhost ([127.0.0.1]:47039 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PioeQ-0004zq-9A for guile-devel@m.gmane.org; Fri, 28 Jan 2011 08:46:10 -0500 Original-Received: from [140.186.70.92] (port=43121 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PioeM-0004yI-35 for guile-devel@gnu.org; Fri, 28 Jan 2011 08:46:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PioeL-0002Yq-0J for guile-devel@gnu.org; Fri, 28 Jan 2011 08:46:05 -0500 Original-Received: from a-pb-sasl-sd.pobox.com ([64.74.157.62]:49733 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PioeK-0002Yk-Sp; Fri, 28 Jan 2011 08:46:04 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-sd.pobox.com (Postfix) with ESMTP id 28D8E3D16; Fri, 28 Jan 2011 08:46:55 -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:content-transfer-encoding; s=sasl; bh=KktijYOoEN8b FGKLrAWHmu8eWkg=; b=I+CUO66GZ3z0/Z9Yc6mUccT35Rh3AL6em3gfROpgsJwS kAtCCoGma7Q4GzZfAVEcUFwfbaRlaXV+m2n3RvhP8sBJ8CDyXb45bTTCVyvjBE4K jKfybByNzsqfSjEvyCSc5gFV0e7EaRUEd4CyboJq5iF8zUBkX/syf4OFr65lW6Y= 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:content-transfer-encoding; q=dns; s=sasl; b=WfZhdE mG9x5coByzFkGZLncfslXE2BDaqRtV1v8Uj0cLIN3YYsTQIzFC3fINppdTxhOesE 1TZO1kxSKx+ZmvH0v+2etebnnP6z01uhVWaBmUrOqOvxlLJyTyligL2RTqllhrVU oBds+WvMYYR95bhul16CS4mlkjEjajvZuWpcs= 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 15BB23D11; Fri, 28 Jan 2011 08:46:54 -0500 (EST) Original-Received: from unquote.localdomain (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 5290F3D0F; Fri, 28 Jan 2011 08:46:52 -0500 (EST) In-Reply-To: <877hfit2o5.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 10 Dec 2010 10:09:14 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: 10E60CB0-2AE5-11E0-9C1A-BC4EF3E828EC-02397024!a-pb-sasl-sd.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-Received-From: 64.74.157.62 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:11375 Archived-At: Heya Noah, On Fri 10 Dec 2010 10:09, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Better late than never... Indeed, and my apologies for only getting back to you now. > Noah Lavine writes: > >> My biggest question is, is this something that you would be interested >> in having in Guile? > > I think so, yes. Not in 2.0, I guess, but when it starts stabilizing it > could go into a branch. I am skeptical. I think that the jitgen language sounds like a fine intermediate thing, but I don't know if it will be good enough for describing the whole VM. OTOH something like it does seem useful for implementing all of the VM ops in the JIT engine. Have you considered going the other way? That's to say, writing a limited C -> Jitgen parser, and thus keeping the primary representation of the VM in C? It doesn't have to be a full parser. It doesn't have to expand macros -- i.e. it can interpret NEXT() directly, without relying on details of its expansion. If there is an idiom that the parser is having a hard time with, we can change the C VM implementation to make the meanings more explicit, via more macro use. In this way we would keep the VM's canonical representation in a well-defined language. This makes it easier for anyone to maintain and fix the VM. It also frees you up to make changes in jitgen without worrying about impacting the non-jit case. What do you think? Regards, Andy --=20 http://wingolog.org/