[comp.lang.lisp] Scheme on a PC?

rgr@m10ux.UUCP (Duke Robillard) (08/04/87)

Does anyone here have any experience with TI's Scheme
for the IBM-PC world?  It's so cheap, that I'm sorely tempted,
but I fear that my 8086-based machine just won't be able to
do anything with it....

I'll post any interesting reviews I receive.


                Thanks in Advance (where is Advance?)
                Bob Robillard
                ihnp4!m10ux!rgr

mike@yetti.UUCP (Mike Clarkson ) (08/18/87)

In article <316@m10ux.UUCP> rgr@m10ux.UUCP (Duke Robillard) writes:
>Does anyone here have any experience with TI's Scheme
>for the IBM-PC world?  It's so cheap, that I'm sorely tempted,
>but I fear that my 8086-based machine just won't be able to
>do anything with it....
>

TI's Scheme is an excellent product, and well worth it's price.  The 
manual alone is worth the $99, and serves as valuable documentation
for the MIT Vax/Sun/VMS version as well, as they have been very careful
to distinguish between "generic" Scheme and TI's implementation. (The
differences are minor and usually very reasonable and worthwhile.)

Besides, Scheme is an excellent language in it's own right, and I feel
that most programmers will benefit from looking at it.  Some people have
characterized Scheme as "what Common Lisp *should* have been".  Which brings
me to my question: I heard a rumour that a new, as yet unfinished
European effort at a Lisp standard (EuroLisp?), is based significantly
on Scheme.  Does anyone have any info on EuroLisp - does it exist, what
stage is it at, what does it look like?  I'd be interested in hearing
anything concrete about it.



-- 
Mike Clarkson,		  ...!allegra \			BITNET:	mike@YUYETTI or
CRESS, York University,	  ...!decvax   \			SYMALG@YUSOL
4700 Keele Street,	  ...!ihnp4     > !utzoo!yetti!mike
North York, Ontario,	  ...!linus    /		     
CANADA M3J 1P3.		  ...!watmath /		Phone: +1 (416) 736-2100 x 7767


"...the most inevitable business communications system on the planet."
						- ROLM magazine advertisement
 which planet?

dleigh@hplabsz.HPL.HP.COM (Darren Leigh) (08/18/87)

In article <527@yetti.UUCP> mike@yetti.UUCP (Mike Clarkson ) writes:
>In article <316@m10ux.UUCP> rgr@m10ux.UUCP (Duke Robillard) writes:
>>Does anyone here have any experience with TI's Scheme
>>for the IBM-PC world?  It's so cheap, that I'm sorely tempted,
>>but I fear that my 8086-based machine just won't be able to
>>do anything with it....
>>
>
>TI's Scheme is an excellent product, and well worth it's price.  The 

I run TI's PC Scheme on my 4.77 MHz XT clone and it is so slow that it
is almost unusable.  The emacs-like editor won't even react in real
typing time.

I have tried TI Scheme on a couple of AT machines (one was 6 MHz and
the other was 8 MHz) and the performance was quite reasonable.

My only gripe with the implementation itself is that I can't compile
something and run it without being in Scheme itself.

Darren Leigh
dleigh@hplabs.hp.com

Isaac_K_Rabinovitch@cup.portal.com (08/24/87)

>
>I run TI's PC Scheme on my 4.77 MHz XT clone and it is so slow that it
>is almost unusable.  The emacs-like editor won't even react in real
>typing time.
>
>I have tried TI Scheme on a couple of AT machines (one was 6 MHz and
>the other was 8 MHz) and the performance was quite reasonable.
>
>My only gripe with the implementation itself is that I can't compile
>something and run it without being in Scheme itself.
>
>Darren Leigh
>dleigh@hplabs.hp.com

I've run TI scheme on a Toshiba T1100 (the old model with the 8088), which
I don't think is that much faster than the clone Leigh subscribes.  I found
Scheme's performance marginally acceptable, though I never ran any really
serious programs that way:  one really needs a hard disk for that kind of
software.
 
I wouldn't use the builtin editor with scheme, it's missing some basic features.


I seem to recall the refusal to provide native-code compilation is a basic
ideological decision of the inventors of scheme, who didn't want to introduce
the ambiguity of interpretation that would entail.  Still, there's a discussion
of writing a Scheme compiler (in Scheme, of course) in Abelson and Sussman's
Structure and Interpretation of Computer Programs (I haven't got that far
yet, so I don't know how complete the discussion is).

dbt@faccs.UUCP (08/27/87)

In article <646@cup.portal.com>, Isaac_K_Rabinovitch@cup.portal.com writes:
> I seem to recall the refusal to provide native-code compilation is a basic
> ideological decision of the inventors of scheme, who didn't want to introduce
> the ambiguity of interpretation that would entail.

There are Schemes that generate native code. Yale's T system for Vax & 68020
computers includes a *very good* optimizing compiler. Chez Scheme (where is
this from?) I read somewhere (_The_Scheme_Programming_Language_,
Prentice-Hall?) generates code for the VAX (only?) comparable to Franz Lisp.
MacScheme, for the Macintosh, is coming out with a native code compiler as
well. I don't know what the code generation is like. (I would appreciate any
information about this one in particular. e.g. is the native code compiler
an modification of the original byte-code compiler?)

The first versions of Scheme were research implementations developed in
MacLisp and were not intended to be "real" compilers, but I never read
anything about a "refusal to provide native-code" as any kind of
"ideological decision." In fact, a lot of Guy Steele's work with Scheme had
a lot to do with compilers and compilation.
-- 
Think Green,
Patrick Logan (dbt@faccs) uw-beaver!ssc-vax!shuksan!tahoma!bcstec!faccs
Reporter: "What do you think about Western Civilization?"
Ghandi: "I think it would be a good idea!"

willc@tekchips.UUCP (09/02/87)

In article <121@faccs.UUCP> dbt@faccs.UUCP (Data base translator ) writes:
>MacScheme, for the Macintosh, is coming out with a native code compiler as
>well. I don't know what the code generation is like. (I would appreciate any
>information about this one in particular. e.g. is the native code compiler
>an modification of the original byte-code compiler?)

For the moment at least, the MacScheme native code compiler is available only
as part of MacScheme+Toolsmith.

The native code compiler is indeed a modification of the original byte code
compiler, which was described in my 1984 Lisp conference paper.  The original
compiler had one pass, but the new one has three: macro expansion, code
generation, and assembly.  The first two passes are the same for byte code
as for native code, but there are two assemblers.  The assembly pass decides
which assembler to use for each code segment (i.e. lambda expression) as
specified by the programmer.

Though the new three-pass compiler is slower than the old one-pass, it
seems faster because character i/o, which has always been the bottleneck,
has been sped up.

"Optimization" takes place in all three passes:  simple	source code
transformations in the macro expansion pass, a few simple optimizations in
the code generator, and peephole optimizations in the native code assembler.
With more peephole optimizations and perhaps a few more optimizations in the
code generator the code would be fairly decent, but right now it's merely
competitive.

It compiles very good code for loops but does poorly with procedure calls.
(Using generic arithmetic a Macintosh II can count down from 1,000,000 in
4.5 seconds, which is very good, but (tak 18 12 6) takes 2.3 seconds, which
is mediocre.)  The representation used for continuations was changed for the
native code compiler, but the byte code representations are still used for
procedures and environments.  These representations appear to be the main
limits to performance.

Exceptions in native code are handled by dropping into byte code and letting
the byte code exception handler deal with it.  The exception handler and byte
code debugger are therefore used for native code as well as byte code.  This
is why native code and byte code use the same representations.

There isn't much difference between a compiler that compiles to byte code and
one that compiles to native code, so it's fair to say that nearly all
implementations of Scheme are compiled.  The PC Scheme byte code compiler,
for example, is quite a bit more sophisticated than the MacScheme compiler
even though it always generates interpreted byte code.

Peace,
William Clinger