Home - Summaries: (main) : (py3.11) : (py3.12) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

jit/backend/x86/test/test_rawmem.py::TestRawMem::()::test_scoped_alloc_buffer

self = <rpython.jit.backend.x86.test.test_rawmem.TestRawMem object at 0x0c69ff10>

    def test_scoped_alloc_buffer(self):
        def f():
            with rffi.scoped_alloc_buffer(42) as p:
                p.raw[0] = 'X'
                s = p.str(1)
            return ord(s[0])
    
>       res = self.interp_operations(f, [])

jit/metainterp/test/test_rawmem.py:105: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
jit/metainterp/test/support.py:273: in interp_operations
    result1 = _run_with_blackhole(self, args)
jit/metainterp/test/support.py:132: in _run_with_blackhole
    blackholeinterp.run()
jit/metainterp/blackhole.py:360: in run
    lle = get_llexception(self.cpu, e)
jit/metainterp/blackhole.py:354: in run
    self.dispatch_loop(self, self.jitcode.code, self.position)
jit/metainterp/blackhole.py:95: in dispatch_loop
    position = func(self, code, position)
jit/metainterp/blackhole.py:170: in handler
    result = unboundmethod(*args)
jit/metainterp/blackhole.py:1285: in bhimpl_inline_call_r_r
    None, args_r, None, jitcode.calldescr)
jit/backend/llsupport/llmodel.py:826: in bh_call_r
    return calldescr.call_stub_r(func, args_i, args_r, args_f)
<570-codegen /workspace/rpython/jit/backend/llsupport/descr.py:608>:4: in call_stub
    res = support.maybe_on_top_of_llinterp(rtyper, fnptr)(args_r[0])
jit/backend/llsupport/support.py:41: in on_top_of_llinterp
    return llinterp.eval_graph(funcobj.graph, real_args)
rtyper/llinterp.py:102: in eval_graph
    retval = llframe.eval()
rtyper/llinterp.py:300: in eval
    nextblock, args = self.eval_block(nextblock)
rtyper/llinterp.py:329: in eval_block
    rstackovf.check_stack_overflow()
rtyper/llinterp.py:324: in eval_block
    self.eval_operation(op)
rtyper/llinterp.py:427: in eval_operation
    retval = ophandler(*vals)
rtyper/llinterp.py:702: in op_direct_call
    return self.perform_call(f, FTYPE.ARGS, args)
rtyper/llinterp.py:698: in perform_call
    return frame.eval()
rtyper/llinterp.py:300: in eval
    nextblock, args = self.eval_block(nextblock)
rtyper/llinterp.py:329: in eval_block
    rstackovf.check_stack_overflow()
rtyper/llinterp.py:324: in eval_block
    self.eval_operation(op)
rtyper/llinterp.py:427: in eval_operation
    retval = ophandler(*vals)
rtyper/llinterp.py:702: in op_direct_call
    return self.perform_call(f, FTYPE.ARGS, args)
rtyper/llinterp.py:698: in perform_call
    return frame.eval()
rtyper/llinterp.py:300: in eval
    nextblock, args = self.eval_block(nextblock)
rtyper/llinterp.py:329: in eval_block
    rstackovf.check_stack_overflow()
rtyper/llinterp.py:324: in eval_block
    self.eval_operation(op)
rtyper/llinterp.py:427: in eval_operation
    retval = ophandler(*vals)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <rpython.rtyper.llinterp.LLFrame object at 0x0c95c850>, obj = 11

    def op_gc_get_stats(self, obj):
>       raise NotImplementedError("gc_get_stats")
E       NotImplementedError: gc_get_stats

rtyper/llinterp.py:764: NotImplementedError
---------- Captured stdout call ----------
f:
   0  new_with_vtable <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0c93ab30> -> %r0
   4  inline_call_ir_v <JitCode 'scoped_alloc_buffer.__init__'>, I[$42], R[%r0]
  11  -live- %r0
  14  inline_call_r_r <JitCode 'scoped_alloc_buffer.__enter__'>, R[%r0] -> %r1
  20  -live- %r0, %r1
  23  getfield_gc_i %r1, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw> -> %i0
  28  setarrayitem_raw_i %i0, $0, $'X', <rpython.jit.backend.llsupport.descr.ArrayDescr object at 0x0c93abb0>
  34  inline_call_ir_r <JitCode 'scoped_alloc_buffer.str'>, I[$1], R[%r1] -> %r1
  42  -live- %r0, %r1
  45  catch_exception L1
  48  inline_call_r_v <JitCode '__exit____star_3'>, R[%r0, $<* struct exceptions.Exception>, $<* struct exceptions.Exception>]
  55  -live- %r1
  58  inline_call_ir_i <JitCode 'll_stritem_nonneg__rpy_stringPtr_Signed'>, I[$0], R[%r1] -> %i0
  66  -live- %i0
  69  int_return %i0
  71  ---
  71  L1:
  71  last_exception -> %i0
  73  last_exc_value -> %r1
  75  inline_call_r_v <JitCode '__exit____star_3'>, R[%r0, %r1, %r1]
  82  -live- %r1
  85  raise %r1

ll_stritem_nonneg__rpy_stringPtr_Signed:
   0  strgetitem %r0, %i0 -> %i0
   4  int_return %i0

__exit____star_3:
   0  getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw> -> %i0
   5  getfield_gc_r %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_gc_buf> -> %r1
  10  getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_case_num> -> %i1
  15  residual_call_ir_v $<* fn keep_buffer_alive_until_here>, I[%i0, %i1], R[%r1], <CallDescr(iri) EF=2>
  24  void_return

scoped_alloc_buffer.str:
   0  getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw> -> %i0
   5  getfield_gc_r %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_gc_buf> -> %r1
  10  getfield_gc_i %r0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_case_num> -> %i1
  15  residual_call_ir_r $<* fn str_from_buffer>, I[%i0, %i1, $42, $1], R[%r1], <CallDescr(iriii) EF=5> -> %r0
  27  -live- %r0
  30  ref_return %r0

scoped_alloc_buffer.__enter__:
   0  residual_call_ir_r $<* fn alloc_buffer>, I[$42], R[], <CallDescr(i) EF=5> -> %r1
   8  -live- %r0, %r1
  11  getfield_gc_i_pure %r1, FieldDescr<tuple3.item0> -> %i0
  16  getfield_gc_r_pure %r1, FieldDescr<tuple3.item1> -> %r2
  21  getfield_gc_i_pure %r1, FieldDescr<tuple3.item2> -> %i1
  26  setfield_gc_i %r0, %i0, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_raw>
  31  setfield_gc_r %r0, %r2, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_gc_buf>
  36  setfield_gc_i %r0, %i1, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_case_num>
  41  ref_return %r0

scoped_alloc_buffer.__init__:
   0  setfield_gc_i %r0, $42, FieldDescr<rpython.rtyper.lltypesystem.rffi.scoped_alloc_buffer.inst_size>
   5  void_return

	bh: new_with_vtable [<rpython.jit.backend.x86.runner.CPU386 object at 0x0c912cf0>, <rpython.jit.backend.llsupport.descr.SizeDescr object at 0x0c93ab30>] -> * <rpython.rtyper.lltypesystem.ll2ctypes._llgcopaque object at 0x0c954e70>
	bh: inline_call_ir_v [<rpython.jit.backend.x86.runner.CPU386 object at 0x0c912cf0>, <JitCode 'scoped_alloc_buffer.__init__'>, [42], [<* <rpython.rtyper.lltypesystem.ll2ctypes._llgcopaque object at 0x0c954e70>>]] 
	bh: live [12] -> 14
	bh: inline_call_r_r [<rpython.jit.backend.x86.runner.CPU386 object at 0x0c912cf0>, <JitCode 'scoped_alloc_buffer.__enter__'>, [<* <rpython.rtyper.lltypesystem.ll2ctypes._llgcopaque object at 0x0c954e70>>]] -> NotImplementedError!
---------- Captured stderr call ----------
[rtyper] -=- specialized 81 blocks -=-
[rtyper] -=- specialized 4 more blocks -=-
[backendopt:removeassert] Removed 3 asserts
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 0 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[rtyper] -=- specialized 2 more blocks -=-
[rtyper] -=- specialized 7 more blocks -=-
[rtyper] specializing: 100 / 100 blocks   (100%)
[rtyper] -=- specialized 6 more blocks -=-
[rtyper] -=- specialized 17 more blocks -=-
[rtyper] -=- specialized 2 more blocks -=-
[jitcodewriter:info] making JitCodes...
[jitcodewriter:info] There are 6 JitCode instances.
[jitcodewriter:info] There are 8 -live- ops. Size of liveness is 16 bytes
 (somefailed=True in jit/backend/x86/test/test_rawmem.py)
builder: rpython-linux-x86-32 build #772*
test: jit/backend/x86/test/test_rawmem.py::TestRawMem::()::test_scoped_alloc_buffer