[comp.sys.mac] Scheme for Mac II?

jss1@nvuxh.UUCP (jeff sargent) (03/15/89)

Is there a version of Scheme available for the 
Mac II?  (Scheme is a relative of Common Lisp - 
I have version for the IBM-PC that Texas Instruments
sells (or used to sell)).  

Jeff Sargent
Bellcore
jss1@nvuxh.bellcore.com
(201)758-5758

holland@m2.csc.ti.com (Fred Hollander) (03/20/89)

In article <340@nvuxh.UUCP> jss1@nvuxh.UUCP (jeff sargent) writes:
>Is there a version of Scheme available for the 
>Mac II?  (Scheme is a relative of Common Lisp - 
>I have version for the IBM-PC that Texas Instruments
>sells (or used to sell)).  

There's MacScheme.  I've heard it was pretty good.  There was a review
in one of the magazines about a year ago.  I'd guess it was MacWorld,
but could have been MacUser or MacTutor (sorry I don't remember).  One
nice advantage, I beleive that it would generate native code.  If you
could do with Common Lisp, I'd recommend Allegro.

Fred Hollander
Computer Science Center
Texas Instruments, Inc.
hollander@ti.com

The above statements are my own and not representative of Texas Instruments.

@DOUGHNUT.CS.ROCHESTER.EDU:miller@CS.ROCHESTER.EDU (03/21/89)

From: Brad Miller <miller@CS.ROCHESTER.EDU>

    Date: 15 Mar 89 15:17:27 GMT
    From: jss1@nvuxh.UUCP (jeff sargent)


    Is there a version of Scheme available for the 
    Mac II?  (Scheme is a relative of Common Lisp - 
    I have version for the IBM-PC that Texas Instruments
    sells (or used to sell)).  

Definitely look at MacScheme+Toolsmith by:

Semantic Microsystems
4470 S.W. Hall
Suite 340
Beaverton, OR 97005

I think I've seen it at either MacConnection or that other big mailorder
place... I got mine on a university site licence so it likely isn't
applicable to your situation.

I've been using it for several months now. You can have it generate p-code
or native code; the former is more compact and you get much more debugger
support from the included "debugger". It isn't up to the debugger in say,
LSC, but it's not useless either. The latter allows you to sell your
programs without sublicence. I don't usually use it because of the lack of
some debug niceties. Using it in combination with MacsBug 6.0, I've been
reasonably successful so far.

Toolsmith is a VERY nice way to handle the window/menu system on the mac.
Unlike LSC or I presume pascal or other Cs, you don't need to deal with any
toolbox stuff yourself at all. But you can *if you want to*, that is, if you
want to handle things at a finer level of detail than Toolsmith provides.

The manual is reasonable; basically it's the R3 TR and adds some intro pad
to the application, and a section on Toolsmith. Fine for me, with lots of
Lisp experience, the novice might want to invest in tutorial (the commercial
package comes with _The Litte Lisper_). Still, it could profitably be
expanded, yet if you have a hacker mentality (i.e. try it out until
something happens that looks like what you want to happen) you can get up to
speed pretty quickly.

The editor is about on the level of LSC, i.e. it leaves a lot to be desired.
No problem, I use MacJove to write my programs, and only use the integrated
editor while debugging, since it can "talk" to the interpreter in ways that
MacJove (in a separate process) cannot. i can imagine that when IPC is
standardized that as in GNU Emacs one could run MacScheme as a subprocess of
Jove and not have this problem, but until then... I switch editors a lot.

Anyway, the only other main problem you will run into is that it is a memory
hog. I'd say a reasonable minimum to use it is 2.5meg (what I have; 1 meg
left me with uselessly little heap) and a hard disk. Oh yeah, I use a
MacPlus and performance isn't as big a problem as you might think. (No, it
isn't up to the Symbolics I'm sending this message from :-) 

I'm not sure it's really what I want for producing commercial code, though;
the environment isn't bad, but besides an editor, it would be nice if they
included some form of macro language, and I miss Flavors (read: object
oriented sublanguage). Allegro Common Lisp is supposed to be pretty good,
though it isn't nearly as cheap. Still, I'm saving my pennies...

Oh yeah: foreign function interface is virtually non-existant. You can hand
or otherwise assemble a small routine and hexcode it in a string surrounded
by appropriate pseudo-ops for the p-interpreter which is OK for small hacks
(like traps), but I've yet to figure out how to call a function I've written
in LSC or MPW and want to load with a Scheme program. Let alone if I wanted
to generate native code. (This could be my ignorance. If someone knows
something, please enlighten me!) I *understand* (but do not know) that this
is indeed something Allegro can do.

Hope this helps,
----
Brad Miller		U. Rochester Comp Sci Dept.
miller@cs.rochester.edu {...allegra!rochester!miller}