[comp.lang.lisp] Any decent IBM PC lisps?

johnl@ima.ISC.COM (John R. Levine) (04/13/88)

My apologies if this has been thrashed to death, but are there any decent
Lisp implementations that run on a more or less normal 286 PC?  Full
Common Lisp unnecessary, compiler desirable to avoid dying of old age while
waiting for programs to run.

Here are ones that I've heard of:

Gold Hill Golden Common Lisp:  Full CL with compiler, but quite expensive
and needs 4 meg to run.

Soft Warehouse muLisp-87:  Has compiler, claims to run in 640K, costs
about $300.

Star Sapphire Lisp:  Claims to be full CL, compiles into C, has some sort
of virtual memory thing.  About $450.

TI PC Scheme:  Byte code compiler, not full CL, editor, library.  Only $80.

My local BBS system has a copy of KCL, and four PD lisps, PC-Lisp,
PCLisp (claimed to be Franz clone), Lisp 2.15, and Xlisp 2.0.

Has anybody hand-to-hand combat with any or all of these to report?  The TI
Scheme sure is cheap, is it any good?

TIA,
-- 
John R. Levine, IECC, PO Box 349, Cambridge MA 02238-0349, +1 617 492 3869
{ ihnp4 | decvax | cbosgd | harvard | yale }!ima!johnl, Levine@YALE.something
Rome fell, Babylon fell, Scarsdale will have its turn.  -G. B. Shaw

leverich@randvax.UUCP (Brian Leverich) (04/14/88)

In article <950@ima.ISC.COM> johnl@ima.UUCP (John R. Levine) writes:

>My apologies if this has been thrashed to death, but are there any decent
>Lisp implementations that run on a more or less normal 286 PC?

I use LISP on a 286 every day, and I've used several different packages
and evaluated most of the products on the market.  Be aware that there are
_major_ differences between PC LISPs in speed (both symbolic and numeric
processing), storage capacity (cons space of only 16k dtprs or less is
obscenely common), I/O flexibility, and flexibility in interfacing with
other languages.  Not to mention some PC LISPs require unusual hardware
configurations.

(There are also differences in the development environment, but most of
that strikes me as frills for wimps who like to do programming by
exhaustive search rather than getting it right in the first place.)

Comments on the LISPs I've used enough to know well.

PCLISP is slow, sparse on functions, but does provide fairly large data
spaces.  It seems to run on anything that looks even vaguely like a PC.
It's also cheap and available.

UOLISP reflects a set of interesting design choices.  It has only 16k
dtprs, and given the way it stores bignums and reals in cons space it
can only hold a thousand or so of those guys.  Numerical processing is
painfully slow.  On the other hand, on a 640k PC UOLISP can accommodate
more than 300k of compiled functions, which is a _lot_ of code.  Moreover,
compiled UOLISP is blazingly fast at symbolic manipulations.  The
language also includes its own assembler, so you can write your own DOS
function calls and do all sorts of creative things.  I mainly use UOLISP
in my day-to-day work.

TI Scheme is fairly fast and supports fairly large data spaces (that means
it has a cons space somewhere around 64k and can accommodate 16k-32k
real numbers).  Math is much faster than UOLISP, although it is finite
precision.  Interfaces to other languages are supposed to be fairly
smooth, although I haven't tried this myself.

For more (and generally better (-:) product reviews, you might look at
the following articles:

Byte, July 1986, p. 293: BYSO LISP and Waltz LISP.

Byte, Oct 1986, p. 249: muLISP-86.

Computer Language, Aug 1986, p. 93: ExperLISP, Gold Hill, BYSO, muLISP,
UO-LISP, TLC-LISP.

Computer Language, Jul 1987, p. 137: ExperLISP, Gold Hill, IQLISP, muLISP
Star Sapphire, TransLISP, Waltz.

AI Expert, Mar 1988, p. 67: many LISPs..., lousy detail.

Good luck--choosing the right LISP isn't easy.
-- 
  "Simulate it in ROSS"
  Brian Leverich                       | U.S. Snail: 1700 Main St.
  ARPAnet:     leverich@rand-unix      |             Santa Monica, CA 90406
  UUCP/usenet: decvax!randvax!leverich | Ma Bell:    (213) 393-0411 X7769

leverich@randvax.U: P (Brian Leverich) (04/14/88)

In article <950@ima.ISC.COM> johnl@ima.U:CP (John R. Levine) writes:

>My apologies if this has been thrashed to death, but are there any decent
>Lisp implementations that run on a more or less normal 286 PC?

I use LISP on a 286 every day, and I've used several different packages
and evaluated most of the products on the market.  Be aware that there are
_major_ differences between PC LISPs in speed (both symbolic and numeric
processing), storage capacity (cons space of only 16k dtprs or less is
obscenely common), I/O flexibility, and flexibility in interfacing with
other languages.  Not to mention some PC LISPs require unusual hardware
configurations.

(There are also differences in the development environment, but most of
that strikes me as frills for wimps who like to do programming by
exhaustive search rather than getting it right in the first place*)

Comments on the LISPs I've used enough to know well.

PCLISP is slow, sparse on functions, but does provide fairly large data
spaces.  It seems to run on anything that looks even vaguely like a PC.
It's also cheap and available.

UOLISP reflects a set of interesting design choices.  It has only 16k
dtprs, and given the way it stores bignums and reals in cons space it
can only hold a thousand or so of those guys.  Numerical processing is
painfully slow.  On the other hand, on a 640k PC UOLISP can accommodate
more than 300k of compiled functions, which is a _lot_ of code.  Moreover,
compiled UOLISP is blazingly fast at symbolic manipulations.  The
language also includes its own assembler, so you can write your own DOS
function calls and do all sorts of creative things.  I mainly use UOLISP
in my day-to-day work.

TI Scheme is fairly fast and supports fairly large data spaces (that means
it has a cons space somewhere around 64k and can accommodate 16k-32k
real numbers).  Math is much faster than UOLISP, although it is finite
precision.  Interfaces to other languages are supposed to be fairly
smooth, although I haven't tried this myself.

For more (and generally better (-:) product reviews, you might look at
the following articles:

Byte, July 1986, p. 293: BYSO LISP and Waltz LISP.

Byte, Oct 1986, p. 249: muLISP-86.

Computer Language, Aug 1986, p. 93: ExperLISP, Gold Hill, BYSO, muLISP,
UO-LISP, TLC-LISP.

Computer Language, Jul 1987, p. 137: ExperLISP, Gold Hill, IQLISP, muLISP
Star Sapphire, TransLISP, Waltz.

AI Expert, Mar 1988, p. 67: many LISPs..., lousy ds:ail.

Good luck--choosing the right LISP isn't easy.
-- 
  "Simulate it in ROSS"
  Brian Leverich                       | U.S. Snail: 1700 Main St.
  ARPAnet:     leverich@rand-unix      |             Santa Monica, CA 90406
  UUCP/usenet: decvax!randvax!leverich | Ma Bell:    (213) 393-0411 X7769

bobmon@iuvax.cs.indiana.edu (RAMontante) (04/15/88)

In article <950@ima.ISC.COM> johnl@ima.UUCP (John R. Levine) writes:
	[...]
>Here are ones that I've heard of:
	[...]
>TI PC Scheme:  Byte code compiler, not full CL, editor, library.  Only $80.
	[...]
>Has anybody hand-to-hand combat with any or all of these to report?  The TI
>Scheme sure is cheap, is it any good?

I like TIScheme quite a bit.   As long as you have the memory, it's pretty
thorough.  Scheme has some variations from lisp, such as treating functions
just the same as any other data object in terms of referencing/dereferencing,
passing them around; it also emaphasizes block structuring and scoping
much more than I find in lisp.  You can manipulate the environments as
data objects, if you really want to, for example.

Example:  I wrote a simulation of a (very _tiny_) computer in Scheme, starting
at the flipflop level, that could run a program.  Only 4 address bits, so
it had only 16 words of 4-bit memory, but making it bigger would have just
been a bit more tedious (it was bit-sliced).

disclaimer:  a number of people (not including me) worked with or at TI on
the package's development.  On the other hand, I'm not much of a lisp hacker.

RAMontante,		bobmon @ any of		iuvax.cs.indiana.edu,
Computer Science		(one of 'em  )	    silver.bacs.indiana.edu,
Indiana University		(should be up)		iucs.cs.indiana.edu