[comp.sys.ibm.pc] 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

forbus@uiucdcsp.cs.uiuc.edu (04/14/88)

Someone asked about TI's PC Scheme.  I've used it a fair amount (i.e.,
ported one of our research programs to it in order to run it on
laptops, random hacking), and it is excellent lisp for that class of
machines.  I rountinely run it on old, obsolete COMPAQ Pluses (8086)
as well as snappier machines, and it does reasonable well.  Some features:

SPEED: Incremental byte-code compiler, not interpreter, at top level.
Probably a bit slower on reading, but alot faster on execution.

COMPILER: You can compile files and produce "fasload" files, in the
style of MACLISP.  (In fact, a good way to program in PC-Scheme if
you've been around a while is to close your eyes and say, "It's 1975,
what would I do next?")

ENVIRONMENT: Again, about as well as you can do on this class of
hardware.  While TI succumbed to the Lisp-implementor's macho and
built their editor in Scheme, it is acceptable for very small files.
For serious programs, buy Software Carousel and use your own favorite
programming editor (I like Final Word, with appropriate macros for
paren balancing).  Reasonable window system if you want to build fancy
interfaces.  Reasonable trace system.

QUALITY: I haven't found any bugs, which is actually a little
surprising since I tend to break Lisp systems.  Only one or two pieces
of brain-damage in the design (i.e., the attempt to clone DEFSTRUCT,
which has the default printing of a structure be a list of its
components (the CL default) but NOT providing the ability to define a
printing function (which CL does).  This makes it useless for building
any descriptions involving backpointers, in other words, pretty
useless.)

If you want to hack Lisp on PC's and you can live without Common Lisp
then I think TI's PC-Scheme is the lisp to get.  (I don't think you
can really live WITH Common Lisp on anything smaller than a 386,
personally.  And I have my doubts about them...)  Even if you really
long for Common Lisp, you can do surprisingly well by defining
DEFSTRUCT, SETF, and a package for faking keyword definitions.

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