Author: Manuel Jacob
Branch: refactor-translator
Changeset: r61788:d4dc8f3093c8
Date: 2013-02-25 20:45 +0100
http://bitbucket.org/pypy/pypy/changeset/d4dc8f3093c8/
Log: Kill all redundant task methods in Translation (eg. rtype_lltype,
source_c) and the possibility to pass options to the remaining ones.
diff --git a/rpython/translator/c/test/test_genc.py
b/rpython/translator/c/test/test_genc.py
--- a/rpython/translator/c/test/test_genc.py
+++ b/rpython/translator/c/test/test_genc.py
@@ -116,7 +116,7 @@
t.view()
except AttributeError:
pass
- t.compile_c()
+ t.compile()
ll_res = graphof(t.context, fn).getreturnvar().concretetype
def output(stdout):
@@ -461,7 +461,7 @@
t = Translation(f, [], backend="c")
t.annotate()
- t.compile_c()
+ t.compile()
if py.test.config.option.view:
t.view()
assert hasattr(ctypes.CDLL(str(t.driver.c_entryp)), 'pypy_xyz_f')
@@ -477,7 +477,7 @@
t = Translation(f, [], backend="c",
secondaryentrypoints="test_entrypoints42")
t.annotate()
- t.compile_c()
+ t.compile()
if py.test.config.option.view:
t.view()
assert hasattr(ctypes.CDLL(str(t.driver.c_entryp)), 'foobar')
@@ -496,7 +496,7 @@
export_struct("BarStruct", foo._obj)
t = Translation(f, [], backend="c")
t.annotate()
- t.compile_c()
+ t.compile()
if py.test.config.option.view:
t.view()
assert hasattr(ctypes.CDLL(str(t.driver.c_entryp)), 'BarStruct')
@@ -562,7 +562,7 @@
t = Translation(main, [int], backend="c")
t.rtype()
t.context._graphof(foobar_fn).inhibit_tail_call = True
- t.source_c()
+ t.source()
lines = t.driver.cbuilder.c_source_filename.join('..',
'rpython_translator_c_test_test_genc.c').readlines()
for i, line in enumerate(lines):
diff --git a/rpython/translator/interactive.py
b/rpython/translator/interactive.py
--- a/rpython/translator/interactive.py
+++ b/rpython/translator/interactive.py
@@ -46,96 +46,30 @@
self.config.translation.gc = gc
self.config.translation.set(**kwds)
- def ensure_opt(self, name, value=None, fallback=None):
- if value is not None:
- self.update_options({name: value})
- return value
- val = getattr(self.config.translation, name, None)
- if fallback is not None and val is None:
- self.update_options({name: fallback})
- return fallback
- if val is not None:
- return val
- raise Exception(
- "the %r option should have been specified at this point" %
name)
-
- def ensure_type_system(self, type_system=None):
- if self.config.translation.backend is not None:
- return self.ensure_opt('type_system')
- return self.ensure_opt('type_system', type_system, 'lltype')
-
- def ensure_backend(self, backend=None):
- backend = self.ensure_opt('backend', backend)
- self.ensure_type_system()
- return backend
-
def set_backend_extra_options(self, **extra_options):
for name in extra_options:
backend, option = name.split('_', 1)
- self.ensure_backend(backend)
+ assert self.config.translation.backend == backend
self.driver.set_backend_extra_options(extra_options)
# backend independent
def annotate(self, **kwds):
- self.update_options(kwds)
return self.driver.annotate()
# type system dependent
- def rtype(self, **kwds):
- self.update_options(kwds)
+ def rtype(self):
return self.driver.rtype()
- def backendopt(self, **kwds):
- self.update_options(kwds)
+ def backendopt(self):
return self.driver.backendopt()
# backend depedent
- def source(self, **kwds):
- self.update_options(kwds)
+ def source(self):
return self.driver.source()
- def source_c(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('c')
- self.driver.source()
-
- def source_cl(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('cl')
- self.driver.source()
-
- def compile(self, **kwds):
- self.update_options(kwds)
+ def compile(self):
self.driver.compile()
return self.driver.c_entryp
-
- def compile_c(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('c')
- self.driver.compile()
- return self.driver.c_entryp
-
- def compile_cli(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('cli')
- self.driver.compile()
- return self.driver.c_entryp
-
- def source_cli(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('cli')
- self.driver.source()
-
- def compile_jvm(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('jvm')
- self.driver.compile()
- return self.driver.c_entryp
-
- def source_jvm(self, **kwds):
- self.update_options(kwds)
- self.ensure_backend('jvm')
- self.driver.source()
diff --git a/rpython/translator/test/test_interactive.py
b/rpython/translator/test/test_interactive.py
--- a/rpython/translator/test/test_interactive.py
+++ b/rpython/translator/test/test_interactive.py
@@ -48,7 +48,7 @@
assert 'source' in t.driver.done
t = Translation(f, [int, int])
- t.source_c()
+ t.source()
assert 'source' in t.driver.done
def test_disable_logic():
@@ -59,7 +59,7 @@
t = Translation(f, [int, int])
t.disable(['backendopt'])
- t.source_c()
+ t.source()
assert 'backendopt' not in t.driver.done
@@ -70,7 +70,7 @@
return x+y
t = Translation(f, [int, int])
- t.source(backend='c')
+ t.source()
t.compile()
dll = ctypes.CDLL(str(t.driver.c_entryp))
@@ -83,32 +83,12 @@
return x+y
t = Translation(f, [int, int])
- t.rtype(type_system='lltype')
-
- assert 'rtype' in t.driver.done
-
- t = Translation(f, [int, int])
- t.rtype(type_system='ootype')
- assert 'rtype' in t.driver.done
+ t.rtype()
t = Translation(f, [int, int], type_system='ootype')
t.rtype()
- assert 'rtype' in t.driver.done
-
- t = Translation(f, [int, int])
- t.rtype(backend='cli')
assert 'rtype' in t.driver.done
-
t = Translation(f, [int, int], backend='cli', type_system='ootype')
t.rtype()
- assert 'rtype' in t.driver.done
-
- t = Translation(f, [int, int], type_system='lltype')
- t.annotate()
- py.test.raises(Exception, "t.rtype(backend='cli')")
-
- t = Translation(f, [int, int], backend='cli')
- t.annotate()
- py.test.raises(Exception, "t.rtype(type_system='lltype')")
-
+ assert 'rtype' in t.driver.done
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit