[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