From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: BT Templeton Newsgroups: gmane.lisp.guile.devel Subject: GSoC 2011: Guile-Elisp Date: Mon, 23 May 2011 23:32:45 -0400 Message-ID: <877h9grcwy.fsf@olor.terpri.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1306207990 11748 80.91.229.12 (24 May 2011 03:33:10 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 24 May 2011 03:33:10 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue May 24 05:33:06 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QOiMk-0000Sl-3t for guile-devel@m.gmane.org; Tue, 24 May 2011 05:33:06 +0200 Original-Received: from localhost ([::1]:42959 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOiMj-0002Dh-Md for guile-devel@m.gmane.org; Mon, 23 May 2011 23:33:05 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:45021) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOiMh-0002Db-Ak for guile-devel@gnu.org; Mon, 23 May 2011 23:33:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QOiMg-00078t-58 for guile-devel@gnu.org; Mon, 23 May 2011 23:33:03 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:49247) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QOiMf-00078l-KP for guile-devel@gnu.org; Mon, 23 May 2011 23:33:02 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QOiMd-0000Qq-NH for guile-devel@gnu.org; Tue, 24 May 2011 05:32:59 +0200 Original-Received: from cpe-173-095-173-064.nc.res.rr.com ([173.95.173.64]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 24 May 2011 05:32:59 +0200 Original-Received: from bpt by cpe-173-095-173-064.nc.res.rr.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 24 May 2011 05:32:59 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 69 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: cpe-173-095-173-064.nc.res.rr.com User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) Cancel-Lock: sha1:PzGEnfEeJprULIcvOzl/p9Qf/S0= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 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:12530 Archived-At: Hello all, I've been accepted for GSoC 2011, and I'm excited to continue working towards Guile-Emacs (: I'll be improving Guile's Emacs Lisp support and will begin work on Emacs integration. I've included part of my project proposal below. Deliverables: * Complete the Elisp subr library. Most of Emacs 24's 1090 built-in functions are not useful outside of a text editing context and don't need to be provided by Guile-Elisp, but simple "batch-mode" programs should work correctly. * Implement support for aliases and buffer-local variables. Support use of the `lexical-binding' variable to control scoping rules in addition to the `lexical-let' special form. * Implement "big variables," as proposed in . This will simplify the compiler implementation and provide a path to future integration with the Guile module system, and it will make it easier to support other Lisp-2 dialects in the future. (It also may be a prerequisite for implementing alias and BLV support.) * Fix nil handling. Elisp's nil value must be a symbol as well as a boolean and a list. * Improve the performance of Elisp programs on the Guile VM. Emacs is still a bit faster on the Gabriel benchmarks. * Improve tests. New tests should be written in Elisp so that they can be run in both Emacs and Guile. I likely won't write end-user documentation during the summer, but as before, will be keeping notes that should be of use to other people working on this project. Guile-Elisp is already close to the point where it's reasonable to consider direct integration with GNU Emacs. A logical first step would be to update Ken Raeburn's Guilemacs patches for Emacs 24 and Guile 2.0, which modify Emacs to use Guile's object representation internally. Plan: I'll be examining the Guilemacs patches before the summer begins to get some idea of how much effort to allocate to direct Emacs integration work. I don't know how much headway I can make on that part of the project during the summer, but I should make at least some definite progress and should have some idea of what to focus on after the summer. By the midterm evaluation I should have finished implementing support for "big variables" and aliases, and I should have made significant progress on other tasks. By the end of the summer I should have completed most of the Guile-related tasks (subject to mentor-approved changes if other tasks come up) and should have begun work on Emacs integration. The nature of the Emacs integration work remains somewhat unclear. Part of it, of course, depends on how much effort and time the Guile side of the project requires. My intent is to spend at least half my time getting Guile-Elisp to what I think of as 95% completion, then spend the remaining time exploring what needs to be done with Emacs itself. This might be as little as replacing Emacs's GC with BDW-GC and converting a few types to smobs, or as much as completely updating the Guilemacs patches and making prelimary attempts to replace the Elisp interpreter. amike, BT