Author: Armin Rigo <[email protected]>
Branch: stmgc-c4
Changeset: r65106:22d6efdb107a
Date: 2013-06-29 22:06 +0200
http://bitbucket.org/pypy/pypy/changeset/22d6efdb107a/
Log: in-progress
diff --git a/rpython/memory/gc/stmgc.py b/rpython/memory/gc/stmgc.py
--- a/rpython/memory/gc/stmgc.py
+++ b/rpython/memory/gc/stmgc.py
@@ -23,6 +23,20 @@
TRANSLATION_PARAMS = {}
+ def __init__(self, config, **kwds):
+ MovingGCBase.__init__(self, config, **kwds)
+
+ def stmcb_size(obj):
+ typeid = self.get_type_id(obj)
+ size = self.fixed_size(typeid)
+ if self.is_varsize(typeid):
+ lenofs = self.varsize_offset_to_length(typeid)
+ length = (obj + lenofs).signed[0]
+ size += self.varsize_item_sizes(typeid) * length
+ return size
+
+
+
def get_type_id(self, obj):
return llop.stm_get_tid(llgroup.HALFWORD, obj)
diff --git a/rpython/translator/stm/stmgcintf.py
b/rpython/translator/stm/stmgcintf.py
--- a/rpython/translator/stm/stmgcintf.py
+++ b/rpython/translator/stm/stmgcintf.py
@@ -5,9 +5,13 @@
cdir = os.path.abspath(os.path.join(cdir2, '..', 'stm'))
+separate_source = '''
+#include "src_stm/stmgc.c"
+'''
+
eci = ExternalCompilationInfo(
include_dirs = [cdir, cdir2],
includes = ['src_stm/stmgc.h'],
pre_include_bits = ['#define RPY_STM 1'],
- separate_module_sources = ['\n#include "src_stm/stmgc.c"\n'],
+ separate_module_sources = [separate_source],
)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit