[pypy-svn] r15415 - in pypy/dist/pypy/translator: . c c/test goal llvm2 pyrex/test test tool
hpk at codespeak.net
hpk at codespeak.net
Sat Jul 30 14:40:20 CEST 2005
Author: hpk
Date: Sat Jul 30 14:40:15 2005
New Revision: 15415
Added:
pypy/dist/pypy/translator/tool/cbuild.py
- copied unchanged from r15414, pypy/dist/pypy/translator/tool/buildpyxmodule.py
Removed:
pypy/dist/pypy/translator/tool/buildpyxmodule.py
Modified:
pypy/dist/pypy/translator/c/genc.py
pypy/dist/pypy/translator/c/test/test_annotated.py
pypy/dist/pypy/translator/c/test/test_backendoptimized.py
pypy/dist/pypy/translator/c/test/test_genc.py
pypy/dist/pypy/translator/c/test/test_lltyped.py
pypy/dist/pypy/translator/c/test/test_notype.py
pypy/dist/pypy/translator/c/test/test_operation.py
pypy/dist/pypy/translator/c/test/test_typed.py
pypy/dist/pypy/translator/goal/translate_pypy.py
pypy/dist/pypy/translator/llvm2/build_llvm_module.py
pypy/dist/pypy/translator/pyrex/test/test_pyrextrans.py
pypy/dist/pypy/translator/pyrex/test/test_sourcegen.py
pypy/dist/pypy/translator/test/test_geninterp.py
pypy/dist/pypy/translator/tool/benchmark.py
pypy/dist/pypy/translator/translator.py
Log:
(hpk,arigo)
rename buildpyxmodule to cbuild finally
Modified: pypy/dist/pypy/translator/c/genc.py
==============================================================================
--- pypy/dist/pypy/translator/c/genc.py (original)
+++ pypy/dist/pypy/translator/c/genc.py Sat Jul 30 14:40:15 2005
@@ -4,7 +4,7 @@
from pypy.translator.c.database import LowLevelDatabase
from pypy.translator.c.extfunc import pre_include_code_lines
from pypy.translator.gensupp import uniquemodulename
-from pypy.translator.tool.buildpyxmodule import make_module_from_c
+from pypy.translator.tool.cbuild import make_module_from_c
from pypy.rpython.lltype import pyobjectptr
from pypy.tool.udir import udir
Modified: pypy/dist/pypy/translator/c/test/test_annotated.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_annotated.py (original)
+++ pypy/dist/pypy/translator/c/test/test_annotated.py Sat Jul 30 14:40:15 2005
@@ -1,12 +1,12 @@
import autopath
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.translator import Translator
from pypy.translator.test import snippet
# XXX this tries to make compiling faster for full-scale testing
-from pypy.translator.tool import buildpyxmodule
-buildpyxmodule.enable_fast_compilation()
+from pypy.translator.tool import cbuild
+cbuild.enable_fast_compilation()
class TestAnnotatedTestCase:
Modified: pypy/dist/pypy/translator/c/test/test_backendoptimized.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_backendoptimized.py (original)
+++ pypy/dist/pypy/translator/c/test/test_backendoptimized.py Sat Jul 30 14:40:15 2005
@@ -1,5 +1,5 @@
import autopath
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.translator import Translator
from pypy.translator import backendoptimization
Modified: pypy/dist/pypy/translator/c/test/test_genc.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_genc.py (original)
+++ pypy/dist/pypy/translator/c/test/test_genc.py Sat Jul 30 14:40:15 2005
@@ -7,14 +7,14 @@
from pypy.objspace.flow.model import Constant, Variable, SpaceOperation
from pypy.objspace.flow.model import Block, Link, FunctionGraph
from pypy.tool.udir import udir
-from pypy.translator.tool.buildpyxmodule import make_module_from_c
-from pypy.translator.tool.buildpyxmodule import enable_fast_compilation
+from pypy.translator.tool.cbuild import make_module_from_c
+from pypy.translator.tool.cbuild import enable_fast_compilation
from pypy.translator.gensupp import uniquemodulename
# XXX this tries to make compiling faster for full-scale testing
# XXX tcc leaves some errors undetected! Bad!
-#from pypy.translator.tool import buildpyxmodule
-#buildpyxmodule.enable_fast_compilation()
+#from pypy.translator.tool import cbuild
+#cbuild.enable_fast_compilation()
def compile_db(db):
Modified: pypy/dist/pypy/translator/c/test/test_lltyped.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_lltyped.py (original)
+++ pypy/dist/pypy/translator/c/test/test_lltyped.py Sat Jul 30 14:40:15 2005
@@ -1,5 +1,5 @@
from pypy.rpython.lltype import *
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.translator import Translator
from pypy.objspace.flow import FlowObjSpace
Modified: pypy/dist/pypy/translator/c/test/test_notype.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_notype.py (original)
+++ pypy/dist/pypy/translator/c/test/test_notype.py Sat Jul 30 14:40:15 2005
@@ -1,13 +1,13 @@
import autopath
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.translator import Translator
from pypy.objspace.flow import FlowObjSpace
from pypy.translator.test import snippet
# XXX this tries to make compiling faster for full-scale testing
-from pypy.translator.tool import buildpyxmodule
-buildpyxmodule.enable_fast_compilation()
+from pypy.translator.tool import cbuild
+cbuild.enable_fast_compilation()
class TestNoTypeCGenTestCase:
def setup_class(cls):
Modified: pypy/dist/pypy/translator/c/test/test_operation.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_operation.py (original)
+++ pypy/dist/pypy/translator/c/test/test_operation.py Sat Jul 30 14:40:15 2005
@@ -2,12 +2,12 @@
from pypy.objspace.flow.model import *
from pypy.objspace.flow.operation import FunctionByName
from pypy.objspace.flow import FlowObjSpace
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.translator import Translator
# XXX this tries to make compiling faster for full-scale testing
-from pypy.translator.tool import buildpyxmodule
-buildpyxmodule.enable_fast_compilation()
+from pypy.translator.tool import cbuild
+cbuild.enable_fast_compilation()
TESTCASES = [
Modified: pypy/dist/pypy/translator/c/test/test_typed.py
==============================================================================
--- pypy/dist/pypy/translator/c/test/test_typed.py (original)
+++ pypy/dist/pypy/translator/c/test/test_typed.py Sat Jul 30 14:40:15 2005
@@ -3,7 +3,7 @@
from py.test import raises
from pypy.translator.translator import Translator
from pypy.translator.test import snippet
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.rpython.rarithmetic import r_uint
from pypy.translator.c.test.test_annotated import TestAnnotatedTestCase as _TestAnnotatedTestCase
Modified: pypy/dist/pypy/translator/goal/translate_pypy.py
==============================================================================
--- pypy/dist/pypy/translator/goal/translate_pypy.py (original)
+++ pypy/dist/pypy/translator/goal/translate_pypy.py Sat Jul 30 14:40:15 2005
@@ -81,8 +81,8 @@
from pypy.rpython.error import TyperError
# XXX this tries to make compiling faster
-from pypy.translator.tool import buildpyxmodule
-buildpyxmodule.enable_fast_compilation()
+from pypy.translator.tool import cbuild
+cbuild.enable_fast_compilation()
annmodel.DEBUG = False
Modified: pypy/dist/pypy/translator/llvm2/build_llvm_module.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/build_llvm_module.py (original)
+++ pypy/dist/pypy/translator/llvm2/build_llvm_module.py Sat Jul 30 14:40:15 2005
@@ -8,7 +8,7 @@
from py import path
import py
-from pypy.translator.tool.buildpyxmodule import make_c_from_pyxfile
+from pypy.translator.tool.cbuild import make_c_from_pyxfile
from pypy.translator.tool import stdoutcapture
from pypy.translator.llvm2.genllvm import use_boehm_gc
Modified: pypy/dist/pypy/translator/pyrex/test/test_pyrextrans.py
==============================================================================
--- pypy/dist/pypy/translator/pyrex/test/test_pyrextrans.py (original)
+++ pypy/dist/pypy/translator/pyrex/test/test_pyrextrans.py Sat Jul 30 14:40:15 2005
@@ -3,8 +3,8 @@
from pypy.tool.udir import udir
from pypy.translator.pyrex.genpyrex import GenPyrex
from pypy.objspace.flow.model import *
-from pypy.translator.tool.buildpyxmodule import build_cfunc
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import build_cfunc
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.translator import Translator
from pypy.objspace.flow import FlowObjSpace
@@ -14,8 +14,8 @@
from pypy.translator.test import snippet
# XXX this tries to make compiling faster for full-scale testing
-from pypy.translator.tool import buildpyxmodule
-buildpyxmodule.enable_fast_compilation()
+from pypy.translator.tool import cbuild
+cbuild.enable_fast_compilation()
class TestNoTypePyrexGenTestCase:
Modified: pypy/dist/pypy/translator/pyrex/test/test_sourcegen.py
==============================================================================
--- pypy/dist/pypy/translator/pyrex/test/test_sourcegen.py (original)
+++ pypy/dist/pypy/translator/pyrex/test/test_sourcegen.py Sat Jul 30 14:40:15 2005
@@ -6,12 +6,12 @@
from pypy.translator.pyrex.genpyrex import GenPyrex
from pypy.objspace.flow.model import *
-from pypy.translator.tool.buildpyxmodule import make_module_from_pyxstring
+from pypy.translator.tool.cbuild import make_module_from_pyxstring
#from pypy.translator.test.make_dot import make_ps
# XXX this tries to make compiling faster for full-scale testing
-from pypy.translator.tool import buildpyxmodule
-buildpyxmodule.enable_fast_compilation()
+from pypy.translator.tool import cbuild
+cbuild.enable_fast_compilation()
class TestSourceGenTestCase:
Modified: pypy/dist/pypy/translator/test/test_geninterp.py
==============================================================================
--- pypy/dist/pypy/translator/test/test_geninterp.py (original)
+++ pypy/dist/pypy/translator/test/test_geninterp.py Sat Jul 30 14:40:15 2005
@@ -27,8 +27,8 @@
import py
from pypy.tool.udir import udir
from pypy.objspace.flow.model import *
-from pypy.translator.tool.buildpyxmodule import make_module_from_c
-from pypy.translator.tool.buildpyxmodule import skip_missing_compiler
+from pypy.translator.tool.cbuild import make_module_from_c
+from pypy.translator.tool.cbuild import skip_missing_compiler
from pypy.translator.geninterplevel import translate_as_module
from pypy.translator.test import snippet
from pypy.interpreter.error import OperationError
Modified: pypy/dist/pypy/translator/tool/benchmark.py
==============================================================================
--- pypy/dist/pypy/translator/tool/benchmark.py (original)
+++ pypy/dist/pypy/translator/tool/benchmark.py Sat Jul 30 14:40:15 2005
@@ -1,7 +1,7 @@
import autopath
from pypy.tool import testit
from pypy.tool.udir import udir
-from pypy.translator.tool.buildpyxmodule import build_cfunc
+from pypy.translator.tool.cbuild import build_cfunc
from pypy.translator.test.test_cltrans import global_cl, make_cl_func
def benchmark(func):
Deleted: /pypy/dist/pypy/translator/tool/buildpyxmodule.py
==============================================================================
--- /pypy/dist/pypy/translator/tool/buildpyxmodule.py Sat Jul 30 14:40:15 2005
+++ (empty file)
@@ -1,222 +0,0 @@
-import autopath
-
-import py
-
-import os, sys, inspect, re
-from pypy.translator.tool import stdoutcapture
-
-debug = 0
-
-def make_module_from_pyxstring(name, dirpath, string):
- dirpath = py.path.local(dirpath)
- pyxfile = dirpath.join('%s.pyx' % name)
- i = 0
- while pyxfile.check():
- pyxfile = pyxfile.new(basename='%s%d.pyx' % (name, i))
- i+=1
- pyxfile.write(string)
- if debug: print "made pyxfile", pyxfile
- cfile = make_c_from_pyxfile(pyxfile)
- module = make_module_from_c(cfile)
- #print "made module", module
- return module
-
-def compiler_command():
- # e.g. for tcc, you might set this to
- # "tcc -shared -o %s.so %s.c"
- return os.getenv('PYPY_CC')
-
-def enable_fast_compilation():
- from distutils import sysconfig
- gcv = sysconfig.get_config_vars()
- opt = gcv.get('OPT') # not always existent
- if opt:
- opt = re.sub('-O\d+', '-O0', opt)
- else:
- opt = '-O0'
- gcv['OPT'] = opt
-
-def make_module_from_c(cfile, include_dirs=None):
- #try:
- # from distutils.log import set_threshold
- # set_threshold(10000)
- #except ImportError:
- # print "ERROR IMPORTING"
- # pass
- if include_dirs is None:
- include_dirs = []
-
- dirpath = cfile.dirpath()
- lastdir = py.path.local()
- os.chdir(str(dirpath))
- try:
- modname = cfile.purebasename
- if debug: print "modname", modname
- c = stdoutcapture.Capture(mixed_out_err = True)
- try:
- try:
- if compiler_command():
- # GCC-ish options only
- from distutils import sysconfig
- gcv = sysconfig.get_config_vars()
- cmd = compiler_command().replace('%s',
- str(dirpath.join(modname)))
- for dir in [gcv['INCLUDEPY']] + list(include_dirs):
- cmd += ' -I%s' % dir
- os.system(cmd)
- else:
- from distutils.dist import Distribution
- from distutils.extension import Extension
- from distutils.ccompiler import get_default_compiler
- saved_environ = os.environ.items()
- try:
- # distutils.core.setup() is really meant for end-user
- # interactive usage, because it eats most exceptions and
- # turn them into SystemExits. Instead, we directly
- # instantiate a Distribution, which also allows us to
- # ignore unwanted features like config files.
- extra_compile_args = []
- if get_default_compiler() == 'unix':
- old_version = False
- try:
- g = os.popen('gcc --version', 'r')
- verinfo = g.read()
- g.close()
- except (OSError, IOError):
- pass
- else:
- old_version = verinfo.startswith('2')
- if not old_version:
- extra_compile_args.extend(["-Wno-unused-label",
- "-Wno-unused-variable"])
- attrs = {
- 'name': "testmodule",
- 'ext_modules': [
- Extension(modname, [str(cfile)],
- include_dirs=include_dirs,
- extra_compile_args=extra_compile_args)
- ],
- 'script_name': 'setup.py',
- 'script_args': ['-q', 'build_ext', '--inplace'],
- }
- dist = Distribution(attrs)
- if not dist.parse_command_line():
- raise ValueError, "distutils cmdline parse error"
- dist.run_commands()
- finally:
- for key, value in saved_environ:
- if os.environ.get(key) != value:
- os.environ[key] = value
- finally:
- foutput, foutput = c.done()
- data = foutput.read()
- if data:
- fdump = open("%s.errors" % modname, "w")
- fdump.write(data)
- fdump.close()
- # XXX do we need to do some check on fout/ferr?
- # XXX not a nice way to import a module
- if debug: print "inserting path to sys.path", dirpath
- sys.path.insert(0, '.')
- if debug: print "import %(modname)s as testmodule" % locals()
- exec "import %(modname)s as testmodule" % locals()
- sys.path.pop(0)
- except:
- print data
- raise
- finally:
- os.chdir(str(lastdir))
- #if not debug:
- #dirpath.rmtree()
- return testmodule
-
-def make_c_from_pyxfile(pyxfile):
- from pypy.translator.pyrex import genpyrex
- pyrexdir = os.path.dirname(genpyrex.__file__)
- if pyrexdir not in sys.path:
- sys.path.insert(0, pyrexdir)
- from Pyrex.Compiler.Main import CompilationOptions, Context, PyrexError
- try:
- options = CompilationOptions(show_version = 0,
- use_listing_file = 0,
- c_only = 1,
- output_file = None)
- context = Context(options.include_path)
- result = context.compile(str(pyxfile), options)
- if result.num_errors > 0:
- raise ValueError, "failure %s" % result
- except PyrexError, e:
- print >>sys.stderr, e
- cfile = pyxfile.new(ext='.c')
- return cfile
-
-def skip_missing_compiler(fn, *args, **kwds):
- from distutils.errors import DistutilsPlatformError
- try:
- return fn(*args, **kwds)
- except DistutilsPlatformError, e:
- py.test.skip('DistutilsPlatformError: %s' % (e,))
-
-def build_cfunc(func, simplify=1, dot=1, inputargtypes=None):
- """ return a pyrex-generated cfunction from the given func.
-
- simplify is true -> perform simplifications on the flowgraph.
- dot is true -> generate a dot-configuration file and postscript.
- inputargtypes is a list (allowed to be empty) ->
- then annotation will be performed before generating
- dot/pyrex/c code.
-
- """
- try: func = func.im_func
- except AttributeError: pass
-
- # build the flow graph
- from pypy.objspace.flow import Space
- from pypy.tool.udir import udir
- space = Space()
- name = func.func_name
- funcgraph = space.build_flow(func)
-
- if not inputargtypes:
- source = inspect.getsource(func)
- base = udir.join(name).new(ext='.py').write(source)
-
- if dot:
- from pypy.translator.tool.make_dot import FlowGraphDotGen
- dotgen = FlowGraphDotGen(name)
- dotgen.emit_subgraph(name, funcgraph)
-
- # apply transformations
- if simplify:
- from pypy.translator.simplify import simplify_graph
- simplify_graph(funcgraph)
- name += '_s'
-
- # get the pyrex generator
- from pypy.translator.pyrex.genpyrex import GenPyrex
- genpyrex = GenPyrex(funcgraph)
-
- # generate pyrex (without type inference)
-
- # apply type inference
- if inputargtypes is not None:
- genpyrex.annotate(inputargtypes)
- name += '_t'
- #a = Annotator(self.functiongraph)
- #a.build_types(input_arg_types)
- #a.simplify()
-
- pyxstring = genpyrex.emitcode()
- #funcgraph.source = inspect.getsource(func)
- else:
- pyxstring = genpyrex.emitcode()
-
- pyxheader = genpyrex.globaldeclarations()
- mod = make_module_from_pyxstring(name, udir, pyxheader + '\n' + pyxstring)
-
- if dot:
- if name != func.func_name: # if some transformations have been done
- dotgen.emit_subgraph(name, funcgraph)
- dotgen.generate()
-
- return getattr(mod, func.func_name)
Modified: pypy/dist/pypy/translator/translator.py
==============================================================================
--- pypy/dist/pypy/translator/translator.py (original)
+++ pypy/dist/pypy/translator/translator.py Sat Jul 30 14:40:15 2005
@@ -9,8 +9,8 @@
from pypy.objspace.flow.model import *
from pypy.translator.simplify import simplify_graph
from pypy.translator.gensupp import uniquemodulename
-from pypy.translator.tool.buildpyxmodule import make_module_from_pyxstring
-from pypy.translator.tool.buildpyxmodule import make_module_from_c
+from pypy.translator.tool.cbuild import make_module_from_pyxstring
+from pypy.translator.tool.cbuild import make_module_from_c
from pypy.objspace.flow import FlowObjSpace
More information about the Pypy-commit
mailing list