[pypy-svn] r23123 - in pypy/dist/pypy/translator: backendopt js js/test llvm microbench
ericvrp at codespeak.net
ericvrp at codespeak.net
Tue Feb 7 21:06:13 CET 2006
Author: ericvrp
Date: Tue Feb 7 21:05:56 2006
New Revision: 23123
Added:
pypy/dist/pypy/translator/js/test/test_ajax.py
pypy/dist/pypy/translator/js/test/test_annotationproblem.py
pypy/dist/pypy/translator/js/test/test_struct.py
Modified:
pypy/dist/pypy/translator/backendopt/all.py
pypy/dist/pypy/translator/js/opwriter.py
pypy/dist/pypy/translator/js/test/runtest.py
pypy/dist/pypy/translator/llvm/genllvm.py
pypy/dist/pypy/translator/microbench/microbench.py
Log:
svn-commit.tmp
Modified: pypy/dist/pypy/translator/backendopt/all.py
==============================================================================
--- pypy/dist/pypy/translator/backendopt/all.py (original)
+++ pypy/dist/pypy/translator/backendopt/all.py Tue Feb 7 21:05:56 2006
@@ -9,7 +9,7 @@
from pypy.translator.backendopt.escape import malloc_to_stack
-def backend_optimizations(translator, raisingop2direct_call_all=False,
+def backend_optimizations(translator, raisingop2direct_call_all=True,
inline_threshold=1,
mallocs=True,
ssa_form=True,
Modified: pypy/dist/pypy/translator/js/opwriter.py
==============================================================================
--- pypy/dist/pypy/translator/js/opwriter.py (original)
+++ pypy/dist/pypy/translator/js/opwriter.py Tue Feb 7 21:05:56 2006
@@ -274,17 +274,28 @@
arg_type = op.args[0].value
targetvar = self.db.repr_arg(op.result)
t = str(op.args[0]).split()
- if t[0].endswith('Array'): #XXX ouch do I really want to go down this road
+ if isinstance(arg_type, lltype.Array):
type_ = '[];'
else:
- type_ = '{};'
- #XXX this should be done correctly for all types offcourse!
- if type_ == '{}' and t[1] == 'rpy_string':
- self.codewriter.append(targetvar + ' = {hash:0, chars:""};')
- else:
- self.codewriter.comment(str(arg_type))
- self.codewriter.comment(str(op.args[0]))
- self.codewriter.malloc(targetvar, type_)
+ assert isinstance(arg_type, lltype.Struct)
+ type_ = '{'
+ for n, name in enumerate(arg_type._names_without_voids()):
+ if n > 0:
+ type_ += ', '
+ t = arg_type._flds[name]
+ type_ += self.db.namespace.ensure_non_reserved(name) + ':'
+ if t is lltype.Void:
+ type_ += 'undefined'
+ elif t is lltype.Bool:
+ type_ += 'false'
+ elif t is lltype.Char:
+ type_ += 'String.fromCharCode(0)'
+ elif t is lltype.Float:
+ type_ += '0.0'
+ else:
+ type_ += '0'
+ type_ += '};'
+ self.codewriter.malloc(targetvar, type_)
malloc_exception = malloc
malloc_varsize = malloc
Modified: pypy/dist/pypy/translator/js/test/runtest.py
==============================================================================
--- pypy/dist/pypy/translator/js/test/runtest.py (original)
+++ pypy/dist/pypy/translator/js/test/runtest.py Tue Feb 7 21:05:56 2006
@@ -5,6 +5,7 @@
from pypy.translator.js.test.browsertest import jstest
from pypy.translator.js import conftest
from pypy.translator.js.log import log
+from pypy.conftest import option
log = log.runtest
use_browsertest = conftest.option.jsbrowser
@@ -27,7 +28,7 @@
backend_optimizations(t, raisingop2direct_call_all=True, inline_threshold=0, mallocs=False)
#backend_optimizations(t)
- if view:
+ if view or option.view:
t.view()
#self.js = JS(t, [function, callback_function], stackless)
self.js = JS(t, [function], stackless)
Added: pypy/dist/pypy/translator/js/test/test_ajax.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/translator/js/test/test_ajax.py Tue Feb 7 21:05:56 2006
@@ -0,0 +1 @@
+#XMLHttpRequest
Added: pypy/dist/pypy/translator/js/test/test_annotationproblem.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/translator/js/test/test_annotationproblem.py Tue Feb 7 21:05:56 2006
@@ -0,0 +1,19 @@
+from __future__ import division
+import py
+
+from pypy.translator.js.test.runtest import compile_function
+from pypy.rpython.lltypesystem import lltype
+from pypy.rpython.rjs import jseval
+from pypy.translator.js import conftest
+
+py.test.skip("WIP")
+
+def test_bugme():
+ def bugme(i):
+ if i >= 0:
+ return i
+ else:
+ return [1,2,3]
+ bugme_fn = compile_function(bugme, [int])
+ assert bugme_fn(-1) == bugme(-1)
+ assert bugme_fn(1) == bugme(1)
Added: pypy/dist/pypy/translator/js/test/test_struct.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/translator/js/test/test_struct.py Tue Feb 7 21:05:56 2006
@@ -0,0 +1,21 @@
+import py
+from pypy.rpython.lltypesystem import lltype
+from pypy.translator.js.test.runtest import compile_function
+
+S = lltype.GcStruct("mystruct",
+ ('myvar1', lltype.Unsigned),
+ ('myvar2', lltype.Signed),
+ ('myvar3', lltype.Float),
+ ('myvar4', lltype.Char),
+ ('myvar5', lltype.Void),
+ ('myvar7', lltype.Bool),
+ )
+#Array
+#Struct
+
+def test_struct2():
+ def struct2():
+ s = lltype.malloc(S)
+ return s.myvar1
+ f = compile_function(struct2, [])
+ assert f() == struct2()
Modified: pypy/dist/pypy/translator/llvm/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/genllvm.py Tue Feb 7 21:05:56 2006
@@ -16,6 +16,7 @@
from pypy.translator.llvm.gc import GcPolicy
from pypy.translator.llvm.exception import ExceptionPolicy
from pypy.translator.llvm.log import log
+from pypy import conftest
class GenLLVM(object):
@@ -312,7 +313,7 @@
propagate=False)
# note: this is without policy transforms
- if view:
+ if view or conftest.option.view:
t.view()
return genllvm(t, function, optimize=optimize, **kwds)
Modified: pypy/dist/pypy/translator/microbench/microbench.py
==============================================================================
--- pypy/dist/pypy/translator/microbench/microbench.py (original)
+++ pypy/dist/pypy/translator/microbench/microbench.py Tue Feb 7 21:05:56 2006
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python
"""This script computes the relative performance between python
implementations on a set of microbenchmarks. The script usally is started
More information about the Pypy-commit
mailing list