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: wip-rtl, solstice edition Date: Mon, 25 Jun 2012 22:52:31 +0200 Message-ID: <87k3yvxgfk.fsf@gnu.org> References: <87sjdnz2gt.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1340657577 3169 80.91.229.3 (25 Jun 2012 20:52:57 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 25 Jun 2012 20:52:57 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Jun 25 22:52:57 2012 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SjGHF-0005Bd-Gz for guile-devel@m.gmane.org; Mon, 25 Jun 2012 22:52:53 +0200 Original-Received: from localhost ([::1]:56547 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SjGHF-0006uF-J3 for guile-devel@m.gmane.org; Mon, 25 Jun 2012 16:52:53 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:40891) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SjGHD-0006uA-EM for guile-devel@gnu.org; Mon, 25 Jun 2012 16:52:52 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SjGHB-0001l7-F0 for guile-devel@gnu.org; Mon, 25 Jun 2012 16:52:51 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:44093) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SjGHB-0001l2-7x for guile-devel@gnu.org; Mon, 25 Jun 2012 16:52:49 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1SjGH5-00051m-8y for guile-devel@gnu.org; Mon, 25 Jun 2012 22:52:43 +0200 Original-Received: from reverse-83.fdn.fr ([80.67.176.83]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 Jun 2012 22:52:43 +0200 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 25 Jun 2012 22:52:43 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 62 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: reverse-83.fdn.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 8 Messidor an 220 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.130005 (Ma Gnus v0.5) Emacs/24.1 (gnu/linux) Cancel-Lock: sha1:WPvB3neqrKgoTMYJ6NUdxroIPwo= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:14666 Archived-At: Hello, and happy Solstice! :-) Andy Wingo skribis: > First of all, I have changed the on-disk format for .go files to be ELF, > even for the old Guile 2.0-style bytecode. This increases the file size > somewhat, though the memory footprint is the same. What it gives us, > though, is extensibility. Neat. > For me, my next steps are: > > 1) Convert the ELF parser and linker to use symbols instead of the raw > ELF codes, as the DWARF parser does. It's more convenient and not > significantly different, performance-wise. Yes. The one at could use more comments, docstrings, and tests, if you ask me. :-) > 2) Add enough debugging information so that procedure-name works, and > that we can determine the bounds of procedures. (Determining where > a procedure ends is a precondition for being able to disassemble > it!) > > 3) Create tests for all of the opcodes. This task is somewhat > decoupled from the previous tasks; if people want to help out, see > libguile/vm-engine.c and test-suite/tests/rtl.test. I’m afraid that writing tests after code may either not happen, or may be unable to uncover bugs if it’s written by the same person, or may be difficult for someone without a clear picture of the API. WDYT? That said, I’ll look into all this as time permits, and see what I can contribute myself. > 4) Update the tools (debugger, frame printer, etc) to be able to deal > with the new debugging format. Sounds like a nice plan! > So, that's the status. Apologies for there being no overview yet; I > will try to write something about that soon. I reckon we are about a > month away from a VM that works well, and has good debugging > information, and two or three months away from a merge to master > (meaning, we compile all of Scheme). At that point we could look to > release the first 2.2 beta release, aiming at a final 2.2 sometime early > next year. Didn’t you once say “2.2 will have native compilation”? ;-) Seriously though, that seems like a good plan. I wonder what Noah’s attempts at JITing the 2.0 bytecode would have achieved, though, if we think of both JIT and the new VM as an “interim solution” before AOT native compilation. Thanks for the update, and thanks for all the work! Ludo’.