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 32 33 34 35 36 37 38
|
"""
Support for the various GCs.
"""
class GcDescription:
def __init__(self, config):
self.config = config
class GC_none(GcDescription):
malloc_zero_filled = True
class GC_boehm(GcDescription):
malloc_zero_filled = True
class GC_semispace(GcDescription):
malloc_zero_filled = True
class GC_generation(GcDescription):
malloc_zero_filled = True
class GC_hybrid(GcDescription):
malloc_zero_filled = True
class GC_minimark(GcDescription):
malloc_zero_filled = True
class GC_incminimark(GcDescription):
malloc_zero_filled = False
def get_description(config):
name = config.translation.gc
try:
cls = globals()['GC_' + name]
except KeyError:
raise NotImplementedError('GC %r not supported by the JIT' % (name,))
return cls(config)
|