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