GSoC/GCI Archive
Google Summer of Code 2010

The GNU Project

Web Page:

Mailing List:

The GNU Project was launched in 1984 to develop a complete Unix-like operating system which is free software: the GNU operating system.


  • *LibreDWG* Write support for the DWG format I will work on the write support for the dwg format in the LibreDWG project. Since the reading of the format is almost entirely implemented, the writing has become a priority. With that in mind I intend to create the file structure with the readers and features necessary. The objects, entities and most part of data structures are already implemented, so this work aims to glue all together and create the files according to each version specification.
  • Application for GNU Denemo My Name is Nils Gey and I want to help out GNU Denemo during the GSoC. I am a student of Music at the Music University of Cologne, Germany and I am a programmer as well. The Denemo Idea to add MusicXML Import (and probably more formats) is the right thing for me. I fit perfectly in the description listed here .
  • GNOWSYS emacs web services Idea is to develop an emacs like editor with the org specific semantics for the purpose of note taking & authoring. Applying the rules of Org notations, it can also be extended to incorporate gnowsys-mode as it currently works in emacs. Export like features of Org-mode will be made possible in this editor by communicating through local emacs server. All the gnowsys-mode specific commands will pass on the request to the GNOWSYS server via local emacs daemon.
  • GNUstep Graphics Backend Improvement GNUstep has had a modular graphics backend system (GNUstep-back) for many years, supporting several vector graphics libraries on X11 and Windows, and an API inspired by Display PostScript. However, GNUstep's relative Cocoa uses an API called CoreGraphics which is a better fit for modern graphics hardware. My project is to modernize GNUstep-back, first by finishing the Opal library (a subproject of GNUstep implementing the CoreGraphics API.) Secondly, I will refactor GNUstep-back to use Opal.
  • GNUstep: D-Bus bindings for gnustep-base. The scope of this project is to implement support for the D-Bus IPC mechanism in the gnustep-base library. GNUstep already has a powerful IPC mechanism called "Distributed Objects", but supporting D-Bus as well has additional benefits: By providing a similar API for both DO and D-Bus, GNUstep applications can transparently access existing D-Bus services (such as HAL) or expose their own functionality to non-GNUstep applications, therefore integrating more seamlessly into a user's desktop.
  • GUILE Lua Implementation An implementation of the Lua 5.1 programming language for GNU Guile, using the new language and compilation infrastructure.
  • Guile PEG Parser I would write a module for Guile that will compile Parsing Expression Grammars (PEGs) into VM instructions, using macros at syntax-expansion time or a procedural layer according to the user's tastes. This would be used both for both parsing and matching text.
  • Guile-Emacs In preparation for eventual integration with GNU Emacs, I will work on Guile's Emacs Lisp implementation to improve Emacs Lisp compatibility and to take advantage of Guile features introduced during the past year.
  • Hurd:¬†Fix Compatibility Problems Exposed by Testsuites This project will consist of identifiying some projects' test suite failures when executed on GNU/Hurd, debugging them, and if they are truly GNU/Hurd issues (and not problems in the projects themselves), fixing them.
  • JACAL Polynomial Interpolation Implement polynomial interpolation in JACAL - a method that allows you to get an expression of a polynomial of the least degree that goes through a given set of data points (an interpolating polynomial).
  • MyServer - Extend the HTTP protocol implementation to support the additional WebDAV commands The project aims at augmenting the existing HTTP protocol implementation of GNU MyServer by adding support for WebDAV commands. It will allow users to create, change and move documents on a remote server.
  • Revive and Restructure the Escher project Escher is an implementation of the client side of the X11 protocol written completely in Java and is the library behind XPeer code in GNU Classpath. XPeer is an implementation of the AWT Toolkit based on Escher. The proposal objectives are to revive the project and sync with GNU Classpath, fix and refactor some parts of the API, and lastly start decoupling X11 specific code from the rest of the API, to allow other backends like the proper Java X11 code, OpenGL or DirectFB.
  • Revive Prolog for Java The GNU Prolog for Java project made its last release on 2000-11-12. There is significant work still to do on it firstly it should compile with a modern compiler (something newer than Java 1.2), secondly it should support part 2 of the ISO standard (modules). It should also have testing extended to ensure it conforms to the ISO standard. There are various other parts of Prolog that are implemented in most compilers. A polished up version should then be released and packaged up.
  • Tuning the VM Subsystem in GNU/Hurd The goal of this project is to bring the virtual memory management in Hurd/Mach closer to that of modern mainstream kernels (Linux, FreeBSD and xnu), by comparing the implementation to other systems, implementing any worthwhile improvements, and general optimization/tuning.