[comp.lang.scheme] Scheme for the Amiga, size constraints

ah4h+@andrew.cmu.edu (Andrew Hudson) (02/05/88)

>I have implemented scheme 6.1 on my Amiga. I'll tell you, it's not an
>easy thing to do. First of all,there is no way CScheme will work on a
>machine with only 0.5M of RAM.I have got it working with 2.5M, but it
>really wants 4M, heavy sigh... 

I can hardly believe this!  MacScheme ran well on a Mac with only 512k. What 
does a Mac have that an Amiga doesn't? This is not a rhetorical question.  
Here at CMU I tell people that CommonLisp is a pig for needing 6M and you are 
saying 4M would be nice. Has anyone given consideration to a minimally sized 
implementation?

- Andrew Hudson

mwm@eris (Mike (My watch has windows) Meyer) (02/16/88)

In article <gW2-2wy00jWTMDQ0Gq@andrew.cmu.edu> ah4h+@andrew.cmu.edu (Andrew Hudson) writes:
<
<>I have implemented scheme 6.1 on my Amiga. I'll tell you, it's not an
<>easy thing to do. First of all,there is no way CScheme will work on a
<>machine with only 0.5M of RAM.
<
<I can hardly believe this!  MacScheme ran well on a Mac with only 512k. What 
<does a Mac have that an Amiga doesn't?

The Mac has a Scheme written for the Mac, that's what! :-)

CScheme 6.1 is a large C program, with portability and readability
being more important than size (and speed?). As a result, you get
something very large that runs on a fair number of machine running
Unix.

MacScheme (and the TI PCScheme) are reimplementations from scratch for
the target machine. Knowing exactly what your target is, and not
needing to write in an HLL[+] helps a lot for size.

I finally decided that the only way I was going to get a serious LISP
of reasonable size on the Amiga was to write it myself (in that
mythical entity known as "spare time"). The result should be quite
happy on a 1Meg Amiga (the "defacto standard" these days), and
shouldn't be unusable on a 512K Amiga. Putting it on a 68020 is
another problem. Putting it on an 80*6 will be _very_ hard.

[+] If someone can tell me how to write a tail-recursive eval/apply in
a non-tr HLL that's more readable than the assembler code that does
the same, I'd appreciate it!

	<mike
--
The handbrake penetrates your thigh.			Mike Meyer
A tear of petrol is in your eye.			mwm@berkeley.edu
Quick, let's make love before we die.			ucbvax!mwm
On warm leatherette.					mwm@ucbjade.BITNET