guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GSoC 2011: Guile-Elisp


From: BT Templeton
Subject: GSoC 2011: Guile-Elisp
Date: Mon, 23 May 2011 23:32:45 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

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
  <http://article.gmane.org/gmane.lisp.guile.devel/10750>. 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]