[pypy-commit] pypy quad-color-gc: Extend skeleton (WIP?)
ntruessel
pypy.commits at gmail.com
Fri Aug 19 07:12:30 EDT 2016
Author: Nicolas Truessel <ntruessel at njsm.de>
Branch: quad-color-gc
Changeset: r86310:c0e8549cad2f
Date: 2016-08-19 13:11 +0200
http://bitbucket.org/pypy/pypy/changeset/c0e8549cad2f/
Log: Extend skeleton (WIP?)
diff --git a/rpython/memory/gc/qcgc.py b/rpython/memory/gc/qcgc.py
--- a/rpython/memory/gc/qcgc.py
+++ b/rpython/memory/gc/qcgc.py
@@ -8,7 +8,7 @@
malloc_zero_filled = True
prebuilt_gc_objects_are_static_roots = True # XXX: ?
can_usually_pin_objects = False
- object_minimal_size = 16
+ object_minimal_size = 0
gcflag_extra = 0 # or a real GC flag that is always 0 when not collecting
typeid_is_in_field = 'tid'
@@ -61,3 +61,8 @@
def identityhash(self, gcobj):
raise NotImplementedError
+ def register_finalizer(self, fq_index, gcobj):
+ raise NotImplementedError
+
+ def get_type_id(self, obj):
+ return self.header(obj).tid
diff --git a/rpython/memory/gctransform/qcgcframework.py b/rpython/memory/gctransform/qcgcframework.py
--- a/rpython/memory/gctransform/qcgcframework.py
+++ b/rpython/memory/gctransform/qcgcframework.py
@@ -1,8 +1,12 @@
-from rpython.annotator import model as annmodel
+from rpython.rtyper.llannotation import SomePtr, SomeAddress, s_None
from rpython.rtyper.lltypesystem import lltype, llmemory, rffi
from rpython.memory.gctransform.framework import (BaseFrameworkGCTransformer, BaseRootWalker)
+VISIT_FPTR = lltype.Ptr(lltype.FuncType([llmemory.Address], lltype.Void))
+
class QcgcFrameworkGCTransformer(BaseFrameworkGCTransformer):
+ autoregister_ptrs = list()
+
def build_root_walker(self):
return QcgcRootWalker(self)
@@ -11,7 +15,7 @@
s_gc, s_typeid16)
gc = self.gcdata.gc
#
- s_gcref = annmodel.SomePtr(llmemory.GCREF)
+ s_gcref = SomePtr(llmemory.GCREF)
#self.malloc_weakref_ptr = self._getfn(
# GCClass.malloc_weakref.im_func,
@@ -24,9 +28,9 @@
gc.trace(obj, invokecallback, visit_fn)
pypy_trace_cb.c_name = "pypy_trace_cb"
self.autoregister_ptrs.append(
- getfn(pypy_trace_cb, [annmodel.SomeAddress(),
- annmodel.SomePtr(GCClass.VISIT_FPTR)],
- annmodel.s_None))
+ getfn(pypy_trace_cb, [SomeAddress(),
+ SomePtr(VISIT_FPTR)],
+ s_None))
def push_roots(sef, hop, keep_current_args=False):
raise NotImplementedError
@@ -34,7 +38,6 @@
def pop_roots(sef, hop, livevars):
raise NotImplementedError
-
class QcgcRootWalker(BaseRootWalker):
- def walk_stack_roots(self, collect_stack_root):
+ def walk_stack_roots(self, collect_stack_root, is_minor=False):
raise NotImplementedError
More information about the pypy-commit
mailing list