Sign in to follow this  
Captain_Thunder

Looking for a Common Lisp implementation

Recommended Posts

I'm not sure if this is the right forum for this topic, but it is related to programming, so: I'm looking for an implementation (compiler/interpreter) of Common Lisp that satisfies the following criteria: 1) It needs to run on Windows (but it can run on Linux if it's the only option). 2) I need to be able to distribute the programs that I create with it without paying any license or royalty fees. Standalone executables don't matter to me, just as long as I can give away a working program. 3) I'd like it to have some sort of graphics library that works out of the box. I've tried using CLX with CLisp, but I've yet to find any documentation on how to compile/install it. I've been searching for the better part of a year for such a CL compiler, but I haven't found any. The free distributions fail on 1 and 3, and the evaluation versions of the commercial CLs don't satisfy 2. So, I turn to GDNet for help. If anyone knows of a Common Lisp implementation that would work, please let me know. Oh, and don't recommend Dr. Scheme [grin].

Share this post


Link to post
Share on other sites
Bump. It's understandable if nothing like this exists, but is there anything close?

I guess my main problem is that I'm not sure how to go about doing graphics development in Lisp; I've looked at a lot of different GUI libraries, but most of the projects seem to be abandoned, and the others are difficult to install.

So, has anyone ever successfully gotten a graphics program running in a free Lisp?

Share this post


Link to post
Share on other sites
Well, I can give you one that satisfies 1 and 2: GNU CLISP compiled for cygwin runs on Windows and is freely redistributable with the GPL license.

Share this post


Link to post
Share on other sites
As far as graphics capability of open source Lisp is concerned, I've experimented with cmulisp and clisp. Of the two, clisp is the more portable and user friendly; cmulisp tends to be the faster for numerical work (sbcl is a more cross-platform version of cmulisp). If you look up Naughty Dog Software or the Jax and Dexter games you should find more on what lisp can really do graphically; as these games were based upon lisp. A new lisp-based graphics language (GOAL) was developed for these games using allegro lisp (and possibly C++), but I don't think it is available open source, though.

I spent about 6 months trying to use lisp for numerical analysis and graphics work. It's a challenge in that this capability is not as widely available on the open source front as with other languages at the moment. Commercially, lisp has been used for some very large game and animation projects (Jax and Dexter, now owned by Sony Corp, much of the Lord of the Rings movie animation, animation used for the movie Titanic, etc.) Some of the largest movie animation studios use lisp, so obviously it can be done. A related commercial animation package, Marai, is based upon Lisp, you can see more info on the history of lisp animation here. Marai is now an IZWARE product, and you can review it here.

There are some clisp wrappers (bindings) available for the opengl library and other libraries, you can find more here. In my view, I would not try to make graphics code entirely with lisp, but you can use it at the 'top-level' to 'quickly' manipulate other libraries that operate nearer to the machine level. If you take this approach, you should be able to use clisp.

Of the commercial distros. Allegro is perhaps the most active and mature, but I prefer using LispWorks by Harlequin. I just find it easier and more friendly to use. I've also done some benchmarks with it using various routines and it performs better than most. If you can get a copy of Paul Grahams' ANSI Common Lisp, on pp 151-158 he reviews raytracing, and LispWorks was by far the fastest Lisp for this exercise to produce a 1000 by 1000 pixel raytraced image, from recollection it was less than a second. Clisp was about the slowest. On the other hand, LispWorks failed a numerical precision test I developed that clisp passed. In any case, if you use lisp for graphics work, I would recommend using it as a top-level wrapper for faster, machine-level code.

As for editing lisp, you can use emacs or xemacs as native interfaces, but I prefer the LispWorks editor (you can get a copy of this for free). However, this is a matter of personal choice.

Good luck!

--random

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this