[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