Author: Stefan Beyer <[email protected]>
Branch: cpyext-gc-cycle
Changeset: r97967:1fd7c207819e
Date: 2019-11-06 10:00 +0100
http://bitbucket.org/pypy/pypy/changeset/1fd7c207819e/
Log: Increased incremental limit of rrc incmark Changed default rrc
implementation Added simple rrc implementation (to mimic old
implementation)
diff --git a/rpython/config/translationoption.py
b/rpython/config/translationoption.py
--- a/rpython/config/translationoption.py
+++ b/rpython/config/translationoption.py
@@ -106,8 +106,8 @@
("translation.backend", "c")],
}),
ChoiceOption("rrcgc", "Garbage Collection Strategy for raw refcounted
objects in cpyext",
- ["mark", "incmark", "none"],
- default="mark",
+ ["simple", "mark", "incmark"],
+ default="incmark",
requires={
"mark": [("translation.gc", "incminimark")],
"incmark": [("translation.gc", "incminimark")],
diff --git a/rpython/memory/gc/rrc/base.py b/rpython/memory/gc/rrc/base.py
--- a/rpython/memory/gc/rrc/base.py
+++ b/rpython/memory/gc/rrc/base.py
@@ -5,7 +5,8 @@
def choose_rrc_gc_from_config(config):
if config.translation.rrcgc:
- classes = {"mark": "mark.RawRefCountMarkGC",
+ classes = {"simple": "simple.RawRefCountSimpleGC",
+ "mark": "mark.RawRefCountMarkGC",
"incmark": "incmark.RawRefCountIncMarkGC",
}
try:
@@ -126,7 +127,7 @@
if inc_limit > 0:
self.inc_limit = inc_limit
else:
- self.inc_limit = 1000
+ self.inc_limit = 50000
self.cycle_enabled = True
def create_link_pypy(self, gcobj, pyobject):
diff --git a/rpython/memory/gc/rrc/simple.py b/rpython/memory/gc/rrc/simple.py
new file mode 100644
--- /dev/null
+++ b/rpython/memory/gc/rrc/simple.py
@@ -0,0 +1,7 @@
+from rpython.memory.gc.rrc.base import RawRefCountBaseGC
+
+class RawRefCountSimpleGC(RawRefCountBaseGC):
+
+ def major_collection_trace_step(self):
+ self.p_list_old.foreach(self._major_trace, (False, False))
+ return True
\ No newline at end of file
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit