[pypy-svn] r27300 - in pypy/dist/pypy/translator: . c goal
arigo at codespeak.net
arigo at codespeak.net
Tue May 16 21:16:55 CEST 2006
Author: arigo
Date: Tue May 16 21:16:53 2006
New Revision: 27300
Modified:
pypy/dist/pypy/translator/c/database.py
pypy/dist/pypy/translator/driver.py
pypy/dist/pypy/translator/goal/targetgcbench.py
pypy/dist/pypy/translator/goal/translate.py
Log:
Added the option --gc=stacklessgc to translate.py. Some clean-up of way this option is parsed.
Modified: pypy/dist/pypy/translator/c/database.py
==============================================================================
--- pypy/dist/pypy/translator/c/database.py (original)
+++ pypy/dist/pypy/translator/c/database.py Tue May 16 21:16:53 2006
@@ -40,26 +40,25 @@
self.namespace = CNameManager()
if not standalone:
self.pyobjmaker = PyObjMaker(self.namespace, self.get, translator)
- if gcpolicy is None:
+
+ gcpolicy = gcpolicy or conftest.option.gcpolicy or 'ref'
+ if isinstance(gcpolicy, str):
from pypy.translator.c import gc
- polname = conftest.option.gcpolicy
- if polname is not None:
- if polname == 'boehm':
- gcpolicy = gc.BoehmGcPolicy
- elif polname == 'exact_boehm':
- gcpolicy = gc.MoreExactBoehmGcPolicy
- elif polname == 'ref':
- gcpolicy = gc.RefcountingGcPolicy
- elif polname == 'none':
- gcpolicy = gc.NoneGcPolicy
- elif polname == 'framework':
- gcpolicy = gc.FrameworkGcPolicy
- elif polname == 'stacklessgc':
- gcpolicy = gc.StacklessFrameworkGcPolicy
- else:
- assert False, "unknown gc policy %r"%polname
- else:
+ polname = gcpolicy
+ if polname == 'boehm':
+ gcpolicy = gc.BoehmGcPolicy
+ elif polname == 'exact_boehm':
+ gcpolicy = gc.MoreExactBoehmGcPolicy
+ elif polname == 'ref':
gcpolicy = gc.RefcountingGcPolicy
+ elif polname == 'none':
+ gcpolicy = gc.NoneGcPolicy
+ elif polname == 'framework':
+ gcpolicy = gc.FrameworkGcPolicy
+ elif polname == 'stacklessgc':
+ gcpolicy = gc.StacklessFrameworkGcPolicy
+ else:
+ assert False, "unknown gc policy %r"%polname
if translator is None or translator.rtyper is None:
self.exctransformer = None
else:
Modified: pypy/dist/pypy/translator/driver.py
==============================================================================
--- pypy/dist/pypy/translator/driver.py (original)
+++ pypy/dist/pypy/translator/driver.py Tue May 16 21:16:53 2006
@@ -228,26 +228,13 @@
translator.frozen = True
standalone = self.standalone
- gcpolicy = None
- if opt.gc =='boehm':
- from pypy.translator.c import gc
- gcpolicy = gc.BoehmGcPolicy
- if opt.gc =='exact_boehm':
- from pypy.translator.c import gc
- gcpolicy = gc.MoreExactBoehmGcPolicy
- if opt.gc == 'none':
- from pypy.translator.c import gc
- gcpolicy = gc.NoneGcPolicy
- if opt.gc == 'framework':
- from pypy.translator.c import gc
- gcpolicy = gc.FrameworkGcPolicy
if standalone:
from pypy.translator.c.genc import CStandaloneBuilder as CBuilder
else:
from pypy.translator.c.genc import CExtModuleBuilder as CBuilder
cbuilder = CBuilder(self.translator, self.entry_point,
- gcpolicy = gcpolicy,
+ gcpolicy = opt.gc,
thread_enabled = getattr(opt, 'thread', False))
cbuilder.stackless = opt.stackless
if not standalone: # xxx more messy
Modified: pypy/dist/pypy/translator/goal/targetgcbench.py
==============================================================================
--- pypy/dist/pypy/translator/goal/targetgcbench.py (original)
+++ pypy/dist/pypy/translator/goal/targetgcbench.py Tue May 16 21:16:53 2006
@@ -2,7 +2,13 @@
from pypy.translator.goal import gcbench
def entry_point(argv):
- gcbench.main()
+ if len(argv) > 1:
+ n = int(argv[1])
+ else:
+ n = 1
+ while n > 0:
+ gcbench.main()
+ n -= 1
return 0
# _____ Define and setup target ___
Modified: pypy/dist/pypy/translator/goal/translate.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate.py (original)
+++ pypy/dist/pypy/translator/goal/translate.py Tue May 16 21:16:53 2006
@@ -48,7 +48,7 @@
'1_backend': [OPT(('-b', '--backend'), "Backend", ['c', 'llvm', 'cl', 'squeak', 'js'])],
- '2_gc': [OPT(('--gc',), "Garbage collector", ['boehm', 'ref', 'framework', 'none', 'exact_boehm'])],
+ '2_gc': [OPT(('--gc',), "Garbage collector", ['boehm', 'ref', 'framework', 'none', 'exact_boehm', 'stacklessgc'])],
'3_stackless': [OPT(('--new-stackless',), "Stackless code generation (graph transformer)", True)],
'4_stackless': [OPT(('--stackless',), "Stackless code generation (old GenC way)", 'old')],
'5_merge_if_blocks': [OPT(('--no-if-blocks-merge',), "Do not merge if ... elif ... chains and use a switch statement for them.", False)],
More information about the Pypy-commit
mailing list