[comp.sys.next] Why LISP and plenty of other O-O languages won't run on the 68040.

clp@home.HarvardSq.COM (Charles L. Perkins) (03/20/91)

I was talking a few days back to the Scheme people at MIT and a Self person
 from Stanford when the following problems was elucidated.

Apparently NeXT makes the 68040 cache flush "unavailable" at user level (or
 at least only available through an obscure trap you must ask them about).
 Without working cache flushes, code segments already run by the CPU cannot
 be safely moved by the garbage collector; it doesn't know this, and WHAM!
 your system blows it's brains out.  All Lisp and most modern O-O languages
 have a GC that moves code around, so they are all vulnerable.

Scheme is being patched as we speak.  Who knows about Common Lisp?  Or Self?
 Or...(fill in your favorite higher-level language)?

GJS went as far to suggest that new REALLY high performance chips optimized
 for C may not even have a way to flush their caches, since who moves code
 anyway!?!  Even the NeXT's new loadable object stuff would break under this
 kind of hardware parochialism.  UNIX/C is nice, but I hope super-SPARCs in
 the future don't throw away the last twenty years of language development!

									Charles

layer@Franz.COM (Kevin Layer) (03/22/91)

In article <6074@husc6.harvard.edu> clp@home.HarvardSq.COM (Charles L. Perkins) writes:

   Apparently NeXT makes the 68040 cache flush "unavailable" at user level (or
    at least only available through an obscure trap you must ask them about).

From a C program you can flush the caches in the following way:

	asm("trap #2");

   Who knows about Common Lisp?

Allegro CL for the 040 was released today!

--
Kevin Layer, Franz Inc.         1995 University Avenue, Suite 275
layer@Franz.COM (internet)      Berkeley, CA  94704
uunet!franz!layer (uucp)        Phone: (415) 548-3600; FAX: (415) 548-8253