[pypy-svn] r49345 - in pypy/dist/pypy: jit/codegen/llgraph jit/timeshifter/test module/thread rlib rpython rpython/lltypesystem rpython/memory/gc rpython/memory/gctransform rpython/numpy rpython/test
fijal at codespeak.net
fijal at codespeak.net
Tue Dec 4 17:24:36 CET 2007
Author: fijal
Date: Tue Dec 4 17:24:36 2007
New Revision: 49345
Added:
pypy/dist/pypy/rlib/debug.py (contents, props changed)
Modified:
pypy/dist/pypy/jit/codegen/llgraph/rgenop.py
pypy/dist/pypy/jit/timeshifter/test/test_timeshift.py
pypy/dist/pypy/module/thread/ll_thread.py
pypy/dist/pypy/rlib/objectmodel.py
pypy/dist/pypy/rpython/extfunc.py
pypy/dist/pypy/rpython/lltypesystem/llarena.py
pypy/dist/pypy/rpython/lltypesystem/rlist.py
pypy/dist/pypy/rpython/lltypesystem/rstr.py
pypy/dist/pypy/rpython/memory/gc/base.py
pypy/dist/pypy/rpython/memory/gc/generation.py
pypy/dist/pypy/rpython/memory/gc/marksweep.py
pypy/dist/pypy/rpython/memory/gc/semispace.py
pypy/dist/pypy/rpython/memory/gctransform/framework.py
pypy/dist/pypy/rpython/numpy/rarray.py
pypy/dist/pypy/rpython/rlist.py
pypy/dist/pypy/rpython/test/test_rbuiltin.py
Log:
Rename objectmodel.debug_assert to debug.ll_assert and
objectmodel.debug_llinterpcall to debug.llinterpcall
Modified: pypy/dist/pypy/jit/codegen/llgraph/rgenop.py
==============================================================================
--- pypy/dist/pypy/jit/codegen/llgraph/rgenop.py (original)
+++ pypy/dist/pypy/jit/codegen/llgraph/rgenop.py Tue Dec 4 17:24:36 2007
@@ -1,4 +1,5 @@
-from pypy.rlib.objectmodel import specialize, debug_assert
+from pypy.rlib.objectmodel import specialize
+from pypy.rlib.debug import ll_assert
from pypy.rpython.lltypesystem import lltype, llmemory
from pypy.jit.codegen.model import AbstractRGenOp, GenLabel, GenBuilder
from pypy.jit.codegen.model import GenVar, GenConst, CodeGenSwitch
@@ -72,7 +73,7 @@
l_case = llimpl.add_case(self.b, gv_case.v)
b = llimpl.closelinktofreshblock(l_case, self.args_gv, self.l_default)
builder = LLBuilder(self.rgenop, self.gv_f, b)
- debug_assert(self.rgenop.currently_writing is None or
+ ll_assert(self.rgenop.currently_writing is None or
# special case: we stop replaying and add a case after
# a call to flexswitch() on a replay builder
self.rgenop.currently_writing.is_default_builder,
@@ -85,7 +86,7 @@
self.l_default = l_default
b = llimpl.closelinktofreshblock(l_default, self.args_gv, None)
builder = LLBuilder(self.rgenop, self.gv_f, b)
- debug_assert(self.rgenop.currently_writing is None,
+ ll_assert(self.rgenop.currently_writing is None,
"_add_default: currently_writing elsewhere")
self.rgenop.currently_writing = builder
builder.is_default_builder = True
@@ -101,19 +102,19 @@
self.b = block
def end(self):
- debug_assert(self.rgenop.currently_writing is None,
+ ll_assert(self.rgenop.currently_writing is None,
"end: currently_writing")
llimpl.end(self.gv_f)
@specialize.arg(1)
def genop1(self, opname, gv_arg):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop1: bad currently_writing")
return LLVar(llimpl.genop(self.b, opname, [gv_arg], llimpl.guess))
@specialize.arg(1)
def genraisingop1(self, opname, gv_arg):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genraisingop1: bad currently_writing")
gv_res = LLVar(llimpl.genop(self.b, opname, [gv_arg], llimpl.guess))
gv_exc = LLVar(llimpl.genop(self.b, "check_and_clear_exc", [],
@@ -122,14 +123,14 @@
@specialize.arg(1)
def genop2(self, opname, gv_arg1, gv_arg2):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop2: bad currently_writing")
return LLVar(llimpl.genop(self.b, opname, [gv_arg1, gv_arg2],
llimpl.guess))
@specialize.arg(1)
def genraisingop2(self, opname, gv_arg1, gv_arg2):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genraisingop2: bad currently_writing")
gv_res = LLVar(llimpl.genop(self.b, opname, [gv_arg1, gv_arg2],
llimpl.guess))
@@ -138,7 +139,7 @@
return gv_res, gv_exc
def genop_call(self, (ARGS_gv, gv_RESULT, _), gv_callable, args_gv):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_call: bad currently_writing")
vars_gv = [gv_callable]
j = 0
@@ -157,7 +158,7 @@
return LLVar(v)
def genop_getfield(self, (gv_name, gv_PTRTYPE, gv_FIELDTYPE), gv_ptr):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_getfield: bad currently_writing")
return LLVar(llimpl.gengetfield(self.b, gv_ptr.v,
gv_PTRTYPE.v, gv_name.v))
@@ -167,7 +168,7 @@
def genop_setfield(self, (gv_name, gv_PTRTYPE, gv_FIELDTYPE), gv_ptr,
gv_value):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_setfield: bad currently_writing")
v_value = llimpl.cast(self.b, gv_FIELDTYPE.v, gv_value.v)
llimpl.gensetfield(self.b, gv_ptr.v, gv_PTRTYPE.v, gv_name.v, v_value)
@@ -178,7 +179,7 @@
# gv_Void.v))
def genop_getsubstruct(self, (gv_name, gv_PTRTYPE, gv_FIELDTYPE), gv_ptr):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_getsubstruct: bad currently_writing")
return LLVar(llimpl.gengetsubstruct(self.b, gv_ptr.v,
gv_PTRTYPE.v, gv_name.v))
@@ -187,7 +188,7 @@
# gv_FIELDTYPE.v))
def genop_getarrayitem(self, gv_ITEMTYPE, gv_ptr, gv_index):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_getarrayitem: bad currently_writing")
return LLVar(llimpl.gengetarrayitem(self.b, gv_ITEMTYPE.v,
gv_ptr.v, gv_index.v))
@@ -196,7 +197,7 @@
# gv_ITEMTYPE.v))
def genop_getarraysubstruct(self, gv_ITEMTYPE, gv_ptr, gv_index):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_getarraysubstruct: bad currently_writing")
return LLVar(llimpl.gengetarraysubstruct(self.b, gv_ptr.v, gv_index.v))
#vars_gv = [gv_ptr.v, gv_index.v]
@@ -204,53 +205,53 @@
# gv_ITEMTYPE.v))
def genop_setarrayitem(self, gv_ITEMTYPE, gv_ptr, gv_index, gv_value):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_setarrayitem: bad currently_writing")
llimpl.gensetarrayitem(self.b, gv_ptr.v, gv_index.v, gv_value.v)
#vars_gv = [gv_ptr.v, gv_index.v, gv_value.v]
#llimpl.genop(self.b, 'setarrayitem', vars_gv, gv_Void.v)
def genop_getarraysize(self, gv_ITEMTYPE, gv_ptr):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_getarraysize: bad currently_writing")
return LLVar(llimpl.gengetarraysize(self.b, gv_ptr.v))
#return LLVar(llimpl.genop(self.b, 'getarraysize', [gv_ptr.v],
# gv_Signed.v))
def genop_malloc_fixedsize(self, (gv_TYPE, gv_PTRTYPE)):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_malloc_fixedsize: bad currently_writing")
vars_gv = [gv_TYPE.v, gv_flavor_gc.v]
return LLVar(llimpl.genop(self.b, 'malloc', vars_gv,
gv_PTRTYPE.v))
def genop_malloc_varsize(self, (gv_TYPE, gv_PTRTYPE), gv_length):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_malloc_varsize: bad currently_writing")
vars_gv = [gv_TYPE.v, gv_flavor_gc.v, gv_length.v]
return LLVar(llimpl.genop(self.b, 'malloc_varsize', vars_gv,
gv_PTRTYPE.v))
def genop_same_as(self, gv_TYPE, gv_value):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_same_as: bad currently_writing")
gv_value = llimpl.cast(self.b, gv_TYPE.v, gv_value.v)
return LLVar(llimpl.genop(self.b, 'same_as', [gv_value], gv_TYPE.v))
def genop_ptr_iszero(self, gv_PTRTYPE, gv_ptr):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_ptr_iszero: bad currently_writing")
gv_ptr = llimpl.cast(self.b, gv_PTRTYPE.v, gv_ptr.v)
return LLVar(llimpl.genop(self.b, 'ptr_iszero', [gv_ptr], gv_Bool.v))
def genop_ptr_nonzero(self, gv_PTRTYPE, gv_ptr):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_ptr_nonzero: bad currently_writing")
gv_ptr = llimpl.cast(self.b, gv_PTRTYPE.v, gv_ptr.v)
return LLVar(llimpl.genop(self.b, 'ptr_nonzero', [gv_ptr], gv_Bool.v))
def genop_ptr_eq(self, gv_PTRTYPE, gv_ptr1, gv_ptr2):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_ptr_eq: bad currently_writing")
gv_ptr1 = llimpl.cast(self.b, gv_PTRTYPE.v, gv_ptr1.v)
gv_ptr2 = llimpl.cast(self.b, gv_PTRTYPE.v, gv_ptr2.v)
@@ -258,7 +259,7 @@
gv_Bool.v))
def genop_ptr_ne(self, gv_PTRTYPE, gv_ptr1, gv_ptr2):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_ptr_ne: bad currently_writing")
gv_ptr1 = llimpl.cast(self.b, gv_PTRTYPE.v, gv_ptr1.v)
gv_ptr2 = llimpl.cast(self.b, gv_PTRTYPE.v, gv_ptr2.v)
@@ -266,7 +267,7 @@
gv_Bool.v))
def genop_cast_int_to_ptr(self, gv_PTRTYPE, gv_int):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_cast_int_to_ptr: bad currently_writing")
return LLVar(llimpl.genop(self.b, 'cast_int_to_ptr', [gv_int],
gv_PTRTYPE.v))
@@ -276,7 +277,7 @@
return [LLVar(llimpl.geninputarg(newb, kind.v)) for kind in kinds]
def enter_next_block(self, kinds, args_gv):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"enter_next_block: bad currently_writing")
lnk = llimpl.closeblock1(self.b)
newb_args_gv = self._newblock(kinds)
@@ -297,7 +298,7 @@
self._close()
def _jump(self, l_jump, l_no_jump, args_for_jump_gv):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"_jump: bad currently_writing")
self.b = llimpl.closelinktofreshblock(l_no_jump, None, None)
b2 = llimpl.closelinktofreshblock(l_jump, args_for_jump_gv, None)
@@ -321,7 +322,7 @@
return (flexswitch, flexswitch._add_default())
def _close(self):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"_close: bad currently_writing")
self.rgenop.currently_writing = None
self.b = llimpl.nullblock
@@ -333,7 +334,7 @@
assert self.later_block != llimpl.nullblock
self.b = self.later_block
self.later_block = llimpl.nullblock
- debug_assert(self.rgenop.currently_writing is None,
+ ll_assert(self.rgenop.currently_writing is None,
"start_writing: currently_writing")
self.rgenop.currently_writing = self
@@ -352,18 +353,18 @@
# read_frame_var support
def genop_get_frame_base(self):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"genop_get_frame_base: bad currently_writing")
return LLVar(llimpl.genop(self.b, 'get_frame_base', [],
gv_Address.v))
def get_frame_info(self, vars):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"get_frame_info: bad currently_writing")
return llimpl.get_frame_info(self.b, vars)
def alloc_frame_place(self, gv_TYPE, gv_initial_value=None):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"alloc_frame_place: bad currently_writing")
if gv_initial_value is None:
gv_initial_value = self.rgenop.genzeroconst(gv_TYPE)
@@ -373,9 +374,9 @@
return LLPlace(v, llimpl.get_frame_info(self.b, [v]))
def genop_absorb_place(self, gv_TYPE, place):
- debug_assert(self.rgenop.currently_writing is self,
+ ll_assert(self.rgenop.currently_writing is self,
"alloc_frame_place: bad currently_writing")
- debug_assert(not place.absorbed, "place already absorbed")
+ ll_assert(not place.absorbed, "place already absorbed")
place.absorbed = True
return place.v
@@ -449,7 +450,7 @@
def replay(self, label, kinds):
builder = LLBuilder(self, label.g, llimpl.nullblock)
args_gv = builder._newblock(kinds)
- debug_assert(self.currently_writing is None,
+ ll_assert(self.currently_writing is None,
"replay: currently_writing")
self.currently_writing = builder
return builder, args_gv
Modified: pypy/dist/pypy/jit/timeshifter/test/test_timeshift.py
==============================================================================
--- pypy/dist/pypy/jit/timeshifter/test/test_timeshift.py (original)
+++ pypy/dist/pypy/jit/timeshifter/test/test_timeshift.py Tue Dec 4 17:24:36 2007
@@ -10,7 +10,8 @@
from pypy.objspace.flow.model import summary, Variable
from pypy.rpython.lltypesystem import lltype, llmemory, rstr
from pypy.rlib.jit import hint
-from pypy.rlib.objectmodel import keepalive_until_here, debug_assert
+from pypy.rlib.objectmodel import keepalive_until_here
+from pypy.rlib.debug import ll_assert
from pypy.rlib.unroll import unrolling_iterable
from pypy.rlib.rarithmetic import ovfcheck
from pypy.rpython.annlowlevel import PseudoHighLevelCallable, cachedtype
@@ -1379,7 +1380,7 @@
return s
def g(s):
# assumes that s is not null here
- debug_assert(bool(s), "please don't give me a null")
+ ll_assert(bool(s), "please don't give me a null")
return 5
def f(m):
s = h()
Modified: pypy/dist/pypy/module/thread/ll_thread.py
==============================================================================
--- pypy/dist/pypy/module/thread/ll_thread.py (original)
+++ pypy/dist/pypy/module/thread/ll_thread.py Tue Dec 4 17:24:36 2007
@@ -10,7 +10,7 @@
from pypy.rpython.extregistry import ExtRegistryEntry
from pypy.annotation import model as annmodel
from pypy.rpython.lltypesystem.lltype import typeOf
-from pypy.rlib.objectmodel import debug_assert
+from pypy.rlib.debug import ll_assert
from pypy.tool import autopath
from distutils import sysconfig
python_inc = sysconfig.get_python_inc()
@@ -154,11 +154,11 @@
return bool(c_thread_acquirelock_NOAUTO(self._lock, int(flag)))
def release(self):
- debug_assert(not self.acquire(False), "Lock_NOAUTO was not held!")
+ ll_assert(not self.acquire(False), "Lock_NOAUTO was not held!")
c_thread_releaselock_NOAUTO(self._lock)
def fused_release_acquire(self):
- debug_assert(not self.acquire(False), "Lock_NOAUTO was not held!")
+ ll_assert(not self.acquire(False), "Lock_NOAUTO was not held!")
c_thread_fused_releaseacquirelock_NOAUTO(self._lock)
def __del__(self):
Added: pypy/dist/pypy/rlib/debug.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/rlib/debug.py Tue Dec 4 17:24:36 2007
@@ -0,0 +1,59 @@
+
+from pypy.rpython.extregistry import ExtRegistryEntry
+
+def ll_assert(x, msg):
+ """After translation to C, this becomes an RPyAssert."""
+ assert x, msg
+
+class Entry(ExtRegistryEntry):
+ _about_ = ll_assert
+
+ def compute_result_annotation(self, s_x, s_msg):
+ assert s_msg.is_constant(), ("ll_assert(x, msg): "
+ "the msg must be constant")
+ return None
+
+ def specialize_call(self, hop):
+ from pypy.rpython.lltypesystem import lltype
+ vlist = hop.inputargs(lltype.Bool, lltype.Void)
+ hop.genop('debug_assert', vlist)
+
+
+def llinterpcall(RESTYPE, pythonfunction, *args):
+ """When running on the llinterp, this causes the llinterp to call to
+ the provided Python function with the run-time value of the given args.
+ The Python function should return a low-level object of type RESTYPE.
+ This should never be called after translation: use this only if
+ running_on_llinterp is true.
+ """
+ raise NotImplementedError
+
+class Entry(ExtRegistryEntry):
+ _about_ = llinterpcall
+
+ def compute_result_annotation(self, s_RESTYPE, s_pythonfunction, *args_s):
+ from pypy.annotation import model as annmodel
+ from pypy.rpython.lltypesystem import lltype
+ assert s_RESTYPE.is_constant()
+ assert s_pythonfunction.is_constant()
+ s_result = s_RESTYPE.const
+ if isinstance(s_result, lltype.LowLevelType):
+ s_result = annmodel.lltype_to_annotation(s_result)
+ assert isinstance(s_result, annmodel.SomeObject)
+ return s_result
+
+ def specialize_call(self, hop):
+ from pypy.annotation import model as annmodel
+ from pypy.rpython.lltypesystem import lltype
+ RESTYPE = hop.args_s[0].const
+ if not isinstance(RESTYPE, lltype.LowLevelType):
+ assert isinstance(RESTYPE, annmodel.SomeObject)
+ r_result = hop.rtyper.getrepr(RESTYPE)
+ RESTYPE = r_result.lowleveltype
+ pythonfunction = hop.args_s[1].const
+ c_pythonfunction = hop.inputconst(lltype.Void, pythonfunction)
+ args_v = [hop.inputarg(hop.args_r[i], arg=i)
+ for i in range(2, hop.nb_args)]
+ return hop.genop('debug_llinterpcall', [c_pythonfunction] + args_v,
+ resulttype=RESTYPE)
+
Modified: pypy/dist/pypy/rlib/objectmodel.py
==============================================================================
--- pypy/dist/pypy/rlib/objectmodel.py (original)
+++ pypy/dist/pypy/rlib/objectmodel.py Tue Dec 4 17:24:36 2007
@@ -201,65 +201,6 @@
raise TyperError("current_object_addr_as_int() cannot be applied to"
" %r" % (vobj.concretetype,))
-# ____________________________________________________________
-
-def debug_assert(x, msg):
- """After translation to C, this becomes an RPyAssert."""
- assert x, msg
-
-class Entry(ExtRegistryEntry):
- _about_ = debug_assert
-
- def compute_result_annotation(self, s_x, s_msg):
- assert s_msg.is_constant(), ("debug_assert(x, msg): "
- "the msg must be constant")
- return None
-
- def specialize_call(self, hop):
- from pypy.rpython.lltypesystem import lltype
- vlist = hop.inputargs(lltype.Bool, lltype.Void)
- hop.genop('debug_assert', vlist)
-
-
-def debug_llinterpcall(RESTYPE, pythonfunction, *args):
- """When running on the llinterp, this causes the llinterp to call to
- the provided Python function with the run-time value of the given args.
- The Python function should return a low-level object of type RESTYPE.
- This should never be called after translation: use this only if
- running_on_llinterp is true.
- """
- raise NotImplementedError
-
-class Entry(ExtRegistryEntry):
- _about_ = debug_llinterpcall
-
- def compute_result_annotation(self, s_RESTYPE, s_pythonfunction, *args_s):
- from pypy.annotation import model as annmodel
- from pypy.rpython.lltypesystem import lltype
- assert s_RESTYPE.is_constant()
- assert s_pythonfunction.is_constant()
- s_result = s_RESTYPE.const
- if isinstance(s_result, lltype.LowLevelType):
- s_result = annmodel.lltype_to_annotation(s_result)
- assert isinstance(s_result, annmodel.SomeObject)
- return s_result
-
- def specialize_call(self, hop):
- from pypy.annotation import model as annmodel
- from pypy.rpython.lltypesystem import lltype
- RESTYPE = hop.args_s[0].const
- if not isinstance(RESTYPE, lltype.LowLevelType):
- assert isinstance(RESTYPE, annmodel.SomeObject)
- r_result = hop.rtyper.getrepr(RESTYPE)
- RESTYPE = r_result.lowleveltype
- pythonfunction = hop.args_s[1].const
- c_pythonfunction = hop.inputconst(lltype.Void, pythonfunction)
- args_v = [hop.inputarg(hop.args_r[i], arg=i)
- for i in range(2, hop.nb_args)]
- return hop.genop('debug_llinterpcall', [c_pythonfunction] + args_v,
- resulttype=RESTYPE)
-
-
def hlinvoke(repr, llcallable, *args):
raise TypeError, "hlinvoke is meant to be rtyped and not called direclty"
Modified: pypy/dist/pypy/rpython/extfunc.py
==============================================================================
--- pypy/dist/pypy/rpython/extfunc.py (original)
+++ pypy/dist/pypy/rpython/extfunc.py Tue Dec 4 17:24:36 2007
@@ -182,12 +182,12 @@
# If we have both an {ll,oo}impl and a {ll,oo}fakeimpl,
# we need a wrapper that selects the proper one and calls it
from pypy.rlib.objectmodel import running_on_llinterp
- from pypy.rlib.objectmodel import debug_llinterpcall
+ from pypy.rlib.debug import llinterpcall
from pypy.tool.sourcetools import func_with_new_name
original_impl = impl
def ll_wrapper(*args):
if running_on_llinterp:
- return debug_llinterpcall(s_result, fakeimpl, *args)
+ return llinterpcall(s_result, fakeimpl, *args)
else:
return original_impl(*args)
impl = func_with_new_name(ll_wrapper, name + '_wrapper')
Modified: pypy/dist/pypy/rpython/lltypesystem/llarena.py
==============================================================================
--- pypy/dist/pypy/rpython/lltypesystem/llarena.py (original)
+++ pypy/dist/pypy/rpython/lltypesystem/llarena.py Tue Dec 4 17:24:36 2007
@@ -276,7 +276,7 @@
import os, sys
from pypy.rpython.lltypesystem import rffi, lltype
from pypy.rpython.extfunc import register_external
-from pypy.rlib.objectmodel import debug_assert, CDefinedIntSymbolic
+from pypy.rlib.objectmodel import CDefinedIntSymbolic
if os.name == 'posix':
READ_MAX = (sys.maxint//4) + 1 # upper bound on reads to avoid surprises
Modified: pypy/dist/pypy/rpython/lltypesystem/rlist.py
==============================================================================
--- pypy/dist/pypy/rpython/lltypesystem/rlist.py (original)
+++ pypy/dist/pypy/rpython/lltypesystem/rlist.py Tue Dec 4 17:24:36 2007
@@ -16,8 +16,11 @@
Bool, nullptr, typeMethod
from pypy.rpython.lltypesystem import rstr
from pypy.rpython import robject
-from pypy.rlib.objectmodel import debug_assert
+from pypy.rlib.debug import ll_assert
from pypy.rlib.rarithmetic import ovfcheck
+from pypy.rpython.lltypesystem.llmemory import cast_ptr_to_adr, raw_memclear,\
+ raw_memcopy, sizeof, itemoffsetof
+from pypy.rpython.lltypesystem import rffi
# ____________________________________________________________
#
@@ -284,7 +287,7 @@
# system malloc().
# The growth pattern is: 0, 4, 8, 16, 25, 35, 46, 58, 72, 88, ...
if newsize <= 0:
- debug_assert(newsize == 0, "negative list length")
+ ll_assert(newsize == 0, "negative list length")
new_allocated = 0
else:
if newsize < 9:
@@ -305,11 +308,11 @@
else:
p = new_allocated - 1
while p >= 0:
- newitems[p] = items[p]
- ITEM = typeOf(l).TO.ITEM
- if isinstance(ITEM, Ptr):
- items[p] = nullptr(ITEM.TO)
- p -= 1
+ newitems[p] = items[p]
+ ITEM = typeOf(l).TO.ITEM
+ if isinstance(ITEM, Ptr):
+ items[p] = nullptr(ITEM.TO)
+ p -= 1
l.length = newsize
l.items = newitems
_ll_list_resize_really._annenforceargs_ = (None, int)
@@ -356,7 +359,7 @@
# Accessor methods
def ll_newlist(LIST, length):
- debug_assert(length >= 0, "negative list length")
+ ll_assert(length >= 0, "negative list length")
l = malloc(LIST)
l.length = length
l.items = malloc(LIST.items.TO, length)
@@ -391,17 +394,17 @@
return l.items
def ll_getitem_fast(l, index):
- debug_assert(index < l.length, "getitem out of bounds")
+ ll_assert(index < l.length, "getitem out of bounds")
return l.ll_items()[index]
def ll_setitem_fast(l, index, item):
- debug_assert(index < l.length, "setitem out of bounds")
+ ll_assert(index < l.length, "setitem out of bounds")
l.ll_items()[index] = item
# fixed size versions
def ll_fixed_newlist(LIST, length):
- debug_assert(length >= 0, "negative fixed list length")
+ ll_assert(length >= 0, "negative fixed list length")
l = malloc(LIST, length)
return l
ll_fixed_newlist = typeMethod(ll_fixed_newlist)
@@ -418,11 +421,11 @@
return l
def ll_fixed_getitem_fast(l, index):
- debug_assert(index < len(l), "fixed getitem out of bounds")
+ ll_assert(index < len(l), "fixed getitem out of bounds")
return l[index]
def ll_fixed_setitem_fast(l, index, item):
- debug_assert(index < len(l), "fixed setitem out of bounds")
+ ll_assert(index < len(l), "fixed setitem out of bounds")
l[index] = item
def newlist(llops, r_list, items_v):
Modified: pypy/dist/pypy/rpython/lltypesystem/rstr.py
==============================================================================
--- pypy/dist/pypy/rpython/lltypesystem/rstr.py (original)
+++ pypy/dist/pypy/rpython/lltypesystem/rstr.py Tue Dec 4 17:24:36 2007
@@ -2,7 +2,7 @@
from pypy.tool.pairtype import pairtype
from pypy.rpython.error import TyperError
from pypy.rlib.objectmodel import malloc_zero_filled, we_are_translated
-from pypy.rlib.objectmodel import debug_assert
+from pypy.rlib.debug import ll_assert
from pypy.rpython.robject import PyObjRepr, pyobj_repr
from pypy.rlib.rarithmetic import _hash_string
from pypy.rpython.rmodel import inputconst, IntegerRepr
@@ -30,7 +30,7 @@
def new_malloc(TP):
def mallocstr(length):
- debug_assert(length >= 0, "negative string length")
+ ll_assert(length >= 0, "negative string length")
r = malloc(TP, length)
if not we_are_translated() or not malloc_zero_filled:
r.hash = 0
@@ -228,8 +228,8 @@
def ll_stritem_nonneg(s, i):
chars = s.chars
- debug_assert(i>=0, "negative str getitem index")
- debug_assert(i<len(chars), "str getitem index out of bound")
+ ll_assert(i>=0, "negative str getitem index")
+ ll_assert(i<len(chars), "str getitem index out of bound")
return chars[i]
ll_stritem_nonneg._annenforceargs_ = [None, int]
Modified: pypy/dist/pypy/rpython/memory/gc/base.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gc/base.py (original)
+++ pypy/dist/pypy/rpython/memory/gc/base.py Tue Dec 4 17:24:36 2007
@@ -1,5 +1,5 @@
from pypy.rpython.lltypesystem import lltype, llmemory
-from pypy.rlib.objectmodel import debug_assert
+from pypy.rlib.debug import ll_assert
class GCBase(object):
_alloc_flavor_ = "raw"
@@ -156,7 +156,7 @@
# double-check that the answer we got is correct
lst = self.wr_to_objects_with_id
target = llmemory.weakref_deref(llmemory.GCREF, lst[i])
- debug_assert(target == ptr, "bogus object_id_dict")
+ ll_assert(target == ptr, "bogus object_id_dict")
return i + 1 # found via the dict
# Walk the tail of the list, where entries are not also in the dict
lst = self.wr_to_objects_with_id
@@ -167,7 +167,7 @@
if not target:
freeentry = i
else:
- debug_assert(self.get_type_id(llmemory.cast_ptr_to_adr(target))
+ ll_assert(self.get_type_id(llmemory.cast_ptr_to_adr(target))
> 0, "bogus weakref in compute_id()")
# record this entry in the dict
adr = llmemory.cast_ptr_to_adr(target)
@@ -179,7 +179,7 @@
# not found
wr = llmemory.weakref_create(ptr)
if freeentry < 0:
- debug_assert(end == len(lst), "unexpected lst growth in gc_id")
+ ll_assert(end == len(lst), "unexpected lst growth in gc_id")
i = end
lst.append(wr)
else:
Modified: pypy/dist/pypy/rpython/memory/gc/generation.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gc/generation.py (original)
+++ pypy/dist/pypy/rpython/memory/gc/generation.py Tue Dec 4 17:24:36 2007
@@ -3,7 +3,8 @@
GCFLAG_IMMORTAL
from pypy.rpython.lltypesystem.llmemory import NULL, raw_malloc_usage
from pypy.rpython.lltypesystem import lltype, llmemory, llarena
-from pypy.rlib.objectmodel import free_non_gc_object, debug_assert
+from pypy.rlib.objectmodel import free_non_gc_object
+from pypy.rlib.debug import ll_assert
from pypy.rpython.lltypesystem.lloperation import llop
# The following flag is never set on young objects, i.e. the ones living
@@ -60,7 +61,7 @@
contains_weakptr=False):
if (has_finalizer or not can_collect or
raw_malloc_usage(size) >= self.nursery_size // 2):
- debug_assert(not contains_weakptr, "wrong case for mallocing weakref")
+ ll_assert(not contains_weakptr, "wrong case for mallocing weakref")
# "non-simple" case or object too big: don't use the nursery
return SemiSpaceGC.malloc_fixedsize(self, typeid, size,
can_collect, has_finalizer,
@@ -174,7 +175,7 @@
if self.nursery_size > self.top_of_space - self.free:
# the semispace is running out, do a full collect
self.obtain_free_space(self.nursery_size)
- debug_assert(self.nursery_size <= self.top_of_space - self.free,
+ ll_assert(self.nursery_size <= self.top_of_space - self.free,
"obtain_free_space failed to do its job")
if self.nursery:
if DEBUG_PRINT:
@@ -303,7 +304,7 @@
self.remember_young_pointer(addr_struct, newvalue)
def remember_young_pointer(self, addr_struct, addr):
- debug_assert(not self.is_in_nursery(addr_struct),
+ ll_assert(not self.is_in_nursery(addr_struct),
"nursery object with GCFLAG_NO_YOUNG_PTRS")
if self.is_in_nursery(addr):
oldhdr = self.header(addr_struct)
Modified: pypy/dist/pypy/rpython/memory/gc/marksweep.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gc/marksweep.py (original)
+++ pypy/dist/pypy/rpython/memory/gc/marksweep.py Tue Dec 4 17:24:36 2007
@@ -4,7 +4,7 @@
from pypy.rpython.memory.support import get_address_linked_list
from pypy.rpython.memory.gcheader import GCHeaderBuilder
from pypy.rpython.lltypesystem import lltype, llmemory
-from pypy.rlib.objectmodel import free_non_gc_object, debug_assert
+from pypy.rlib.objectmodel import free_non_gc_object
from pypy.rpython.lltypesystem.lloperation import llop
from pypy.rlib.rarithmetic import ovfcheck
from pypy.rpython.memory.gc.base import GCBase
@@ -102,6 +102,7 @@
#llop.debug_print(lltype.Void, 'malloc typeid', typeid,
# '->', llmemory.cast_adr_to_int(result))
return llmemory.cast_adr_to_ptr(result, llmemory.GCREF)
+ malloc_fixedsize.dont_inline = True
def malloc_fixedsize_clear(self, typeid, size, can_collect,
has_finalizer=False, contains_weakptr=False):
@@ -135,6 +136,7 @@
#llop.debug_print(lltype.Void, 'malloc typeid', typeid,
# '->', llmemory.cast_adr_to_int(result))
return llmemory.cast_adr_to_ptr(result, llmemory.GCREF)
+ malloc_fixedsize_clear.dont_inline = True
def malloc_varsize(self, typeid, length, size, itemsize, offset_to_length,
can_collect, has_finalizer=False):
@@ -169,6 +171,7 @@
# 'typeid', typeid,
# '->', llmemory.cast_adr_to_int(result))
return llmemory.cast_adr_to_ptr(result, llmemory.GCREF)
+ malloc_varsize.dont_inline = True
def malloc_varsize_clear(self, typeid, length, size, itemsize,
offset_to_length, can_collect,
@@ -205,6 +208,7 @@
# 'typeid', typeid,
# '->', llmemory.cast_adr_to_int(result))
return llmemory.cast_adr_to_ptr(result, llmemory.GCREF)
+ malloc_varsize_clear.dont_inline = True
def collect(self):
# 1. mark from the roots, and also the objects that objects-with-del
Modified: pypy/dist/pypy/rpython/memory/gc/semispace.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gc/semispace.py (original)
+++ pypy/dist/pypy/rpython/memory/gc/semispace.py Tue Dec 4 17:24:36 2007
@@ -4,7 +4,8 @@
from pypy.rpython.memory.support import get_address_linked_list
from pypy.rpython.memory.gcheader import GCHeaderBuilder
from pypy.rpython.lltypesystem import lltype, llmemory, llarena
-from pypy.rlib.objectmodel import free_non_gc_object, debug_assert
+from pypy.rlib.objectmodel import free_non_gc_object
+from pypy.rlib.debug import ll_assert
from pypy.rpython.lltypesystem.lloperation import llop
from pypy.rlib.rarithmetic import ovfcheck
from pypy.rpython.memory.gc.base import MovingGCBase
@@ -37,10 +38,10 @@
def setup(self):
self.tospace = llarena.arena_malloc(self.space_size, True)
- debug_assert(bool(self.tospace), "couldn't allocate tospace")
+ ll_assert(bool(self.tospace), "couldn't allocate tospace")
self.top_of_space = self.tospace + self.space_size
self.fromspace = llarena.arena_malloc(self.space_size, True)
- debug_assert(bool(self.fromspace), "couldn't allocate fromspace")
+ ll_assert(bool(self.fromspace), "couldn't allocate fromspace")
self.free = self.tospace
self.objects_with_finalizers = self.AddressLinkedList()
self.run_finalizers = self.AddressLinkedList()
@@ -134,7 +135,7 @@
while self.space_size < proposed_size:
if not self.double_space_size():
return False
- debug_assert(needed <= self.top_of_space - self.free,
+ ll_assert(needed <= self.top_of_space - self.free,
"double_space_size() failed to do its job")
return True
@@ -166,7 +167,7 @@
# because doing arena_free(self.fromspace) would crash
self.fromspace = self.tospace + self.space_size
self.top_of_space = self.fromspace
- debug_assert(self.free <= self.top_of_space,
+ ll_assert(self.free <= self.top_of_space,
"unexpected growth of GC space usage during collect")
return False # out of memory
Modified: pypy/dist/pypy/rpython/memory/gctransform/framework.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gctransform/framework.py (original)
+++ pypy/dist/pypy/rpython/memory/gctransform/framework.py Tue Dec 4 17:24:36 2007
@@ -7,7 +7,7 @@
from pypy.rpython.memory.gc import marksweep
from pypy.rpython.memory.gcheader import GCHeaderBuilder
from pypy.rlib.rarithmetic import ovfcheck
-from pypy.rlib.objectmodel import debug_assert
+from pypy.rlib.debug import ll_assert
from pypy.translator.backendopt import graphanalyze
from pypy.translator.backendopt.support import var_needsgc
from pypy.annotation import model as annmodel
@@ -129,39 +129,39 @@
TYPE_INFO_TABLE = lltype.Array(TYPE_INFO)
def q_is_varsize(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].isvarsize
def q_finalizer(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].finalizer
def q_offsets_to_gc_pointers(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].ofstoptrs
def q_fixed_size(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].fixedsize
def q_varsize_item_sizes(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].varitemsize
def q_varsize_offset_to_variable_part(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].ofstovar
def q_varsize_offset_to_length(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].ofstolength
def q_varsize_offsets_to_gcpointers_in_var_part(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].varofstoptrs
def q_weakpointer_offset(typeid):
- debug_assert(typeid > 0, "invalid type_id")
+ ll_assert(typeid > 0, "invalid type_id")
return gcdata.type_info_table[typeid].weakptrofs
self.layoutbuilder = TransformerLayoutBuilder(self)
@@ -389,7 +389,7 @@
_alloc_flavor_ = 'raw'
def setup_root_stack():
stackbase = llmemory.raw_malloc(rootstacksize)
- debug_assert(bool(stackbase), "could not allocate root stack")
+ ll_assert(bool(stackbase), "could not allocate root stack")
llmemory.raw_memclear(stackbase, rootstacksize)
gcdata.root_stack_top = stackbase
gcdata.root_stack_base = stackbase
Modified: pypy/dist/pypy/rpython/numpy/rarray.py
==============================================================================
--- pypy/dist/pypy/rpython/numpy/rarray.py (original)
+++ pypy/dist/pypy/rpython/numpy/rarray.py Tue Dec 4 17:24:36 2007
@@ -5,7 +5,7 @@
from pypy.tool.pairtype import pairtype, pair
from pypy.rlib.unroll import unrolling_iterable
from pypy.annotation import listdef
-from pypy.rlib.objectmodel import debug_assert
+from pypy.rlib.debug import ll_assert
from pypy.rpython.annlowlevel import ADTInterface
from pypy.rpython.memory.lltypelayout import sizeof
from pypy.rpython.rmodel import Repr, FloatRepr, inputconst
@@ -136,8 +136,8 @@
# Suffix of ao.shape must match target_ao.shape
# (suffix starts at the first non-1 entry in ao.shape.)
# ao.shape must be no longer than target_ao.shape.
- debug_assert(ao.ndim <= ndim, "ao.ndim <= ndim")
- debug_assert(target_ao.ndim == ndim, "target_ao.ndim == ndim")
+ ll_assert(ao.ndim <= ndim, "ao.ndim <= ndim")
+ ll_assert(target_ao.ndim == ndim, "target_ao.ndim == ndim")
# XX check suffix condition here... ?
broadcast = ao.ndim < ndim
i = 0
@@ -147,7 +147,7 @@
i += 1
if broadcast:
return iter_broadcast_to_shape(ITER, ao, target_ao)
- debug_assert(ao.ndim == ndim, "ao.ndim == ndim")
+ ll_assert(ao.ndim == ndim, "ao.ndim == ndim")
it = malloc(ITER)
it.nd_m1 = ndim - 1
it.size = ll_mul_list(ao.shape, ndim)
@@ -165,7 +165,7 @@
def ll_iter_broadcast_to_shape(ITER, ao, target_ao):
"iterate over <ao> but broadcast to the shape of <target_ao>"
- debug_assert(target_ao.ndim == ndim, "target_ao.ndim == ndim")
+ ll_assert(target_ao.ndim == ndim, "target_ao.ndim == ndim")
delta = j = ndim - ao.ndim
shape = target_ao.shape
for i in range(ao.ndim):
@@ -198,7 +198,7 @@
def ll_array_set(ITEM, it0, it1):
if it0.size == 0:
return # empty LHS..
- debug_assert(it0.size == it1.size, "it0.size == it1.size")
+ ll_assert(it0.size == it1.size, "it0.size == it1.size")
while it0.index < it0.size:
it0.dataptr[0] = cast_primitive(ITEM, it1.dataptr[0])
it0.ll_next()
@@ -365,8 +365,8 @@
#______________________________________________________________________________
def ll_array_binop(it0, it1, it2, binop):
- debug_assert(it0.size == it1.size, "it0.size == it1.size")
- debug_assert(it1.size == it2.size, "it0.size == it1.size")
+ ll_assert(it0.size == it1.size, "it0.size == it1.size")
+ ll_assert(it1.size == it2.size, "it0.size == it1.size")
while it0.index < it0.size:
# We don't need a cast here, because it0.dataptr[0] is always
# big enough to contain the result.
@@ -423,7 +423,7 @@
#______________________________________________________________________________
def ll_array_inplace_binop(ITEM, it0, it1, binop):
- debug_assert(it0.size == it1.size, "it0.size == it1.size")
+ ll_assert(it0.size == it1.size, "it0.size == it1.size")
while it0.index < it0.size:
it0.dataptr[0] = cast_primitive(ITEM, binop(it0.dataptr[0], it1.dataptr[0]))
it0.ll_next()
@@ -538,7 +538,7 @@
array.strides[tgt_i] = ao.strides[src_i]
tgt_i += 1
src_i += 1
- debug_assert(tgt_i == ndim, "tgt_i == ndim")
+ ll_assert(tgt_i == ndim, "tgt_i == ndim")
array.dataptr = dataptr
array.data = ao.data # keep a ref
return array
Modified: pypy/dist/pypy/rpython/rlist.py
==============================================================================
--- pypy/dist/pypy/rpython/rlist.py (original)
+++ pypy/dist/pypy/rpython/rlist.py Tue Dec 4 17:24:36 2007
@@ -8,7 +8,8 @@
from pypy.rpython.lltypesystem.lltype import typeOf, Ptr, Void, Signed, Bool
from pypy.rpython.lltypesystem.lltype import nullptr, Char, UniChar
from pypy.rpython import robject
-from pypy.rlib.objectmodel import malloc_zero_filled, debug_assert
+from pypy.rlib.objectmodel import malloc_zero_filled
+from pypy.rlib.debug import ll_assert
from pypy.rlib.rarithmetic import ovfcheck
from pypy.rpython.annlowlevel import ADTInterface
@@ -582,8 +583,8 @@
def ll_insert_nonneg(l, index, newitem):
length = l.ll_length()
- debug_assert(0 <= index, "negative list insertion index")
- debug_assert(index <= length, "list insertion index out of bound")
+ ll_assert(0 <= index, "negative list insertion index")
+ ll_assert(index <= length, "list insertion index out of bound")
l._ll_resize_ge(length+1) # see "a note about overflows" above
dst = length
while dst > index:
@@ -594,12 +595,12 @@
ll_insert_nonneg.oopspec = 'list.insert(l, index, newitem)'
def ll_pop_nonneg(func, l, index):
- debug_assert(index >= 0, "unexpectedly negative list pop index")
+ ll_assert(index >= 0, "unexpectedly negative list pop index")
if func is dum_checkidx:
if index >= l.ll_length():
raise IndexError
else:
- debug_assert(index < l.ll_length(), "list pop index out of bound")
+ ll_assert(index < l.ll_length(), "list pop index out of bound")
res = l.ll_getitem_fast(index)
ll_delitem_nonneg(dum_nocheck, l, index)
return res
@@ -609,7 +610,7 @@
length = l.ll_length()
if func is dum_checkidx and (length == 0):
raise IndexError
- debug_assert(length > 0, "pop from empty list")
+ ll_assert(length > 0, "pop from empty list")
index = length - 1
newlength = index
res = l.ll_getitem_fast(index)
@@ -624,7 +625,7 @@
length = l.ll_length()
if func is dum_checkidx and (length == 0):
raise IndexError
- debug_assert(length > 0, "pop(0) from empty list")
+ ll_assert(length > 0, "pop(0) from empty list")
newlength = length - 1
res = l.ll_getitem_fast(0)
j = 0
@@ -648,8 +649,8 @@
if index < 0 or index >= length:
raise IndexError
else:
- debug_assert(index >= 0, "negative list pop index out of bound")
- debug_assert(index < length, "list pop index out of bound")
+ ll_assert(index >= 0, "negative list pop index out of bound")
+ ll_assert(index < length, "list pop index out of bound")
res = l.ll_getitem_fast(index)
ll_delitem_nonneg(dum_nocheck, l, index)
return res
@@ -668,12 +669,12 @@
ll_reverse.oopspec = 'list.reverse(l)'
def ll_getitem_nonneg(func, l, index):
- debug_assert(index >= 0, "unexpectedly negative list getitem index")
+ ll_assert(index >= 0, "unexpectedly negative list getitem index")
if func is dum_checkidx:
if index >= l.ll_length():
raise IndexError
else:
- debug_assert(index < l.ll_length(), "list getitem index out of bound")
+ ll_assert(index < l.ll_length(), "list getitem index out of bound")
return l.ll_getitem_fast(index)
ll_getitem_nonneg.oopspec = 'list.getitem(l, index)'
ll_getitem_nonneg.oopargcheck = lambda l, index: (bool(l) and
@@ -687,20 +688,20 @@
if index < 0 or index >= length:
raise IndexError
else:
- debug_assert(index >= 0, "negative list getitem index out of bound")
- debug_assert(index < length, "list getitem index out of bound")
+ ll_assert(index >= 0, "negative list getitem index out of bound")
+ ll_assert(index < length, "list getitem index out of bound")
return l.ll_getitem_fast(index)
ll_getitem.oopspec = 'list.getitem(l, index)'
ll_getitem.oopargcheck = lambda l, index: (bool(l) and -l.ll_length() <=
index < l.ll_length())
def ll_setitem_nonneg(func, l, index, newitem):
- debug_assert(index >= 0, "unexpectedly negative list setitem index")
+ ll_assert(index >= 0, "unexpectedly negative list setitem index")
if func is dum_checkidx:
if index >= l.ll_length():
raise IndexError
else:
- debug_assert(index < l.ll_length(), "list setitem index out of bound")
+ ll_assert(index < l.ll_length(), "list setitem index out of bound")
l.ll_setitem_fast(index, newitem)
ll_setitem_nonneg.oopspec = 'list.setitem(l, index, newitem)'
@@ -712,19 +713,19 @@
if index < 0 or index >= length:
raise IndexError
else:
- debug_assert(index >= 0, "negative list setitem index out of bound")
- debug_assert(index < length, "list setitem index out of bound")
+ ll_assert(index >= 0, "negative list setitem index out of bound")
+ ll_assert(index < length, "list setitem index out of bound")
l.ll_setitem_fast(index, newitem)
ll_setitem.oopspec = 'list.setitem(l, index, newitem)'
def ll_delitem_nonneg(func, l, index):
- debug_assert(index >= 0, "unexpectedly negative list delitem index")
+ ll_assert(index >= 0, "unexpectedly negative list delitem index")
length = l.ll_length()
if func is dum_checkidx:
if index >= length:
raise IndexError
else:
- debug_assert(index < length, "list delitem index out of bound")
+ ll_assert(index < length, "list delitem index out of bound")
newlength = length - 1
j = index
j1 = j+1
@@ -747,8 +748,8 @@
if i < 0 or i >= length:
raise IndexError
else:
- debug_assert(i >= 0, "negative list delitem index out of bound")
- debug_assert(i < length, "list delitem index out of bound")
+ ll_assert(i >= 0, "negative list delitem index out of bound")
+ ll_assert(i < length, "list delitem index out of bound")
ll_delitem_nonneg(dum_nocheck, l, i)
ll_delitem.oopspec = 'list.delitem(l, i)'
@@ -775,7 +776,7 @@
len1 = lst.ll_length()
len2 = getstrlen(s)
count2 = len2 - start
- debug_assert(start >= 0, "unexpectedly negative str slice start")
+ ll_assert(start >= 0, "unexpectedly negative str slice start")
assert count2 >= 0, "str slice start larger than str length"
try:
newlength = ovfcheck(len1 + count2)
@@ -797,8 +798,8 @@
stop = slice.stop
len1 = lst.ll_length()
len2 = getstrlen(s)
- debug_assert(start >= 0, "unexpectedly negative str slice start")
- debug_assert(start <= len2, "str slice start larger than str length")
+ ll_assert(start >= 0, "unexpectedly negative str slice start")
+ ll_assert(start <= len2, "str slice start larger than str length")
if stop > len2:
stop = len2
count2 = stop - start
@@ -855,8 +856,8 @@
def ll_listslice_startonly(RESLIST, l1, start):
len1 = l1.ll_length()
- debug_assert(start >= 0, "unexpectedly negative list slice start")
- debug_assert(start <= len1, "list slice start larger than list length")
+ ll_assert(start >= 0, "unexpectedly negative list slice start")
+ ll_assert(start <= len1, "list slice start larger than list length")
newlength = len1 - start
l = RESLIST.ll_newlist(newlength)
j = 0
@@ -871,9 +872,9 @@
start = slice.start
stop = slice.stop
length = l1.ll_length()
- debug_assert(start >= 0, "unexpectedly negative list slice start")
- debug_assert(start <= length, "list slice start larger than list length")
- debug_assert(stop >= start, "list slice stop smaller than start")
+ ll_assert(start >= 0, "unexpectedly negative list slice start")
+ ll_assert(start <= length, "list slice start larger than list length")
+ ll_assert(stop >= start, "list slice stop smaller than start")
if stop > length:
stop = length
newlength = stop - start
@@ -888,7 +889,7 @@
def ll_listslice_minusone(RESLIST, l1):
newlength = l1.ll_length() - 1
- debug_assert(newlength >= 0, "empty list is sliced with [:-1]")
+ ll_assert(newlength >= 0, "empty list is sliced with [:-1]")
l = RESLIST.ll_newlist(newlength)
j = 0
while j < newlength:
@@ -897,8 +898,8 @@
return l
def ll_listdelslice_startonly(l, start):
- debug_assert(start >= 0, "del l[start:] with unexpectedly negative start")
- debug_assert(start <= l.ll_length(), "del l[start:] with start > len(l)")
+ ll_assert(start >= 0, "del l[start:] with unexpectedly negative start")
+ ll_assert(start <= l.ll_length(), "del l[start:] with start > len(l)")
newlength = start
null = ll_null_item(l)
if null is not None:
@@ -912,9 +913,9 @@
start = slice.start
stop = slice.stop
length = l.ll_length()
- debug_assert(start >= 0, "del l[start:x] with unexpectedly negative start")
- debug_assert(start <= length, "del l[start:x] with start > len(l)")
- debug_assert(stop >= start, "del l[x:y] with x > y")
+ ll_assert(start >= 0, "del l[start:x] with unexpectedly negative start")
+ ll_assert(start <= length, "del l[start:x] with start > len(l)")
+ ll_assert(stop >= start, "del l[x:y] with x > y")
if stop > length:
stop = length
newlength = length - (stop-start)
@@ -935,9 +936,9 @@
def ll_listsetslice(l1, slice, l2):
count = l2.ll_length()
start = slice.start
- debug_assert(start >= 0, "l[start:x] = l with unexpectedly negative start")
- debug_assert(start <= l1.ll_length(), "l[start:x] = l with start > len(l)")
- debug_assert(count == slice.stop - start,
+ ll_assert(start >= 0, "l[start:x] = l with unexpectedly negative start")
+ ll_assert(start <= l1.ll_length(), "l[start:x] = l with start > len(l)")
+ ll_assert(count == slice.stop - start,
"setslice cannot resize lists in RPython")
# XXX but it should be easy enough to support, soon
j = start
Modified: pypy/dist/pypy/rpython/test/test_rbuiltin.py
==============================================================================
--- pypy/dist/pypy/rpython/test/test_rbuiltin.py (original)
+++ pypy/dist/pypy/rpython/test/test_rbuiltin.py Tue Dec 4 17:24:36 2007
@@ -1,7 +1,8 @@
from pypy.translator.translator import graphof
from pypy.rpython.test import test_llinterp
from pypy.rlib.objectmodel import instantiate, we_are_translated
-from pypy.rlib.objectmodel import running_on_llinterp, debug_llinterpcall
+from pypy.rlib.objectmodel import running_on_llinterp
+from pypy.rlib.debug import llinterpcall
from pypy.rpython.lltypesystem import lltype
from pypy.tool import udir
from pypy.rlib.rarithmetic import r_uint, intmask, r_longlong
@@ -422,7 +423,7 @@
return s
def fn(n):
if running_on_llinterp:
- return debug_llinterpcall(SPTR, foo, n).m
+ return llinterpcall(SPTR, foo, n).m
else:
return 321
res = self.interpret(fn, [7])
More information about the Pypy-commit
mailing list