translator/c/test/test_boehm.py::TestUsingBoehm::()::test_weakref
self = <rpython.translator.c.test.test_boehm.TestUsingBoehm object at 0x0000000141c2c678>
def test_weakref(self):
class A:
pass
def fn(n):
keepalive = []
weakrefs = []
a = None
for i in range(n):
if i & 1 == 0:
a = A()
a.index = i
assert a is not None
weakrefs.append(weakref.ref(a))
if i % 7 == 6:
keepalive.append(a)
rgc.collect()
count_free = 0
for i in range(n):
a = weakrefs[i]()
if i % 7 == 6:
assert a is not None
if a is not None:
assert a.index == i & ~1
else:
count_free += 1
keepalive_until_here(keepalive)
return count_free
> c_fn = self.getcompiled(fn, [int])
translator/c/test/test_boehm.py:249:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
translator/c/test/test_boehm.py:40: in getcompiled
thread=self.use_threads, **extra_options)
translator/c/test/test_genc.py:124: in compile
t.compile_c()
translator/interactive.py:123: in compile_c
self.driver.compile_c()
translator/driver.py:108: in proc
return self.proceed(backend_goal)
translator/driver.py:568: in proceed
result = self._execute(goals, task_skip = self._maybe_skip())
translator/tool/taskengine.py:109: in _execute
self._event('planned', goal, taskcallable)
translator/driver.py:612: in _event
func.task_earlycheck(self)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <rpython.translator.driver.TranslationDriver object at 0x0000000141c2c720>
def possibly_check_for_boehm(self):
if self.config.translation.gc == "boehm":
from rpython.rtyper.tool.rffi_platform import configure_boehm
from rpython.translator.platform import CompilationError
try:
configure_boehm(self.translator.platform)
except CompilationError as e:
i = 'Boehm GC not installed. Try e.g. "translate.py --gc=minimark"'
> raise Exception(str(e) + '\n' + i)
E Exception: CompilationError(out="""
E /tmp/buildbot-arm64/usession-main-4516/platcheck_69.c:92:10: fatal error: 'gc/gc.h' file not found
E 92 | #include <gc/gc.h>
E | ^~~~~~~~~
E 1 error generated.
E """)
E Boehm GC not installed. Try e.g. "translate.py --gc=minimark"
translator/driver.py:403: Exception
---------- Captured stderr call ----------
[flowgraph] (rpython.translator.c.test.test_genc:66)entry_point
[translation:info] Annotating&simplifying...
[c5b89c9b9bb8900] {translation-task
starting annotate
[translation:info] with policy: rpython.annotator.policy.AnnotatorPolicy
[flowgraph] (rpython.translator.c.test.test_boehm:225)fn
[flowgraph] (rpython.flowspace.specialcase:76)rpython_print_item
[flowgraph] (rpython.translator.c.test.test_genc:39)llrepr_out
[flowgraph] (rpython.flowspace.specialcase:95)rpython_print_newline
[flowgraph] (rpython.flowspace.specialcase:85)rpython_print_end
[flowgraph] (rpython.rlib.rposix:500)write
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1427)scoped_nonmovingbuffer.__init__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1431)scoped_nonmovingbuffer.__enter__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:873)get_nonmovingbuffer_ll
[flowgraph] (rpython.rlib.objectmodel:315)we_are_translated_to_c
[flowgraph] (rpython.rtyper.lltypesystem.rstr:116)copy_string_to_raw
[flowgraph] (rpython.rtyper.lltypesystem.rstr:63)_get_raw_buf
[flowgraph] (rpython.rtyper.lltypesystem.rstr:57)_str_ofs
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:411)sizeof
[flowgraph] (rpython.rtyper.lltypesystem.rffi:278)write
[flowgraph] (rpython.rtyper.lltypesystem.rffi:1433)scoped_nonmovingbuffer.__exit__
[flowgraph] (rpython.rtyper.lltypesystem.rffi:937)free_nonmovingbuffer_ll
[flowgraph] (rpython.rtyper.lltypesystem.rffi:3)ccall_write
[flowgraph] (rpython.rlib.rgil:160)release
[flowgraph] (rpython.rlib.rposix:151)_errno_before
[flowgraph] (rpython.rlib.rthread:349)getraw
[flowgraph] (rpython.rlib.rthread:349)getraw
[flowgraph] (rpython.rlib.rposix:170)_errno_after
[flowgraph] (rpython.rlib.rthread:364)setraw
[flowgraph] (rpython.rlib.rthread:364)setraw
[flowgraph] (rpython.rlib.rgil:171)acquire
[flowgraph] (rpython.rlib.rthread:282)gc_thread_run
[flowgraph] (rpython.rlib.rposix:430)handle_posix_error
[flowgraph] (rpython.rlib.rarithmetic:139)widen
[flowgraph] (rpython.rlib.rposix:113)get_saved_errno
[flowgraph] (?:1)memo_offsetof_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__sizeof_none_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (?:1)memo__isfunctype_0
[flowgraph] (?:1)memo__should_widen_type_0
[c5b89c9be9dbc00] translation-task}
[translation:info] usession directory: /tmp/buildbot-arm64/usession-main-4547
[translation:info] already done: Annotating&simplifying
[translation:info] RTyping...
[c5b89c9be9f7780] {translation-task
starting rtype_lltype
[flowgraph] (rpython.rtyper.rclass:1170)ll_runtime_type_info
[flowgraph] (rpython.rtyper.rlist:688)ll_getitem_nonneg
[flowgraph] (rpython.rtyper.rlist:717)ll_getitem_fast
[flowgraph] (rpython.rtyper.lltypesystem.rlist:372)ll_getitem_fast
[flowgraph] (rpython.rtyper.lltypesystem.rlist:369)ll_items
[flowgraph] (rpython.rtyper.lltypesystem.rstr:1058)ll_int
[flowgraph] (rpython.rtyper.rstr:425)ll_str
[flowgraph] (?:1)memo_ll_constant_0
[flowgraph] (rpython.rtyper.lltypesystem.rlist:357)ll_newemptylist
[flowgraph] (rpython.rtyper.lltypesystem.rlist:351)_ll_new_empty_item_array
[flowgraph] (?:1)memo__ll_prebuilt_empty_array_0
[flowgraph] (rpython.rtyper.lltypesystem.rrange:70)ll_newrange
[flowgraph] (rpython.rtyper.lltypesystem.rrange:91)ll_rangeiter
[flowgraph] (rpython.rtyper.rrange:172)ll_rangenext_up
[flowgraph] (rpython.rtyper.rint:502)ll_int_py_mod_nonnegargs
[flowgraph] (rpython.rtyper.rlist:588)ll_append
[flowgraph] (rpython.rtyper.lltypesystem.rlist:365)ll_length
[flowgraph] (rpython.rtyper.lltypesystem.rlist:280)_ll_list_resize_ge
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (?:11)_ll_list_resize_hint_really_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (?:2)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:362)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:342)copy_item
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:411)sizeof
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (?:2)_ll_list_resize_hint_really_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:377)ll_setitem_fast
[flowgraph] (?:1)memo__contains_gcptr_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (?:1)memo__sizeof_none_0
[flowgraph] (rpython.rtyper.lltypesystem.rstr:1293)ll_striter
[flowgraph] (rpython.rtyper.lltypesystem.rstr:1306)ll_strnext
[flowgraph] (rpython.rtyper.rlist:588)ll_append
[flowgraph] (rpython.rtyper.lltypesystem.rlist:365)ll_length
[flowgraph] (rpython.rtyper.lltypesystem.rlist:280)_ll_list_resize_ge
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (?:11)_ll_list_resize_hint_really_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:351)_ll_new_empty_item_array
[flowgraph] (?:2)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:362)ll_arraycopy
[flowgraph] (rpython.rlib.rgc:342)copy_item
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (?:2)_ll_list_resize_hint_really_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rlist:198)_ll_list_resize_hint_really
[flowgraph] (rpython.rtyper.lltypesystem.rlist:377)ll_setitem_fast
[flowgraph] (rpython.rtyper.lltypesystem.rlist:369)ll_items
[flowgraph] (?:1)memo__ll_prebuilt_empty_array_0
[flowgraph] (?:1)memo__contains_gcptr_0
[flowgraph] (?:1)memo_itemoffsetof_0
[flowgraph] (rpython.rtyper.rint:149)ll_str
[flowgraph] (rpython.rtyper.lltypesystem.ll_str:13)ll_int2dec
[flowgraph] (rpython.rtyper.lltypesystem.ll_str:7)ll_unsigned
[flowgraph] (?:2)mallocstr
[flowgraph] (rpython.rtyper.lltypesystem.rstr:36)mallocstr
[flowgraph] (?:11)ll_join_chars_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rstr:821)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rstr:820)ll_join_chars
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (?:2)ll_join_chars_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rstr:820)ll_join_chars
[flowgraph] (?:11)ll_listdelslice_startonly_look_inside_iff
[flowgraph] (rpython.rtyper.rlist:912)<lambda>
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.rlist:912)ll_listdelslice_startonly
[flowgraph] (rpython.rtyper.rlist:539)ll_null_item
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (rpython.rtyper.lltypesystem.rlist:295)_ll_list_resize_le
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (?:2)ll_listdelslice_startonly_trampoline
[flowgraph] (rpython.rtyper.rlist:912)ll_listdelslice_startonly
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rlib.jit:1300)conditional_call
[flowgraph] (rpython.rtyper.lltypesystem.rstr:350)ll_strlen
[rtyper] specializing: 100 / 486 blocks (20%)
[flowgraph] (?:11)ll_join_strs_look_inside_iff
[flowgraph] (rpython.rtyper.lltypesystem.rstr:785)<lambda>
[flowgraph] (rpython.rlib.jit:294)loop_unrolling_heuristic
[flowgraph] (rpython.rlib.jit:269)isconstant
[flowgraph] (rpython.rtyper.lltypesystem.rstr:783)ll_join_strs
[flowgraph] (rpython.rtyper.lltypesystem.llmemory:1037)cast_any_ptr
[flowgraph] (rpython.rtyper.lltypesystem.rstr:78)copy_string_contents
[flowgraph] (rpython.rlib.jit:281)isvirtual
[flowgraph] (?:2)ll_join_strs_trampoline
[flowgraph] (rpython.rtyper.lltypesystem.rstr:783)ll_join_strs
[rtyper] specializing: 200 / 540 blocks (37%)
[rtyper] specializing: 300 / 540 blocks (55%)
[rtyper] specializing: 400 / 540 blocks (74%)
[flowgraph] (rpython.rtyper.rint:434)ll_uint_py_div
[flowgraph] (rpython.rtyper.rint:525)ll_uint_py_mod
[rtyper] specializing: 500 / 544 blocks (91%)
[rtyper] -=- specialized 544 blocks -=-
[flowgraph] (rpython.rtyper.rclass:1133)ll_issubclass
[flowgraph] (rpython.rtyper.rclass:1130)ll_type
[rtyper] -=- specialized 4 more blocks -=-
[c5b89c9cec69d00] translation-task}
[translation:info] usession directory: /tmp/buildbot-arm64/usession-main-4547
[translation:info] already done: Annotating&simplifying
[translation:info] already done: RTyping
[translation:info] lltype back-end optimisations...
[c5b89c9cec86400] {translation-task
starting backendopt_lltype
[backendopt:removecasts] removed 3 cast_pointers in fn
[backendopt:removecasts] removed 1 cast_pointers in _get_raw_buf__rpy_string
[backendopt:removecasts] removed 3 cast_pointers in handle_posix_error__write
[backendopt:removecasts] removed 4 cast_pointers in ll_int__rpy_stringPtr_Signed
[backendopt:removecasts] removed 1 cast_pointers in ll_rangenext_up__rangePtr_Signed
[backendopt:removecasts] removed 1 cast_pointers in ll_strnext__stringiterPtr
[backendopt:removecasts] removed 1 cast_pointers in ll_join_strs__v7352___simple_call__function_
[backendopt:removecasts] removed 1 cast_pointers in copy_string_contents__rpy_stringPtr_rpy_stringPtr_Signed_Signed_Signed
[backendopt:removecasts] removed 1 cast_pointers in ll_join_strs__v7355___simple_call__function_
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
[backendopt:inlining] 0.00 ll_getitem_nonneg__dum_nocheckConst_ll_getitem_fastConst_listPtr_Signed
[backendopt:inlining] 0.00 ll_getitem_fast__listPtr_Signed
[backendopt:inlining] 0.00 copy_string_contents__rpy_stringPtr_rpy_stringPtr_Signed_Signed_Signed
[backendopt:inlining] 0.00 write__Signed_arrayPtr_Signed_star_3
[backendopt:inlining] 0.00 _get_raw_buf__rpy_string
[backendopt:inlining] 0.00 memo__sizeof_none_0
[backendopt:inlining] 0.00 isconstant__v7323___simple_call__function_
[backendopt:inlining] 0.00 conditional_call__v7325___simple_call__function__star_3
[backendopt:inlining] 0.00 isconstant__v7330___simple_call__function_
[backendopt:inlining] 0.00 memo__ll_prebuilt_empty_array_0
[backendopt:inlining] 0.00 conditional_call__v7348___simple_call__function__star_3
[backendopt:inlining] 0.00 memo_ll_constant_0
[backendopt:inlining] 0.00 isconstant__v7344___simple_call__function_
[backendopt:inlining] 0.00 isvirtual__v7342___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7340___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7347___simple_call__function_
[backendopt:inlining] 0.00 scoped_nonmovingbuffer.__init__
[backendopt:inlining] 0.00 cast_any_ptr__Ptr_GcStruct_rpy_stringLlT_rpy_stringPtr
[backendopt:inlining] 0.00 memo__ll_prebuilt_empty_array_0
[backendopt:inlining] 0.00 isconstant__v7334___simple_call__function_
[backendopt:inlining] 0.00 isvirtual__v7336___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7351___simple_call__function_
[backendopt:inlining] 0.00 scoped_nonmovingbuffer.__enter__
[backendopt:inlining] 0.00 gc_thread_run
[backendopt:inlining] 0.00 widen__int
[backendopt:inlining] 0.00 copy_string_to_raw
[backendopt:inlining] 0.00 __exit____star_3
[backendopt:inlining] 0.00 isconstant__v7312___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7313___simple_call__function_
[backendopt:inlining] 0.00 conditional_call__v7314___simple_call__function__star_3
[backendopt:inlining] 0.00 get_nonmovingbuffer_ll
[backendopt:inlining] 0.00 isconstant__v7317___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7319___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7324___simple_call__function_
[backendopt:inlining] 0.00 isconstant__v7328___simple_call__function_
[backendopt:inlining] 0.00 isvirtual__v7353___simple_call__function_
[backendopt:inlining] 0.00 memo__sizeof_none_0
[backendopt:inlining] 2.00 ll_length__listPtr
[backendopt:inlining] 2.00 getraw
[backendopt:inlining] 2.00 ll_items__listPtr
[backendopt:inlining] 2.00 ll_items__listPtr
[backendopt:inlining] 2.00 ll_strlen__rpy_stringPtr
[backendopt:inlining] 2.00 setraw
[backendopt:inlining] 2.00 setraw
[backendopt:inlining] 2.00 ll_uint_py_div__Unsigned_Unsigned
[backendopt:inlining] 2.00 ll_uint_py_mod__Unsigned_Unsigned
[backendopt:inlining] 2.00 getraw
[backendopt:inlining] 2.00 ll_int_py_mod_nonnegargs__Signed_Signed
[backendopt:inlining] 2.00 ll_length__listPtr
[backendopt:inlining] 2.00 ll_unsigned__Signed
[backendopt:inlining] 4.00 copy_item__arrayPtr_arrayPtr_Signed_Signed
[backendopt:inlining] 4.00 copy_item__arrayPtr_arrayPtr_Signed_Signed
[backendopt:inlining] 5.00 release
[backendopt:inlining] 6.00 _str_ofs__rpy_string
[backendopt:inlining] 7.00 mallocstr__Signed
[backendopt:inlining] 4.00 get_saved_errno
[backendopt:inlining] 7.00 ll_listdelslice_startonly_look_inside_iff__listPtr_Signed
[backendopt:inlining] 7.00 ll_str__IntegerR_SignedConst_Signed
[backendopt:inlining] 7.00 llrepr_out__int
[backendopt:inlining] 7.00 rpython_print_newline
[backendopt:inlining] 7.50 mallocstr__Signed
[backendopt:inlining] 8.00 ll_newemptylist__GcStruct_listLlT
[backendopt:inlining] 8.00 ll_newrange__Ptr_GcStruct_rangeLlT_Signed_Signed
[backendopt:inlining] 9.00 _ll_list_resize_hint_really_look_inside_iff__listPtr_Signed_Bool
[backendopt:inlining] 9.00 _ll_list_resize_hint_really_look_inside_iff__listPtr_Signed_Bool
[backendopt:inlining] 9.00 ll_join_chars_look_inside_iff__Signed_arrayPtr_Ptr_GcStruct_rpy_stringLlT
[backendopt:inlining] 9.00 ll_join_strs_look_inside_iff__Signed_arrayPtr_Ptr_GcStruct_rpy_stringLlT
[backendopt:inlining] 4.00 ll_str__StringR_Ptr_GcStruct_rpy_strin_rpy_stringPtr
[backendopt:inlining] 7.00 acquire
[backendopt:inlining] 6.00 ll_getitem_fast__listPtr_Signed
[backendopt:inlining] 11.00 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining] 11.00 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining] 6.00 ll_setitem_fast__listPtr_Signed_Char
[backendopt:inlining] 6.00 ll_setitem_fast__listPtr_Signed_GCREFPtr
[backendopt:inlining] 12.00 ll_striter__rpy_stringPtr
[backendopt:inlining] 12.00 ll_rangeiter__Ptr_GcStruct_rangeLlT_rangePtr
[backendopt:inlining] 12.50 ll_rangenext_up__rangePtr_Signed
[backendopt:inlining] 13.00 free_nonmovingbuffer_ll
[backendopt:inlining] 9.00 ll_listdelslice_startonly__v7341___simple_call__function_
[backendopt:inlining] 9.00 ll_listdelslice_startonly__v7346___simple_call__function_
[backendopt:inlining] 15.50 ll_strnext__stringiterPtr
[backendopt:inlining] 4.00 loop_unrolling_heuristic__v7350___simple_call__function_
[backendopt:inlining] 17.00 ll_append__listPtr_Char
[backendopt:inlining] 17.00 ll_append__listPtr_GCREFPtr
[backendopt:inlining] 19.25 _errno_after__v7310___simple_call__function_
[backendopt:inlining] 26.16 ll_join_chars__v7335___simple_call__function_
[backendopt:inlining] 26.16 ll_join_chars__v7338___simple_call__function_
[backendopt:inlining] 27.50 ll_arraycopy__arrayPtr_arrayPtr_Signed_Signed_Signed
[backendopt:inlining] 31.75 handle_posix_error__write
[backendopt:inlining] 31.87 _errno_before__v7309___simple_call__function_
[backendopt:inlining] inlined 156 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] 2 simple mallocs removed in 'entry_point'
[backendopt:malloc] 4 simple mallocs removed in 'fn'
[backendopt:malloc] 1 simple mallocs removed in 'rpython_print_item'
[backendopt:malloc] 1 simple mallocs removed in 'rpython_print_end'
[backendopt:malloc] 3 simple mallocs removed in 'write'
[backendopt:malloc] 2 simple mallocs removed in 'scoped_nonmovingbuffer.__init__'
[backendopt:malloc] 7 simple mallocs removed in 'write__Signed_arrayPtr_Signed_star_3'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_ge__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v7314___simple_call__function__star_3'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_ge__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v7325___simple_call__function__star_3'
[backendopt:malloc] 1 simple mallocs removed in '_ll_list_resize_le__listPtr_Signed'
[backendopt:malloc] 1 simple mallocs removed in 'conditional_call__v7348___simple_call__function__star_3'
[backendopt:malloc] removed 26 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c5b89c9d470b380] translation-task}
[translation:info] usession directory: /tmp/buildbot-arm64/usession-main-4547
builder: rpython-macos-arm64 build #275+
test: translator/c/test/test_boehm.py::TestUsingBoehm::()::test_weakref