Emblem Announcement
Message-ID : <3E518371.8D089999@enterprise.net>
Date : Tue, 18 Feb 2003 00:50:57 +0000
From : Donald Fisk (
)
Organization : The Rosen Association
Newsgroups : comp.lang.lisp
Subject : Announcement: new Lisp implementation
I have been developing Emblem, an implementation of a dialect
of Lisp, similar to a subset of Common Lisp, but with a few
important differences.
The system is now useful to me and I have been using it for
development of software applications for my own use. It is
not perfect but I am running into problems with it less and
less frequently.
So I intend to release it, on a shared source license similar
to the one which covers Microsoft CLI, and similar to the non-
commercial Creative Commons License. This prohibits commercial
use, but allows private individuals to use it, free of charge,
for any other purpose, and allows academic institutions to use
it for teaching and research. Users are supplied with the
source. Emblem will also be available for commercial use, for
a fee.
At present, it only runs on Linux, though it should be easily
portable to other unices. A version running on Microsoft
Windows will have to wait until I have the time and resources
necessary to port it to that platform.
The total size of the code is around 14000 lines, 9000 of which
are in C, the remainder being in Lisp. There are also 2000 lines
of documentation. This represents about a man year of work.
A brief overview follows.
- Emblem runs on its own virtual machine.
- Functions are compiled to byte code when they are defined.
- When you exit Emblem, you can save the world (or image, if you
prefer to call it that).
- Emblem has an object system, which is a subset of CLOS.
- It has a graphics system, implemented using Xlib, which supports
3d-graphics and high-level event handling.
- It supports its own threading mechanism.
- There is a connexion to Emacs, so you can select regions of files
and load them into the world.
- It comes with a web server, which contains a Wiki, which is used
for the documentation, and also an object browser.
- There is source and object level debugging.
- There is (CGI and shell) scripting support: regular expressions,
sockets, pipes.
- There are hacks (small demo programs), mostly GPL'ed. These include
tetris, life, munching squares and a 3d map of the Fort William region
of Scotland (including Ben Nevis) which you can 'walk' around.
The most noticeable differences between Emblem and Common Lisp are
- Emblem is smaller;
- Emblem's reader doesn't convert input to upper case;
- Emblem is a Lisp 1 (like Scheme);
- Emblem separates the empty list () from FALSE;
- No dotted pairs -- if x is a list, (cdr x) is also a list;
- Emblem allows you to declare the types of a function's arguments;
- Association lists are a separate type;
- I/O is through bidirectional channels rather than unidirectional files.
I am developing this for a number of reasons:
- I intend it to be the implementation language of a language
which I think will be even better than Lisp. I don't want to
tell you much more than this until I have something to show,
but those who do know what I am talking about are impressed.
- I think that, in order for Lisp to continue evolving, it needs
testing grounds for new ideas, which by necessity involve
breaking the standard before they make the standard.
- I want a language implementation I have complete control over,
that I can modify and improve when I need to, and that I can
use for developing applications rapidly in.
- I need to increase my profile, get my name recognized, get a
reputation to improve my prospects.
If anyone is interested in trying out Emblem, please mail me and
I'll send you the source, to your home address (or college). Please
be patient, and expect some problems, which I'll do my best to fix.
Donald Fisk (a.k.a. Le Hibou)
I have slightly edited the above article, to hide my address
from spammers.
This page was linked to from
© Copyright Donald Fisk 2003