[LispM-Hackers] Outageness

Paul Fuqua pf@ti.com
Sat, 2 Mar 2002 23:05:25 -0600


    Date: Tue, 26 Feb 2002 17:48:22 -0500
    From: jm@mak.com
    
    Can you please either elaborate or point me at a section of any
    available documentation?

I figure that paging doesn't really have to be emulated in great
detail.  I mean, we get a virtual address and go find it in the band or
swap space, and don't have to worry about page faults or disk
operations.

On the other hand, GC takes place partly in Lisp, partly in microcode
ops, and partly deep in the microcode -- there's a GC process that hangs
around to do some scavenging and space-flipping, and both it and the
scheduler use %gc-scavenge, and TGC depends on read and/or write
barriers that happen around main-memory accesses.

As a first cut, we can just ignore GC, which would be equivalent to
having GC turned off in a running Explorer.  But what's the right way to
go from there?  I've idly speculated about having a conventional GC
running behind the scenes, or emulating enough of the background
microcode to get by, or just doing stop-and-copy, but mostly I just
ignore the problem and hope it goes away.

Chapter 10 of the SSDN talks about GC.  It lists the subprimitives it
uses, which are the various microcode entry points from Lisp.

                              pf