Subject: Re: Elk 3.0 on Linux
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 2000/04/25
Newsgroups: comp.lang.scheme
Message-ID: <8e3pbu$3jitn$1@fido.engr.sgi.com>
<james@fredbox.com> wrote:
+---------------
| I've been using UN*X boxen for 8 or 10 years now, but it's not every day
| that I need to know how a SIGBUS handler can get the address of a faulted
| reference. Nor do I usually ever care.  Hell, I'd rather have a system
| that never faulted on memory references because you couldn't chase pointers
| to nonexistent locations.
+---------------

That's not why Elk needs the SIGBUS handler stuff. Elk's generational
garbage collector uses the VM system's write-protection as a "write
barrier", and thus needs to be able to recover from a write attempt
to a read-only page, flag the page as needing scanning for pointers
to younger generations during the next GC, change the page to "writable",
then restart the failing write so that it can complete successfully.

If you just want to get Elk running without bothering to figure out
the SIGBUS stuff, you can put the line "generational_gc=no" in the
"site" file, and rebuild. That will use the stop&copy collector...


-Rob

-----
Rob Warnock, 41L-955		rpw3@sgi.com
Applied Networking		http://reality.sgi.com/rpw3/
Silicon Graphics, Inc.		Phone: 650-933-1673
1600 Amphitheatre Pkwy.		PP-ASEL-IA
Mountain View, CA  94043