Пример #1
0
 def read_boxes(cpu, virtualizable):
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Пример #2
0
 def read_boxes(cpu, virtualizable):
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Пример #3
0
 def read_boxes(cpu, virtualizable):
     assert lltype.typeOf(virtualizable) == llmemory.GCREF
     virtualizable = cast_gcref_to_vtype(virtualizable)
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Пример #4
0
 def read_boxes(cpu, virtualizable):
     assert lltype.typeOf(virtualizable) == llmemory.GCREF
     virtualizable = cast_gcref_to_vtype(virtualizable)
     boxes = []
     for _, fieldname in unroll_static_fields:
         x = getattr(virtualizable, fieldname)
         boxes.append(wrap(cpu, x))
     for _, fieldname in unroll_array_fields:
         lst = getattr(virtualizable, fieldname)
         for i in range(getlength(lst)):
             boxes.append(wrap(cpu, getarrayitem(lst, i)))
     return boxes
Пример #5
0
def test_wrap():
    def _is(box1, box2):
        return (box1.__class__ == box2.__class__ and
                box1.value == box2.value)
    p = lltype.malloc(lltype.GcStruct('S'))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), BoxFloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), ConstFloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
Пример #6
0
def test_wrap():
    def _is(box1, box2):
        return (box1.__class__ == box2.__class__ and box1.value == box2.value)

    p = lltype.malloc(lltype.GcStruct('S'))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), BoxFloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), ConstFloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
Пример #7
0
def test_wrap():
    def _is(box1, box2):
        return (box1.__class__ == box2.__class__ and box1.value == box2.value)

    p = lltype.malloc(lltype.GcStruct('S'))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), boxfloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), constfloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
    if longlong.supports_longlong:
        import sys
        from pypy.rlib.rarithmetic import r_longlong, r_ulonglong
        value = r_longlong(-sys.maxint * 17)
        assert _is(wrap(None, value), BoxFloat(value))
        assert _is(wrap(None, value, in_const_box=True), ConstFloat(value))
        value_unsigned = r_ulonglong(-sys.maxint * 17)
        assert _is(wrap(None, value_unsigned), BoxFloat(value))
    sfval = r_singlefloat(42.5)
    ival = longlong.singlefloat2int(sfval)
    assert _is(wrap(None, sfval), BoxInt(ival))
    assert _is(wrap(None, sfval, in_const_box=True), ConstInt(ival))
Пример #8
0
def test_wrap():
    def _is(box1, box2):
        return box1.__class__ == box2.__class__ and box1.value == box2.value

    p = lltype.malloc(lltype.GcStruct("S"))
    po = lltype.cast_opaque_ptr(llmemory.GCREF, p)
    assert _is(wrap(None, 42), BoxInt(42))
    assert _is(wrap(None, 42.5), boxfloat(42.5))
    assert _is(wrap(None, p), BoxPtr(po))
    assert _is(wrap(None, 42, in_const_box=True), ConstInt(42))
    assert _is(wrap(None, 42.5, in_const_box=True), constfloat(42.5))
    assert _is(wrap(None, p, in_const_box=True), ConstPtr(po))
    if longlong.supports_longlong:
        import sys
        from pypy.rlib.rarithmetic import r_longlong, r_ulonglong

        value = r_longlong(-sys.maxint * 17)
        assert _is(wrap(None, value), BoxFloat(value))
        assert _is(wrap(None, value, in_const_box=True), ConstFloat(value))
        value_unsigned = r_ulonglong(-sys.maxint * 17)
        assert _is(wrap(None, value_unsigned), BoxFloat(value))
    sfval = r_singlefloat(42.5)
    ival = longlong.singlefloat2int(sfval)
    assert _is(wrap(None, sfval), BoxInt(ival))
    assert _is(wrap(None, sfval, in_const_box=True), ConstInt(ival))