I'd like to announce the creation of the Parrot Common Lisp project, which
aims to implement a significant subset of the Common Lisp language. At
present it's nowhere near achieving that goal, but it's progressing slowly
as I figure out the intricacies of writing a Lisp implementation.
A brief overview of current features:
* It currently has ~100 functions defined - some written in IMC, some
in Lisp. Most of them aren't all *that* interesting, but once the
basic flow-control special forms and macros are completed, the tools
should be in place to do more interesting things.
* All the basic reader macros (except backquote and ,) are more or less
in place. Some are written in IMC, some in Lisp.
* Support for global, dynamic and lexical scoping more or less works.
* Support for packages more or less works.
* Other exciting features that I'm unable to recall.
A few caveats:
* It's not a compiler yet, although I've got plans for that down the
road.
* Its got bugs and almost certainly won't do what you want it to do
(but will, eventually).
* There are some outstanding issues with the Dead Object
Detection/Garbage collection systems that I've yet to track down. If
you plan on running PCL on the current (as of April 2005) Parrot
source base you'll very likely have to run it with DOD/GC disabled.
ie) ~$ parrot -G lisp.pbc
Depending on the system (I develop on both x86/Linux and g4/OS X),
you'll get a Bus Error, Segmentation Fault or some other random error
if you don't disable the GC.
(If anyone is able to track down aforementioned DOD/GC problems,
you'll earn my eternal gratitude.)
For examples of what it can currently do, look in the lisp/ subdirectory
in the files loaded at run time (bootstrap.l system.l and primitives.l).
Anyone who would like to have a peek at what I've got so far is invited to
download the 0.1.0 release from here:
http://www.sprocket.org/pcl/pcl-0.1.0.tar.gz
Bug reports, patches and comments are most certainly welcome. :)
Enjoy!
-c
Thread Next