Kurt Stephens

Nerd Up!

garbage collection

The Broken Promises of MRI/REE/YARV

Kurt on Wed, 2011-07-06 16:34.

Joe Damato drills deep into the implied contracts of the MRI/C API:

http://timetobleed.com/the-broken-promises-of-mrireeyarv/

The need for RB_GC_GUARD(v) is probably due to faulty register spilling in the MRI eval/thread/GC machinery; the PRE_GETCONTEXT() and POST_GETCONTEXT() macros in MRI eval.c might be the real problem.

In contrast, the Boehm-Demers-Weiser (BDW) GC library manages to scan registers without demanding client code to explicitly flush pointers to the stack.

However, in general, it is problematic, in language design practice to make GC contracts completely transparent to API client code. This difficultly is explicitly solved in the design of Lua:

New documentation for TM (Tredmill) Allocator

Kurt on Sun, 2010-01-24 21:19.

I’m planning a new release of TM v.04, originally outlined here: http://kurtstephens.com/research/tredmill

New documentation is located at:

http://kurtstephens.com/pub/tredmill/current/doc/html/index.html

Code to follow shortly.

TM : The implementation of a real-time, single-threaded, type-segmented, conservative garbage collector

Kurt on Mon, 2008-01-14 00:09.

Introduction

TM is a real-time, non-relocating, conservative, allocator using type- and color-segregated lists, based on Henry Baker’s “Treadmill” allocator. The source code for TM is located at http://kurtstephens.com/pub/tredmill.

TM interleaves marking, scanning and sweeping during each mutator’s call to tm_alloc().

TM attempts to limit the amount of work in the collector to avoid stopping the world for long periods of time. It does not require a separate thread for the collector as all collection activities are interleaved with allocation.

Full documentation is located at: http://kurtstephens.com/pub/tredmill/current/doc/html/index.html

Syndicate content

Primary links

Syndicate

Syndicate content

Browse archives

« May 2012  
Mo Tu We Th Fr Sa Su
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31