Each project description is followed by an estimated difficulty in terms of how long it would take for one person to work on it full time. The estimates assume prior knowledge about the domain and of Common Lisp programming. Adjust the estimates accordingly if this is not the case.
Some of the projects in this list are old or no longer relevant. If you find a project where this is the case please remove it from the list
- Get cl-test-grid, run it on your machine. This submits test results to http://common-lisp.net/project/cl-test-grid/test-runs-report.html. Note any libraries that failed their tests on your machine and implementation. Find and fix the bugs.
- Write a library to handle conversion of zoned decimal data (see http://www.simotime.com/datazd01.htm for reference and http://benjaminjwhite.name/zdecimal/download/ for an implementation in java)
- Write a lisp binding to the Spread Toolkit. There is network.spread.
- If you are interested in networking protocols, pick an RFC and try to implement it.
- Write lisp-like (not swig-autogenerated) bindings for a game engine, or graphics engine (for example Ogre3d, Crystal Space or NeL) to allow writing of 3D games completely in CL.
- A CL native input library like OIS.
Projects related to Common Lisp implementations
- Add a peephole optimizer phase to sbcl's compiler, and use it for microoptimizations on some sbcl platforms.
- Add some loop optimizations (such as invariant lifting, common subexpression elimination, ...) to sbcl's compiler.
- Write a real-time generational SMP-aware garbage collector for SBCL. Contact Robert Strandh for more information.
- Make CLISP more easily embeddable in other (C) applications.
- Write a Learnable Programming Environment for CL development. See for example Khan Academy environment Learnable Programming, or Chris Granger's LightTable IDE. We'd want that both to promote Lisp amongst youngsters and as a nice Lisp development IDE. Note: the examples are graphical for the quick feed back provided to newbies, but the same tools can also be applied to more "abstract" programs, either thru visualization modules, or just showing textually the state of the variables, etc. Such an environment would also include naturally Debugging Backward in Time. See also Harald Wertz papers on program understanding, etc.
- Port the Dylan editor Deuce (see CL-Emacs for info) to CL. We need a smaller/simpler/faster editor than Portable Hemlock or CLimacs to compete with GNU Emacs.
- Port GNU Emacs to run on Common Lisp as a back-end platform. Co-opt the GNU Emacs users.
- Enhance Climacs, for example in the areas of redisplay performance or (the lack of) ease of defining new syntaxes. A syntax for C would also be useful.
- implement transparent (to the user) support for the BIG-REQUESTS X protocol extension. This allows more efficient support for other X extensions such as GLX and RENDER.
- implement transparent (to the user) support for the XKEYBOARD X extension; the protocol specification (dated 1994) provides enough information to how to do this. This would allow libraries such as McCLIM to provide better keyboard handling in their applications, dealing with confusions over whether modifiers such as the shift key are signficant.
See also the projects page at McCLIM CLiki.
- Create a debugger pane and/or a debugger application to work with the Listener and other CLIM applications. This is partially done. Contact Robert Strandh for more information.
- Add "modern" panes and gadgets as extensions to McCLIM.
- Make it possible to use Common Lisp as an extension language for Texmacs. (a few weeks).
- Terminal emulator for Common Lisp. Port either Paddy Mullen's rxvt-js or the suckless st terminal emulator to CL. Use this to replace xterm on your *nix desktop, add terminal emulation to McCLIM, terminal emulation modes to Climacs and Portable Hemlock, and eventually as the terminal emulator in a Lisp OS.
- Port Tony Garnock-Jones' Racket-SSH to Common Lisp. Get a CL SSH client so you can talk to *nix servers securely, an SSH server so Lisp processes can talk to each other securely. Combine with terminal emulator above to get rid of your OpenSSH client. Will be needed for a Lisp OS.
Closure web browser extensions
- Add HTML5 support to the Closure web browser.
- Write a user manual for CLIM/McCLIM, including in particular a Getting Started manual.
- Write a manual that explains the internals of SBCL.
- Convert the user's manual for Hemlock from Scribe to Texinfo.
- Convert the command implementer's guide for Hemlock from Scribe to Texinfo.
- Convert section 2 of AMOP to Texinfo, TeX sources are available from ftp://parcftp.xerox.com/pub/pcl/mop/
- Convert the final ANSI draft spec to Texinfo, obtaining also official clarfication on its copyright status (a month). What's wrong with dpans2texi? *blush* -- I'd totally forgotten about it. Clarification on the copyright status of dpANS would still be good, though. Situation is murky. The situation with the draft spec is probably not improvable - there were too many authors and it was too long ago. Of course, given that the drafts have been publicly and freely downloadable for ten years, and Franz has a copy of dpANS2 on their website with a copyright notice concerning the presentation... The only other thing to do would be to try to track down all the authors/companies and get a statement from each of them. That's going to be tough, and even if they could all be located how does one sort out who wrote what? Also, even if someone had an objection to their part being free how would they demonstrate they are in fact the author of that part? With no copyright notices on the draft spec itself to identify authors of specific parts, the only way to be sure would be to identify the content in some other published work. Not that anyone would be likely to lie, granted...