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: further guile-vm integration Date: Wed, 20 Aug 2008 13:50:49 -0700 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1219265524 10282 80.91.229.12 (20 Aug 2008 20:52:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 20 Aug 2008 20:52:04 +0000 (UTC) To: guile-devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Aug 20 22:52:56 2008 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.50) id 1KVufS-0006f3-3h for guile-devel@m.gmane.org; Wed, 20 Aug 2008 22:52:34 +0200 Original-Received: from localhost ([127.0.0.1]:54441 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KVueU-00068n-V9 for guile-devel@m.gmane.org; Wed, 20 Aug 2008 16:51:35 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KVueP-00068T-Cr for guile-devel@gnu.org; Wed, 20 Aug 2008 16:51:29 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KVueN-000677-Vc for guile-devel@gnu.org; Wed, 20 Aug 2008 16:51:29 -0400 Original-Received: from [199.232.76.173] (port=57067 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KVueN-00066t-HS for guile-devel@gnu.org; Wed, 20 Aug 2008 16:51:27 -0400 Original-Received: from a-sasl-fastnet.sasl.smtp.pobox.com ([207.106.133.19]:56070 helo=sasl.smtp.pobox.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KVueN-0000CS-IZ for guile-devel@gnu.org; Wed, 20 Aug 2008 16:51:27 -0400 Original-Received: from localhost.localdomain (localhost [127.0.0.1]) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTP id 74865546F7 for ; Wed, 20 Aug 2008 16:51:26 -0400 (EDT) Original-Received: from unquote (c-76-105-207-11.hsd1.or.comcast.net [76.105.207.11]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTPSA id EF486546F6 for ; Wed, 20 Aug 2008 16:51:25 -0400 (EDT) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) X-Pobox-Relay-ID: C194551C-6EF9-11DD-89F2-B29498D589B0-02397024!a-sasl-fastnet.pobox.com X-detected-kernel: by monty-python.gnu.org: Solaris 10 (beta) 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:7478 Archived-At: Hello all, The `vm' branch in the guile repo is coming along nicely. It fully self-compiles, passes test suites, has a really useful repl, etc etc. There are some problems with call/cc that will be fixed in the future, but it's mostly correct. So where to from here? I was making a long list, and ended up deciding that the first priority is to integrate the VM code into libguile itself, and thus into the standard `guile' binary. (Currently it builds a guile-vm binary that links to libguile-vm, which links to libguile.) The reasons for this, from Guile's perspective, are twofold: 1. Make module compilation and load-compiled work out "of the box". This means that you should be able to make .go files for any module, normally as a part of package installation, and they should be loadable by guile without any problems or extra configuration. 2. To improve the load time of Guile itself. Loading compiled modules is *much* faster than loading source modules -- it's a simple mmap-and-go approach. Compiling boot-9.scm is going to be great. Using psyntax is going to have no cost penalties. Having guile's modules be compiled will also lead to runtime speed improvements in Guile itself. So I'm going to work on moving the source files over to the libguile/ directory, and to start thinking about the modules. I like that guile-vm's modules are in a separate namespace (well two, actually -- (system ...) and (language ...)), but I do not intend to move ice-9 things into that hierarchy, to avoid breaking existing code. User-level code should see no changes, other than speed improvements :) Let me know if you have thoughts about this plan! My hope would be that once there are no or very few and solvable regressions, we could merge this to master and call it 1.10 or 2.0. Andy -- http://wingolog.org/