In Google’s Summer of Code program, students receive some help while they work for 3 months on the free software project they choose. Several organizations have taken part in the last 4 years, including GNU (ideas for SOC 2009). GNU Emacs could also take part this year; this page is an informal discussion about ideas. Feel free to edit this page! (HowToEdit).

How to participate; the basics

Detailed info in the FAQs. Use also the chat channel #gsoc on Freenode.

Dates and deadlines

In 2007 it started in 5th March.


In 2008: the program announcement was on 25th February; the start date of applications submission from the mentoring organizations was on 3rd March You can find the dates in 2008 in the timeline. There were 9 days to submit the ideas list, 14 to register as students, and almost 3 months to code.


In 2009 the list of accepted mentoring organizations was published on March 18th. Google started accepting students applications on March 23rd, application deadline was April 3rd. A list of accepted applications was published on the 20th of April.

Coding started on 23rd of May.


We need:


Since students will write code for GnuEmacs, they must sign first an agreement with the FSF. See LegalMatters.

Firm list of ideas (with mentors)

If you can guide a student in a particular project, write your name and the project here.

Requisites for the proposals:

After a proposal is here, consult with the community and then send to GNU project's ideas list. That is the page which will be shown to Google.

shell and script debuggers and Emacs


In the last couple of years, a large number of Integrated Development Environments (IDE’s) has emerged. So far, none has come close to the editing capabilities of Emacs, but on the debugger side, Emacs has been surpassed.

As many people still use Emacs as their preferred editor, an ideal situation would be that Emacs also would be used as a debugger front-end with windows for, say, the call stack, local variables, and breakpoints.

Some work in this area has been done, most notably gdb-ui.el, which provides a multi-window debugging environment for C and C++ and gdb. In addition, the ruby-debug project is doing similar work for Ruby. This project would:

For more information, contact R. Bernstein and Anders Lindgren.

Loose ideas and discussion

If you know about these topics and you want to help people to improve Emacs, please adapt it, add yourself as a mentor and move the heading to the previous section.

Other sources for ideas are:

Make Scheme an Emacs extension language

See GuileEmacs. At least goal 1 can be aimed.

Integrate CEDET into Emacs

See CEDET; this is already planned for Emacs 24. This will ease support for other languages and integrate much wanted features like code completion, syntax highlighting, syntax checking, project handling, … Some other tools like JDEE (Java support) or ECB could also be included. Lots of things must be done to make Emacs a better IDE, and this is one of them.

Improve VC (version control system)

How about also having a proposal for improving VC? Improve dealing with branches and add other features that are needed for modern version control systems.

Good multithreading support for Emacs

This is much wanted, specially for background processes like checking mail. It is necessary to profit from multicore processors, very common nowadays. There were already attempts to do this. See ConcurrentEmacs and messages in the mailing list (Giuseppe Scrivano, 29 Nov 2008).

Create an usable shell interface

There is M-x term, ansi-term, shell, eshell: too many shells, and no one is good enough to please most users.

Integrated version control system and bug tracker to be used in Emacs project

Emacs has unfinished and sometimes rudimentary tools to track its development. A new GNU project could be established (or existing ones extended) to improve the tools which will serve to sustain Emacs’ coding infrastructure. This could include:

Finer dimensions for window and frame sizes

Another change we should ask Google to support is to eliminate the requirement for window and frame sizes to be integral numbers of characters and lines.

Multiple major modes

Integrate MuMaMo into Emacs so that it is easy to have more than one major mode in a buffer; for instance: Java and HTML (that’s .jsp) or OrgMode+C/Lisp/Python/Java/…

Port to GNUstep

Improve port to OpenStep (both for GNUStep and MacOS X). See EmacsApp. The main part would be to get the dump to work. There are also issues with incorrect font displaying.

Image Display

Currently, Emacs doesn’t really do well with images that are larger than the window. Improving vertical and horizontal scrolling and being able to switch between window size and actual size should be a considerable improvement.

Right to Left Writing

Bidi support is one of the main things (the only thing?) Emacs lacks to be an universal text editor. If you look at the bidi mailing list (, you find two (aborted) attempts to accomplish this, so it should not be insurmountable.

Create an Emacs package distribution system

See RationalElispPackaging. Nowadays each project must provide install instructions, requirements list, update scripts, etc. individually. A packaging system would ease the installation of Emacs components. There is already elpa.

As a sysadmin (and a Debian developer and packager for RPM-based OSs), I hope that any such packaging system will be compatible with existing OS distribution packages.

Integrate the many searching engines (find/grep) into one tool

We have: grep, grep-find, igrep.el (egrep/agrep), rgrep, lgrep, GrepPlus, find-name-dired, find-grep-dired, mgrep, OccurMode, and lots more. See GrepMode. Each one with its particular UI, regexp handling, results displaying, shortcomings, …

We need just one versatile find/grep interface, and obsolete the others for clarity. If it accepts a file name filter and a content filter (both are regexps), it can combine all grep/find functionality.

Accepted Emacs-related projects