Write your name after the task, if you want to work on it, to avoid duplicate work. More than one name per task is possible, the mailing list can be used for coordination. Another idea: if a task looks too large and someone wants to work only on a part of the task, split it into multiple top level-tasks or sub-level tasks.
The first goal of this task is a Lisp package, which maps anything you
would have when you do an "#include
Like for the Windows mapping, the first goal is to provide the Carbon framework for Lisp as a package. The reason to use Carbon is that it is easier to integrate, because it is a procedural framework, compared to the object oriented Cocoa framework (like MFC(=Cocoa) and GDI(=Carbon) on Windows). Later this could be enhanced to Cocoa, if someone wants this. After this, a set of scripts should be provided to create a standard Mac OS X "Application Bundle" and to pack it as an Internet distrubutable ".dmg" file (which is simply a call to "hdiutil create -srcfolder YourApp.app yourapp.dmg", but documentation is needed, e.g. that the developer has to install XCode, if needed for the hdiutil etc.).
X11 is a very limited system when it comes to GUI elements like text fields or buttons, unlike the Windows GDI or Mac Carbon, which provides this and other higher level elements. But to provide access to the lowest portable level on Unix, this mapping is needed. Games, which doesn't need some usual looking input elements, can use this level without problems. Part of this task is to do some research, which mappings are useful, too, e.g. GTK (which is the base of GNOME) or Qt (which is the base of KDE) if it is simpler to use than wxCL, maybe with this project.
For this task it would be nice to start a simple pure-Lisp GUI framework, which uses the native platform mapping. Then you have only one source and just call the '(deliver "repl")' on every platform and the result is the sample application. The goal is to provide all files, which are needed to create this sample application on all 3 platforms.
Sub-task: translating some SDL examples to Lisp, which uses the mapping (of course, platform independant with the goals of the previous tasks).
Sub-task: translating some wxCL examples to Lisp, which uses the mapping.
The idea is to create something like Eclipse for Lisp programs in Lisp. Perhaps wxCL should be used for it, or the pure Lisp GUI framework, if feature rich enough. The first implemenation can be as easy as providing a text area for the REPL, a file menu, a simple project manager dialog and an export button.
A cool game, which demonstrates how easy it is to write applications with the Application Builder, as was done for Lua Player, because it provides an easy to use set of operations for image handling, sound output and input handling. The base could be SDL, but a simple to use gaming library on top would be nice.
This is the base for other 3D applications and demonstrates the ability of Application Builder for serious CAD programs. Perhaps wxCL should be used for it.
PLaSM uses a functional description language for 3D constructions, which is implemented in Common Lisp. The idea is something like the Windows version of POV-Ray for PLaSM scripts: You have an editor, where you can enter a script and with a button you can create a OpenGL animation of the scene, where you can rotate, zoom etc. with the mouse. Perhaps the 3D viewer can be used as the base for this applications.
CLISP is able to create an EXE file containing a Lisp image that can be started without a console. The Lisp image linking should work with Win32, Mac OS X and Linux. SBCL has a similar feature.
To ease the initial learning curve and for general ease of use, a release of Application Builder for the three supported platforms should include a free Lisp implementation and all required libraries. A sub-project should be packaged in such a way as to minimize inter-package dependencies, allowing a package to be downloaded and used independently of other sub-projects. For example, it is possible to download and install only the SDL mapping into the Lisp environment of your choice. Please be mindful of this when working on tasks.
Checkout the repository using "svn co svn://frank-buss.de/clab" ("clab" is an acronym for Common Lisp Application Builder). Send me an eMail for write access.
The above repositry is obsolete. Appbuilder can be gotten from SourceForge with "svn co https://svn.sourceforge.net/svnroot/lispbuilder lispbuilder"The project repository is updated daily to the Common Lisp Application Builder webpage. This webpage is the same as that contained within the repository. You will have a local copy of the documentation (as webpages) after retrieving the project from the repository. Feel free to add anything which is needed for the tasks to the repository. The repository can be refactored if it becomes too chaotic as SVN allows files and directories to be moved or deleted.