Home - Speed - Summaries: (main - py2.7) : (py3.11) : (py3.12) : Everything : RPython - Nightly builds - Waterfall - Builders - About

Console View


Categories: aarch64 benchmark-run linux32 linux64 macos-arm64 macos-x86_64 win64
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

aarch64 benchmark-run linux32 linux64 macos-arm64 macos-x86_64 win64
mattip
fix json encoding (issue 5547)
CF Bolz-Tereick
Merge pull request #5541 from youknowone/jit-getarrayitem-raw-r-guard-never-fires
jit: slice the kind in rewrite_op_getarrayitem so the raw_r guard can fire
CF Bolz-Tereick
gh-5539: fix exception table propagation after non-fallthrough blocks
CF Bolz-Tereick
Merge pull request #5535 from youknowone/unicode
count an empty needle in the code point domain
mattip
aarch64 is slow, make timeout-minutes larger
CF Bolz-Tereick
Merge pull request #5531 from philipplc/windows_remote_debug
Implementation Remote Debugger for Windows
Jeong, YunWon
jit: slice the kind in rewrite_op_getarrayitem so the raw_r guard can fire
getkind() returns one of 'void', 'int', 'float', 'ref', so

    kind = getkind(op.result.concretetype)
    if ARRAY._gckind != 'gc':
        assert ARRAY._gckind == 'raw'
        if kind == 'r':
            raise Exception("getarrayitem_raw_r not supported")

is never true, and a raw array of GC pointers is lowered to
getarrayitem_raw_r instead.  That opcode has no opimpl_ in pyjitpl.py and
no bhimpl_ in blackhole.py -- both define only the _i and _f spellings --
and resoperation.py declares the operation as 'GETARRAYITEM_RAW/2d/fi',
so it would surface in setup_insns() at getattr(MIFrame, 'opimpl_' + name),
away from the operation that produced it.

The two sibling guards do fire: rewrite_op_getfield and rewrite_op_setfield
also compare against 'r', but they assign kind = getkind(RESULT)[0].  This
function keeps the whole word and spells the opcode with kind[0] at both
SpaceOperation sites, so slice at the assignment rather than reword the
comparison.  Both assignments in the function are sliced; the virtualizable
branch has no bug, but leaving one of the two unsliced is the inconsistency
this came from.

Add two tests: one requiring the exception for an rffi.CArray(Ptr(GcStruct)),
and one pinning the kinds that must still get through -- 1- and 2-byte ints,
Signed, Float, and a pointer to a raw struct, which is an 'i' as well -- so
the guard cannot widen to them.

Assisted-by: Claude
CF Bolz-Tereick
Merge pull request #5538 from youknowone/jit-list-getitem-stale-caller
jit: repair the stale rlist.ll_getitem() call in the codewriter builtin table
mattip
adjust test for pypy host
Jeong, YunWon
jit: add a metainterp test for the getarrayitem_raw_r refusal
Reading a GC pointer out of a raw array reaches the codewriter through
interp_operations, so the guard can be exercised end to end.

Without the previous commit the codewriter emits

    getarrayitem_raw_r %i1, %i0, ArrayDescr(...) -> %r0

and the failure surfaces in BlackholeInterpreter.setup_insns() as

    AttributeError: type object 'BlackholeInterpreter' has no attribute
    'bhimpl_getarrayitem_raw_r'

which names an opcode rather than the operation that produced it.  With it,
rewrite_op_getarrayitem raises "getarrayitem_raw_r not supported" instead.

Assisted-by: Claude
Jeong, YunWon
jit: repair the stale rlist.ll_getitem() call in the codewriter builtin table
72270f2624 gave rlist.ll_getitem() a 'basegetitem' parameter --
ll_getitem(func, basegetitem, l, index) -- and updated rlist.py and
test_rlist.py, but not the codewriter wrapper, which still passes three
arguments.  The list is therefore bound to 'basegetitem' and the index is
dropped, so _ll_2_list_getitem cannot even be annotated.

The same commit replaced the standalone ll_getitem_foldable() with the
basegetitem specialization, so the alias

    _ll_2_list_getitem_foldable = _ll_2_list_getitem

no longer expresses foldability; 'list.getitem_foldable' resolved to the
mutable getter.  Make it a function that passes ll_getitem_foldable_nonneg.

Nothing reaches these two today: handle_builtin_call() routes every 'list.*'
oopspec to _handle_list_call(), and both do_fixed_list_getitem() and
do_resizable_list_getitem() exist, so setup_extra_builtin() is never asked
for this name.

Add tests for both wrappers; they monkeypatch rlist.ll_getitem with a
four-argument recorder and check what each hands it.

Assisted-by: Claude
CF Bolz-Tereick
Merge pull request #5540 from pypy/py3-fix-pytest-builtin-name
fix pytest assertion rewriting on python 2
CF Bolz-Tereick
Merge branch 'main' into py3.11
mattip
Merge branch 'main' into py3.11
Matti Picus
skip recursive test that stack overflows on top of pypy
mattip
Merge branch 'py3.11' into py3.12
Jeong YunWon
count an empty needle in the code point domain
descr_count passed the byte bounds from _unwrap_and_compute_idx_params
straight to rstring's search, which answers end - start + 1 for an empty
needle, so '\xe9\xe8\xe9\xe8\xe9'.count('') was 11 rather than 6. Answer
it from _codepoints_in_utf8 instead, with start_index > end_index giving
0 as rstring.py:827 does, and the whole-string case reading self._len()
so the call stays O(1) -- rutf8.codepoints_in_utf8 is a linear scan.

test_count_unicode in apptest_unicode.py now passes; test_unicode,
test_bytes, test_string and test_userstring stay green.

Assisted-by: Claude
mattip
rearrange tests to avoid gc cycle
CF Bolz-Tereick
fix pytest assertion rewriting on python 2
mattip
fix merge, tests were converted to apptests but then remerged
Matti Picus
skip slow test on windows