[pypy-commit] pypy win64-stage1: mertsch
ctismer
noreply at buildbot.pypy.org
Sat Nov 19 22:56:27 CET 2011
Author: Christian Tismer <tismer at stackless.com>
Branch: win64-stage1
Changeset: r49557:a096ecd9fea3
Date: 2011-11-19 22:55 +0100
http://bitbucket.org/pypy/pypy/changeset/a096ecd9fea3/
Log: mertsch
diff --git a/pypy/jit/backend/x86/test/test_ztranslation.py b/pypy/jit/backend/x86/test/test_ztranslation.py
--- a/pypy/jit/backend/x86/test/test_ztranslation.py
+++ b/pypy/jit/backend/x86/test/test_ztranslation.py
@@ -1,6 +1,6 @@
import py, os, sys
from pypy.tool.udir import udir
-from pypy.rlib.jit import JitDriver, unroll_parameters
+from pypy.rlib.jit import JitDriver, unroll_parameters, set_param
from pypy.rlib.jit import PARAMETERS, dont_look_inside
from pypy.rlib.jit import promote
from pypy.jit.metainterp.jitprof import Profiler
@@ -47,9 +47,9 @@
def f(i, j):
for param, _ in unroll_parameters:
defl = PARAMETERS[param]
- jitdriver.set_param(param, defl)
- jitdriver.set_param("threshold", 3)
- jitdriver.set_param("trace_eagerness", 2)
+ set_param(jitdriver, param, defl)
+ set_param(jitdriver, "threshold", 3)
+ set_param(jitdriver, "trace_eagerness", 2)
total = 0
frame = Frame(i)
while frame.i > 3:
@@ -213,8 +213,8 @@
else:
return Base()
def myportal(i):
- jitdriver.set_param("threshold", 3)
- jitdriver.set_param("trace_eagerness", 2)
+ set_param(jitdriver, "threshold", 3)
+ set_param(jitdriver, "trace_eagerness", 2)
total = 0
n = i
while True:
diff --git a/pypy/jit/codewriter/codewriter.py b/pypy/jit/codewriter/codewriter.py
--- a/pypy/jit/codewriter/codewriter.py
+++ b/pypy/jit/codewriter/codewriter.py
@@ -104,6 +104,8 @@
else:
name = 'unnamed' % id(ssarepr)
i = 1
+ # escape <lambda> names for windows
+ name = name.replace('<lambda>', '_(lambda)_')
extra = ''
while name+extra in self._seen_files:
i += 1
diff --git a/pypy/rlib/_rffi_stacklet.py b/pypy/rlib/_rffi_stacklet.py
--- a/pypy/rlib/_rffi_stacklet.py
+++ b/pypy/rlib/_rffi_stacklet.py
@@ -8,16 +8,21 @@
cdir = py.path.local(pypydir) / 'translator' / 'c'
-_sep_mods = []
-if sys.platform == 'win32':
- _sep_mods = [cdir / "src/stacklet/switch_x86_msvc.asm"]
-
eci = ExternalCompilationInfo(
include_dirs = [cdir],
includes = ['src/stacklet/stacklet.h'],
separate_module_sources = ['#include "src/stacklet/stacklet.c"\n'],
- separate_module_files = _sep_mods
)
+if sys.platform == 'win32':
+ eci.separate_module_files += (cdir / "src/stacklet/switch_x86_msvc.asm", )
+ eci.export_symbols += (
+ 'stacklet_newthread',
+ 'stacklet_deletethread',
+ 'stacklet_new',
+ 'stacklet_switch',
+ 'stacklet_destroy',
+ '_stacklet_translate_pointer',
+ )
rffi_platform.verify_eci(eci.convert_sources_to_files())
diff --git a/pypy/translator/platform/windows.py b/pypy/translator/platform/windows.py
--- a/pypy/translator/platform/windows.py
+++ b/pypy/translator/platform/windows.py
@@ -117,9 +117,16 @@
env=self.c_environ)
r = re.search('Macro Assembler', stderr)
if r is None and os.path.exists('c:/masm32/bin/ml.exe'):
- self.masm = 'c:/masm32/bin/ml.exe'
+ masm32 = 'c:/masm32/bin/ml.exe'
+ masm64 = 'c:/masm64/bin/ml64.exe'
else:
- self.masm = 'ml.exe'
+ masm32 = 'ml.exe'
+ masm64 = 'ml64.exe'
+
+ if x64:
+ self.masm = masm64
+ else:
+ self.masm = masm32
# Install debug options only when interpreter is in debug mode
if sys.executable.lower().endswith('_d.exe'):
@@ -179,6 +186,12 @@
def _compile_c_file(self, cc, cfile, compile_args):
oname = cfile.new(ext='obj')
+ # notabene: (tismer)
+ # This function may be called for .c but also .asm files.
+ # The c compiler accepts any order of arguments, while
+ # the assembler still has the old behavior that all options
+ # must come first, and after the file name all options are ignored.
+ # So please be careful with the oder of parameters! ;-)
args = ['/nologo', '/c'] + compile_args + ['/Fo%s' % (oname,), str(cfile)]
self._execute_c_compiler(cc, args, oname)
return oname
More information about the pypy-commit
mailing list