Author: mattip <matti.pi...@gmail.com> Branch: Changeset: r63154:1c7e961aa0ab Date: 2013-04-08 21:22 +0300 http://bitbucket.org/pypy/pypy/changeset/1c7e961aa0ab/
Log: merge heads diff --git a/pypy/module/__pypy__/interp_time.py b/pypy/module/__pypy__/interp_time.py --- a/pypy/module/__pypy__/interp_time.py +++ b/pypy/module/__pypy__/interp_time.py @@ -61,7 +61,7 @@ ret = c_clock_gettime(clk_id, tp) if ret != 0: raise exception_from_errno(space, space.w_IOError) - return space.wrap(tp.c_tv_sec + tp.c_tv_nsec * 1e-9) + return space.wrap(int(tp.c_tv_sec) + 1e-9 * int(tp.c_tv_nsec)) @unwrap_spec(clk_id="c_int") def clock_getres(space, clk_id): @@ -69,4 +69,4 @@ ret = c_clock_getres(clk_id, tp) if ret != 0: raise exception_from_errno(space, space.w_IOError) - return space.wrap(tp.c_tv_sec + tp.c_tv_nsec * 1e-9) + return space.wrap(int(tp.c_tv_sec) + 1e-9 * int(tp.c_tv_nsec)) diff --git a/rpython/jit/metainterp/blackhole.py b/rpython/jit/metainterp/blackhole.py --- a/rpython/jit/metainterp/blackhole.py +++ b/rpython/jit/metainterp/blackhole.py @@ -857,6 +857,8 @@ @arguments("r") def bhimpl_debug_fatalerror(msg): + from rpython.rtyper.lltypesystem import rstr + msg = lltype.cast_opaque_ptr(lltype.Ptr(rstr.STR), msg) llop.debug_fatalerror(lltype.Void, msg) @arguments("r", "i", "i", "i", "i") diff --git a/rpython/jit/metainterp/test/test_blackhole.py b/rpython/jit/metainterp/test/test_blackhole.py --- a/rpython/jit/metainterp/test/test_blackhole.py +++ b/rpython/jit/metainterp/test/test_blackhole.py @@ -228,5 +228,15 @@ assert BlackholeInterpreter.bhimpl_int_lshift.im_func(100, 3) == 100<<3 assert BlackholeInterpreter.bhimpl_int_rshift.im_func(100, 3) == 100>>3 - assert BlackholeInterpreter.bhimpl_uint_rshift.im_func(100, 3) == 100>>3 - + assert BlackholeInterpreter.bhimpl_uint_rshift.im_func(100, 3) == 100>>3 + +def test_debug_fatalerror(): + from rpython.rtyper.lltypesystem import lltype, llmemory, rstr + from rpython.rtyper.llinterp import LLFatalError + msg = rstr.mallocstr(1) + msg.chars[0] = "!" + msg = lltype.cast_opaque_ptr(llmemory.GCREF, msg) + e = py.test.raises(LLFatalError, + BlackholeInterpreter.bhimpl_debug_fatalerror.im_func, + msg) + assert str(e.value) == '!' diff --git a/rpython/rtyper/lltypesystem/lloperation.py b/rpython/rtyper/lltypesystem/lloperation.py --- a/rpython/rtyper/lltypesystem/lloperation.py +++ b/rpython/rtyper/lltypesystem/lloperation.py @@ -555,7 +555,7 @@ 'debug_offset': LLOp(canrun=True), 'debug_flush': LLOp(canrun=True), 'debug_assert': LLOp(tryfold=True), - 'debug_fatalerror': LLOp(), + 'debug_fatalerror': LLOp(canrun=True), 'debug_llinterpcall': LLOp(canraise=(Exception,)), # Python func call 'res=arg[0](*arg[1:])' # in backends, abort() or whatever is fine diff --git a/rpython/rtyper/lltypesystem/opimpl.py b/rpython/rtyper/lltypesystem/opimpl.py --- a/rpython/rtyper/lltypesystem/opimpl.py +++ b/rpython/rtyper/lltypesystem/opimpl.py @@ -654,6 +654,13 @@ from rpython.rlib.rtimer import read_timestamp return read_timestamp() +def op_debug_fatalerror(ll_msg): + from rpython.rtyper.lltypesystem import lltype, rstr + from rpython.rtyper.llinterp import LLFatalError + assert lltype.typeOf(ll_msg) == lltype.Ptr(rstr.STR) + msg = ''.join(ll_msg.chars) + raise LLFatalError(msg) + # ____________________________________________________________ def get_op_impl(opname): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit