I like the scheme implementations that are to me small (plt)
and do not take up a lot of resources. The books and articles
I find deal more with lisp.
What is a smaller lisp implementation that runs on both
gnu/linux and windows?
I also want something that has a debugger (integrated like
perl or external like gdb... either is ok).
This is for my own projects and some commercial things I'm
considering doing on my own (outside of my work).
Mike
From: Robert Uhl
Subject: Re: yet again, lisp vs. scheme
Date:
Message-ID: <m3u0jjyarn.fsf@4dv.net>
Mike <·····@mikee.ath.cx> writes:
>
> What is a smaller lisp implementation that runs on both gnu/linux and
> windows?
GNU Common Lisp and GNU CLISP both run on Windows and Unix. There are
also commercial offerings: LispWorks and Allegro Common Lisp do the
same; they may also be more to your taste in terms of ease-of-use (I've
not used them myself, but I get that impression).
> I also want something that has a debugger (integrated like perl or
> external like gdb... either is ok).
Well, all Lisps that I know of have at least a rudimentary debugger.
SLIME (the Superior Lisp Interaction Mode for Emacs) offers a nice
interface into the debugger, but it doesn't currently support stepping
through code.
The commercial Lisps almost certainly feature excellent debuggers.
> This is for my own projects and some commercial things I'm
> considering doing on my own (outside of my work).
I'd strongly suggest both Practical Common Lisp and Successful Lisp in
order to learn. Unlike perl or python, the online resources for
learning Lisp have until recently been rather lackluster. Fortunately,
both the above books are now available freely over the web, although I
would recommend purchasing hardcopy since a physical book is a lot
handier to refer to.
I think you'll find that Common Lisp can be very enjoyable to work in.
--
Robert Uhl <http://public.xdi.org/=ruhl>
Pulling together is the aim of despotism and tyranny. Free men pull in
all kinds of directions. It's the only way to make progress.
--Havelock Vetinari
Mike wrote:
> What is a smaller lisp implementation that runs on both
> gnu/linux and windows?
Let's see, the user will have to install Linux to run the program, but
the footprint of that program has to be small. :)
Have you run a system call trace lately on, oh, the ``ls'' program?
Tons of shared libraries attached. System calls flying left and right.
A bazillion nonexisten files searched after.
Linux is not exactly small and lightweight (any more).
Here is a comparison between a directory listing and evaluating a
single expression with CLISP:
machine:$ strace clisp -norc -q -x '(+ 2 2)' 2>&1 | wc
260 1963 19729
machine:$ strace ls /dev/null 2>&1 | wc
111 870 8225
It only takes about 2.5 times as many system calls to start up CLISP to
evaluate an expression than to fetch a directory listing for a single
file.
The size of this Lisp system is less than 3 megabytes: a 1.2 meg
executable and a memory image that is about 1.4 megs.
Then we add up the shared libraries:
machine:$ ldd ~/lib/clisp/base/lisp.run | gawk '{ print $3 }' | xargs
du --total --dereference
176 /usr/lib/libreadline.so.4
852 /usr/lib/libncurses.so.5
16 /lib/libdl.so.2
1540 /lib/tls/libc.so.6
20 /usr/lib/libgpm.so.1
112 /lib/ld-linux.so.2
2716 total
The shared libs are as big as the program. The kernel on this system
(the uncompresed vmlinux file, not the compressed vmlinuz!) is about
3.5 megabytes, whoa! Of course, all these executable images have
run-time storage requirements as well.
This particular Lisp system is smaller than the kernel, smaller than
the total size of the shared libraries attached to it, and cranks out
only about 2.5 as many system calls to evaluate an expression and quit
as ``ls /dev/null''.
Mike wrote:
> I like the scheme implementations that are to me small (plt)
> and do not take up a lot of resources. The books and articles
> I find deal more with lisp.
>
> What is a smaller lisp implementation that runs on both
> gnu/linux and windows?
You don't say what you mean by small. Do you mean "doesn't use a lot of
memory" or do you mean "I don't want to learn the language all at once".
For the first meaning, there are implementations like clisp that tends
to be compact and ECL whose purpose is to be embedded. For the second
meaning, it's good to pick a tutorial that matches your interests and/or
your learning speed. Good tutorials present the material in easily
digestable steps. Keep in mind that "real" Scheme systems are also quite
large when you want to take advantage of everything they provide.
Pascal
--
2nd European Lisp and Scheme Workshop
July 26 - Glasgow, Scotland - co-located with ECOOP 2005
http://lisp-ecoop05.bknr.net/