コード例 #1
0
ファイル: assembler.py プロジェクト: neurobcn/plexnet
 def __init__(self, cpu, translate_support_code=False):
     self.cpu = cpu
     self.verbose = False
     self.rtyper = cpu.rtyper
     self.malloc_func_addr = 0
     self.malloc_array_func_addr = 0
     self.malloc_str_func_addr = 0
     self.malloc_unicode_func_addr = 0
     self.fail_boxes_int = NonmovableGrowableArraySigned()
     self.fail_boxes_ptr = NonmovableGrowableArrayGCREF()
     self.fail_boxes_float = NonmovableGrowableArrayFloat()
コード例 #2
0
ファイル: test_support.py プロジェクト: neurobcn/plexnet
def test_nonmovable_growable_array():
    ar = NonmovableGrowableArraySigned()
    adr = ar.get_addr_for_num(10)
    rffi.cast(rffi.CArrayPtr(lltype.Signed), adr)[0] = 42
    assert ar.getitem(10) == 42
    ar.setitem(42, 38)
    adr = ar.get_addr_for_num(42)
    assert rffi.cast(rffi.CArrayPtr(lltype.Signed), adr)[0] == 38
    adr = ar.get_addr_for_num(CHUNK_SIZE + 10)
    rffi.cast(rffi.CArrayPtr(lltype.Signed), adr)[0] = 42
    assert ar.getitem(CHUNK_SIZE + 10) == 42
    ar.setitem(CHUNK_SIZE + 42, 38)
    adr = ar.get_addr_for_num(CHUNK_SIZE + 42)
    assert rffi.cast(rffi.CArrayPtr(lltype.Signed), adr)[0] == 38
    adr = ar.get_addr_for_num(3 * CHUNK_SIZE + 10)
    rffi.cast(rffi.CArrayPtr(lltype.Signed), adr)[0] = 42
    assert ar.getitem(3 * CHUNK_SIZE + 10) == 42
    ar.setitem(3 * CHUNK_SIZE + 42, 38)
    adr = ar.get_addr_for_num(3 * CHUNK_SIZE + 42)
    assert rffi.cast(rffi.CArrayPtr(lltype.Signed), adr)[0] == 38
    ar.setitem(8 * CHUNK_SIZE, 13)
    assert ar.getitem(8 * CHUNK_SIZE) == 13