cirCLe

cirCLe is dead, or at least has seen no active work since 2004 or so. See sb-studio for another project with similar aims, though

The cirCle project is creating a Free (as in "Free Software") Common Lisp development and deployment platform for Linux-based GNU systems. It will include a Lisp system, a powerful integrated development environment (editor/debugger/class browser/etc), documentation, tools for packaging and installing code, and all the libraries needed for productively doing "everyday" programming for things like graphics, networking, Web interfaces and talking to databases.

Why?

``GNU will be able to run Unix programs, but will not be identical to Unix [...] Both C and Lisp will be available as system programming languages.''
-- The GNU Manifesto, rms, 1985

Today the community of Free Software developers have succeeded in creating OS kernels, libraries, basic programming tools and Unix-compatible utilities which are as good as and often better than the systems they replace. We've developed code that we ourselves want to use ("scratching an itch") and the result has been high quality, secure, reliable, flexible software.

The picture changes when we look at "end-user" application programming. These applications are much bigger and more complex, therefore harder for developers to write and harder for users to extend and modify for their needs. Additionally, the target user is often not expected to want to modify the software, so configurability and extensibility become low priorities. Development becomes less rewarding for many people because they do not expect to use the finished program.

cirCLe is designed around the principle that today's users may be tomorrow's developers. We encourage users to extend or change software for their needs, and so increase the likelihood that they will become contributors to our community.

One important way that we do this is to grant users the same opportunities to change software that we ourselves have as we write it. So instead of allowing limited `preferences' or `configuration options', or of tacking on a `scripting language' to allow control of high level concerns, we develop in the same language throughout. Therefore we use a language which has both the interactive development style (no tedious recompilation) and domain constructs of a scripting language, and the facilities for developing large systems and OS access that make a real programming language "real".

What's included

The first release (version 0) of cirCLe is primarily aimed at prospective developers of cirCle itself. Because we want people to be able to start hacking as soon as possible, v0 includes some tools which we will replace in later versions.

The description here covers both the initial version of cirCLe and some of our ideas for future versions. For current information on exactly what will be in which version you can consult the cirCLe Task List, but also note that much of the package development is done by other people, so it might well be the case (for libraries especially) that features turn up in v0 or v1 that we haven't even thought of yet.

Infrastructure tools

a Lisp implementation: Steel Bank Common Lisp (SBCL)
an editor and debugger interface: Emacs with SLIME

This is a compromise between what we would like and what's available: in a later version of cirCLe we will replace this with a CL-based editor which uses McCLIM.

a unix shell interface

We are working towards a unified "Listener" interface which provides access to the unix shell command line and to Lisp functionality from the same prompt. This will be present in version 0 for testing and demonstration, but for real work we initially recommend an ordinary shell for Unix and SLIME for Lisp.

a package manager and installer

Libraries in cirCLe are described using ASDF ("Another System Definition Facility"), a tool that performs a similar role to make(1) in the Unix environment. We also have asdf-install, which can download a gzipped library source package from the net, compile and install it.

Documentation tools

cirCLe will include a documentation tool able to produce output suitable for publishing on the Web, printed output, and some format which can be integrated into the development environment for online help. Some form of this tool is required for v0, but not necessarily every libary will initially be documented with it. Eventually we'll have docs in this format for all of cirCLe's infrastructure and libraries.

Libraries

Earmarked for the initial version 0 cirCLe:

Project Documentation

In addition to the documentation provided about specific packages, we maintain some documents about cirCLe as a whole

How you can help

If you want to see cirCLe available, there are many opportunities to work on different parts of the system, and you don't need to be an expert Lisp programmer - though obviously we hope you want to learn. Take a look at the cirCLe Task List for something that interests you, and contact the mailing list or the listed contact for more advice on what we're looking for and how to go about it.

If you're already the author or maintainer of Free Common Lisp software, we commend you. You can help cirCLe by testing your software in our Lisp implementation, and by packaging it to be cirCLe-compatible (see the coding standards for details). You might also like to join our mailing list and bring the benefit of your Lisp experience to the project.

http://lists.metacircles.com/cgi-bin/mailman/listinfo/circle-devel


Page in this topic: cirCLe Task List  


Also linked from: ASDF System   Brian T. Rice   Christophe   Current recommended libraries   Daniel Barlow   document   lisp IDE   Wish List  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively