On 05/07/2015 01:00, Neil Van Dyke wrote:
Matthew Flatt wrote on 07/04/2015 06:40 PM:
That is, unlike so many other things in our infrastructure, the GC is
not so tangled with everything else that it would be difficult to
change by itself. Granted,
Good about GC not so tangled.
I don't know the current state of GC research, nor what GC ideas
PLTers could come up with, but maybe there is a doctoral dissertation,
or at least some MS projects, waiting to happen.
Separate from research activity, anyone know of existing off-the-shelf
GCs that would be interesting to hook up to Racket?
There is the Memory Pool System Kit Readme (but I didn't have any time
to test it yet): https://www.ravenbrook.com/project/mps/
(Perhaps SCM or even hobbit has a better GC:
http://people.csail.mit.edu/jaffer/SCM)
It's better to think about the malloc/gc duo as a memory manager. Some
traditional approaches just seem awfully dumb and wrong like
conservative mark&sweep. Treating every byte word on each and every call
stack (every thread has one) as a valid reference to a Scheme object
just doesn't scale well.
But computers are dumb machines anyway - fortunately they had a
working power on/off switch back in those days when ... (nowadays you
have to kill these beasts three times: pull the plug, remove the battery
and wait at least 15 times n seconds for capacitors to ...)
GC implementation can be fairly challenging on its own.
Systems programming is hard, as you know. :)
Neil V.
That depends on the presence of the system manual and a good mental
scheme of what one wants to achieve. I'd just start out with a flat
addressing scheme implemented as one huge Scheme vector called
RAM-emulation and try some algorithms in Scheme on it. Then segmentation
and alignment and C pointers have never been the truth ...
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.