From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: Introducing Jitgen Date: Fri, 10 Dec 2010 10:09:14 +0100 Message-ID: <877hfit2o5.fsf@gnu.org> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1291972191 3973 80.91.229.12 (10 Dec 2010 09:09:51 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 10 Dec 2010 09:09:51 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Dec 10 10:09:43 2010 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 1PQyz0-0005IV-Ao for guile-devel@m.gmane.org; Fri, 10 Dec 2010 10:09:42 +0100 Original-Received: from localhost ([127.0.0.1]:54007 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQyyz-00078T-Nr for guile-devel@m.gmane.org; Fri, 10 Dec 2010 04:09:41 -0500 Original-Received: from [140.186.70.92] (port=49496 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PQyyo-00078J-1C for guile-devel@gnu.org; Fri, 10 Dec 2010 04:09:35 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PQyyn-0008Tk-0e for guile-devel@gnu.org; Fri, 10 Dec 2010 04:09:29 -0500 Original-Received: from lo.gmane.org ([80.91.229.12]:39990) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PQyym-0008TJ-R3 for guile-devel@gnu.org; Fri, 10 Dec 2010 04:09:28 -0500 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1PQyyk-0005Bk-5I for guile-devel@gnu.org; Fri, 10 Dec 2010 10:09:26 +0100 Original-Received: from yoda.fdn.fr ([80.67.169.18]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 10 Dec 2010 10:09:26 +0100 Original-Received: from ludo by yoda.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 10 Dec 2010 10:09:26 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 49 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: yoda.fdn.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 20 Frimaire an 219 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.2 (gnu/linux) Cancel-Lock: sha1:F+0iZIiHVhW/tv4rSaQe0J/6ea8= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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:11242 Archived-At: Hello! Better late than never... Noah Lavine writes: [...] > The goal of Jitgen is to generate both of these from the following instructions: > > '((ip <- ip + ipup) > (tmp1 <- fp - spup) > (tmp2 <- sp - tmp1) > (tmp3 <- tmp2 == (n_val & 0x7)) > (branch-if tmp3 good_path) > (store-relative ipp 0 ip) > (store-relative spp 0 sp) > (store-relative fpp 0 fp) > (return jit_return_wrong_num_args) > (label good_path) > (sp <- sp + spup) > (store-relative sp 0 SCM_UNDEFINED) > ) Excellent! The challenge will be to see if it’s sufficiently expressive to express all the actual VM instructions, and allows the generated code to be about the same as the hand-written one. > 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. > If so, then also what do you think of the code style and interfaces, > and do you have any other feedback? The code style looks OK to me. This approach raises bootstrapping issues, or semi-issues. For instance, tarballs could come with all the pre-generated C files containing the VM instructions, but we may also have to check them in. That’s how psyntax bootstrapping is handled already, so it’s probably OK. Thanks, Ludo’.