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

Reply via email to