From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ken Raeburn Newsgroups: gmane.emacs.devel Subject: Re: guile and emacs and elisp, oh my! Date: Thu, 15 Apr 2010 19:54:06 -0400 Message-ID: <5F4E60F3-771F-48C7-86F1-856EADF65410@raeburn.org> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 (Apple Message framework v1078) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1271375747 8903 80.91.229.12 (15 Apr 2010 23:55:47 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 15 Apr 2010 23:55:47 +0000 (UTC) Cc: "emacs-devel@gnu.org discussions" To: joakim@verona.se Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Apr 16 01:55:46 2010 connect(): No such file or directory Return-path: Envelope-to: ged-emacs-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 1O2YuP-0004Jp-BX for ged-emacs-devel@m.gmane.org; Fri, 16 Apr 2010 01:55:45 +0200 Original-Received: from localhost ([127.0.0.1]:47246 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2YuO-0004FT-Ry for ged-emacs-devel@m.gmane.org; Thu, 15 Apr 2010 19:55:44 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O2Yt2-0003qE-Ct for emacs-devel@gnu.org; Thu, 15 Apr 2010 19:54:20 -0400 Original-Received: from [140.186.70.92] (port=34075 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2Yt1-0003q4-0c for emacs-devel@gnu.org; Thu, 15 Apr 2010 19:54:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O2Ysz-0005Gv-6i for emacs-devel@gnu.org; Thu, 15 Apr 2010 19:54:18 -0400 Original-Received: from splat.raeburn.org ([69.25.196.39]:40815 helo=raeburn.org) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O2Ysr-0005G8-Ba for emacs-devel@gnu.org; Thu, 15 Apr 2010 19:54:17 -0400 Original-Received: from dhcp-18-111-126-114.dyn.mit.edu (dhcp-18-111-126-114.dyn.mit.edu [18.111.126.114]) by raeburn.org (8.14.3/8.14.1) with ESMTP id o3FNs6fr002893; Thu, 15 Apr 2010 19:54:06 -0400 (EDT) In-Reply-To: X-Mailer: Apple Mail (2.1078) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123729 Archived-At: On Apr 15, 2010, at 04:53, joakim@verona.se wrote: > I find this very interesting. Do you have some form of plan how to > integrate this form of Guile and Emacs? Can it be done incrementally, > that is, can the current elisp system and the guile system coexist in > the same Emacs? If so, more hackers could help out with the = integration, > maybe. I think I've written up some email in the past (you may have to search = back several months) about this. My project -- changing Emacs to use = Guile object types (at least the simplest ones) and Guile's allocator = and GC -- can be done somewhat incrementally. E.g., make sure Emacs = uses accessor functions or macros for all uses of type X outside of its = own GC system (those changes can be done upstream), and passes around = Lisp_Object values rather than pointers to struct Lisp_Foo (likewise), = then redefine type X's implementation using more appropriate Guile = types, then work on type Y... currently strings, symbols, vectors, and = hashes are on my list; individual "misc" and "vectorlike" types can come = later, maybe. I have no intention of getting rid of elisp from emacs, most certainly. = As for eventually replacing the entire Lisp implementation in Emacs with = the Guile one, well, I'm hoping that, like Andy suggested, it'll become = an obvious win to do so, but if we wind up for a while with two distinct = language interpreters (Emacs elisp and Guile VM) but a shared object = system and working communication between languages, while Andy madly = tries to fix whatever performance problem we might have run into with = Guile's elisp implementation :-), I'd be okay with that. I've recently updated my code to be based on a recent development = version of Emacs, though I haven't published the updated version yet and = there appears to be some kind of GC problem or something at the moment. = I also haven't got it fully updated for guile 1.9.x (and the upcoming = 2.0), which has a different GC system anyways. (The new GC system is = Boehm's GC library. There was an effort to make Emacs use it some time = back, by Dave Love, and I think some of those changes will be needed for = Emacs-with-Guile-2.0. So updating that work might also be helpful?) But, now that we've got bzr upstream and branching should be relatively = easy, perhaps I should clean it up a little and push it all into a = branch on savannah, if the maintainers are interested? If there's = really interest in working on it, I'd love to get some help.... Ken=