[issue46329] Split up the CALL_NO_KW and CALL_KW instructions.
Change by Mark Shannon : -- pull_requests: +29523 pull_request: https://github.com/python/cpython/pull/31373 ___ Python tracker <https://bugs.python.org/issue46329> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46724] Odd Bytecode Generation in 3.10
Mark Shannon added the comment: New changeset d4e4ef107a9fea257981d7701f023177b704a44f by Mark Shannon in branch '3.10': [3.10] bpo-46724: Use `JUMP_ABSOLUTE` for all backward jumps. (GH-31326) (GH-31354) https://github.com/python/cpython/commit/d4e4ef107a9fea257981d7701f023177b704a44f -- ___ Python tracker <https://bugs.python.org/issue46724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46760] test_dis should test the dis module, not everything else
Change by Mark Shannon : -- keywords: +patch pull_requests: +29519 stage: -> patch review pull_request: https://github.com/python/cpython/pull/31369 ___ Python tracker <https://bugs.python.org/issue46760> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46760] test_dis should test the dis module, not everything else
New submission from Mark Shannon : This is getting really annoying. It takes longer to fix all the heavily coupled and poorly written tests in test_dis than to make the real changes. Tiny changes in the calling sequence, or reordering CFGs, cause huge diffs in the test_dis module. No one ever checks these changes, they are just noise. I've put this under "enhancement" as there is no "wastes a huge amount of time" category. The test_dis should not: Contain offsets; they turn one line diffs into 100 line diffs Contain tests for the compiler; they belong elsewhere. Contain big strings; write proper tests not just regex matches. Tests for Instruction should should not depend on the compiler output; create the bytecode directly. This is not a new problem, but it does seem to be getting progressively worse. A lot of the irritation stems from https://github.com/python/cpython/commit/b39fd0c9b8dc6683924205265ff43cc597d1dfb9 although the tests from before that still hardcode offsets. -- components: Tests messages: 413291 nosy: Mark.Shannon priority: normal severity: normal status: open title: test_dis should test the dis module, not everything else type: enhancement ___ Python tracker <https://bugs.python.org/issue46760> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46724] Odd Bytecode Generation in 3.10
Change by Mark Shannon : -- pull_requests: +29503 pull_request: https://github.com/python/cpython/pull/31354 ___ Python tracker <https://bugs.python.org/issue46724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46724] Odd Bytecode Generation in 3.10
Change by Mark Shannon : -- pull_requests: +29501 pull_request: https://github.com/python/cpython/pull/31352 ___ Python tracker <https://bugs.python.org/issue46724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46724] Odd Bytecode Generation in 3.10
Mark Shannon added the comment: New changeset 3be1a443ca8e7d4ba85f95b78df5c4122cae9ede by Mark Shannon in branch 'main': bpo-46724: Use `JUMP_ABSOLUTE` for all backward jumps. (GH-31326) https://github.com/python/cpython/commit/3be1a443ca8e7d4ba85f95b78df5c4122cae9ede -- ___ Python tracker <https://bugs.python.org/issue46724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46724] Odd Bytecode Generation in 3.10
Change by Mark Shannon : -- pull_requests: +29482 pull_request: https://github.com/python/cpython/pull/31326 ___ Python tracker <https://bugs.python.org/issue46724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29481 pull_request: https://github.com/python/cpython/pull/31324 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45923] Improve performance of sys.settracing based tools.
Mark Shannon added the comment: New changeset d7a5aca982def155a9255893cefcc1493c127c9c by Brandt Bucher in branch 'main': bpo-45923: Add `RESUME_QUICK` (GH-31244) https://github.com/python/cpython/commit/d7a5aca982def155a9255893cefcc1493c127c9c -- ___ Python tracker <https://bugs.python.org/issue45923> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29425 pull_request: https://github.com/python/cpython/pull/31259 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46532] Improve efficiency of PRECALL/CALL instructions
Mark Shannon added the comment: New changeset 2cea8c29cf975a8ad7d8c3ff19d1e836c2d54707 by Mark Shannon in branch 'main': bpo-46532: Reduce number of memory writes to update call_shape.kwnames. (GH-31231) https://github.com/python/cpython/commit/2cea8c29cf975a8ad7d8c3ff19d1e836c2d54707 -- ___ Python tracker <https://bugs.python.org/issue46532> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29422 pull_request: https://github.com/python/cpython/pull/31254 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29420 pull_request: https://github.com/python/cpython/pull/31251 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29419 pull_request: https://github.com/python/cpython/pull/31250 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29404 pull_request: https://github.com/python/cpython/pull/31234 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46532] Improve efficiency of PRECALL/CALL instructions
Change by Mark Shannon : -- keywords: +patch pull_requests: +29401 stage: -> patch review pull_request: https://github.com/python/cpython/pull/31231 ___ Python tracker <https://bugs.python.org/issue46532> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46532] Improve efficiency of PRECALL/CALL instructions
Change by Mark Shannon : -- title: Improve effeciency of PRECALL/CALL instructions -> Improve efficiency of PRECALL/CALL instructions ___ Python tracker <https://bugs.python.org/issue46532> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Mark Shannon added the comment: New changeset f71a69aa9209cf67cc1060051b147d6afa379bba by Mark Shannon in branch 'main': bpo-46072: Output stats as markdown with collapsible sections. (GH-31228) https://github.com/python/cpython/commit/f71a69aa9209cf67cc1060051b147d6afa379bba -- ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29398 pull_request: https://github.com/python/cpython/pull/31228 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46675] Allow more than 16 items in split-keys dicts and "virtual" object dicts.
Mark Shannon added the comment: New changeset 25db2b361beb865192a3424830ddcb0ae4b17318 by Mark Shannon in branch 'main': bpo-46675: Allow object value arrays and split key dictionaries larger than 16 (GH-31191) https://github.com/python/cpython/commit/25db2b361beb865192a3424830ddcb0ae4b17318 -- ___ Python tracker <https://bugs.python.org/issue46675> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29381 pull_request: https://github.com/python/cpython/pull/31211 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Mark Shannon added the comment: New changeset 9c979d7afd839abbb080028bdfeb73727e5cf633 by Mark Shannon in branch 'main': bpo-46072: Merge dxpairs into py_stats. (GH-31197) https://github.com/python/cpython/commit/9c979d7afd839abbb080028bdfeb73727e5cf633 -- ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46670] Build Python with -Wundef: don't use undefined macros
Mark Shannon added the comment: New changeset 4b603f628207b380a8a2f22d7ff5d2dbb0853e2e by Victor Stinner in branch 'main': bpo-46670: Remove unused macros in ceval.c (GH-31196) https://github.com/python/cpython/commit/4b603f628207b380a8a2f22d7ff5d2dbb0853e2e -- nosy: +Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46670> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29368 pull_request: https://github.com/python/cpython/pull/31197 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Mark Shannon added the comment: New changeset 062460e8fd54e53c9a1a6f175ef49c9d730851b8 by Mark Shannon in branch 'main': bpo-46072: Improve LOAD_METHOD stats (GH-31104) https://github.com/python/cpython/commit/062460e8fd54e53c9a1a6f175ef49c9d730851b8 -- ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46675] Allow more than 16 items in split-keys dicts and "virtual" object dicts.
Change by Mark Shannon : -- keywords: +patch pull_requests: +29367 stage: -> patch review pull_request: https://github.com/python/cpython/pull/31191 ___ Python tracker <https://bugs.python.org/issue46675> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46675] Allow more than 16 items in split-keys dicts and "virtual" object dicts.
New submission from Mark Shannon : https://bugs.python.org/issue45340 and https://github.com/python/cpython/pull/28802 allowed "virtual" object dicts (see faster-cpython/ideas#72 for full details). In order for this to work, we need to keep the insertion order on the values. The initial version (https://github.com/python/cpython/pull/28802) used a 64 bit value as a vector of 16 4-bit values, which allows only 16 items per values array. Stats gathered from the standard benchmark suite and informal evidence from elsewhere suggests that this causes a significant (5% and upwards) of these dicts to be materialized due to exceeding the 16 item limit. An alternative design that would allow up to ~254 items in the values array is to make the insertion order vector an array of bytes. The capacity is 254 as we need a byte for size, and another for capacity. This will increase the size of the values a bit for sizes from 7 to 15, but save a lot of memory for sizes 17+, as keys could still be shared. Pros: No need to materialize dicts of size 16+, saving ~3/4 of the memory per dict and helping specialization. Cons: Extra memory write to store a value* 1 extra word for values of size 7 to 14, 2 extra for size 15. Some extra complexity. *In a hypothetical optimized JIT, the insertion order vector would be stored as a single write for several writes, so this would make no difference. -- assignee: Mark.Shannon messages: 412735 nosy: Mark.Shannon priority: normal severity: normal status: open title: Allow more than 16 items in split-keys dicts and "virtual" object dicts. versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46675> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46161] `class A(1, 2, 3, **d): pass` gives bad bytecode
Mark Shannon added the comment: Qiang Zhang, thanks for fixing this. -- resolution: -> fixed stage: -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46161> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46159] Segfault when using trace functions in 3.11a3
Mark Shannon added the comment: Can you reproduce this failure with just Python? If not, with just cryptography and not tox? -- ___ Python tracker <https://bugs.python.org/issue46159> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29291 pull_request: https://github.com/python/cpython/pull/31108 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29288 pull_request: https://github.com/python/cpython/pull/31105 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29287 pull_request: https://github.com/python/cpython/pull/31104 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45885] Specialize COMPARE_OP
Mark Shannon added the comment: New changeset 674ab66ebdf06f187e193a3d7bde13b71ba0f9af by Dennis Sweeney in branch 'main': bpo-45885: Add more stats for COMPARE_OP in specialize.c (GH-31040) https://github.com/python/cpython/commit/674ab66ebdf06f187e193a3d7bde13b71ba0f9af -- ___ Python tracker <https://bugs.python.org/issue45885> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45773] Compiler hangs during jump elimination
Mark Shannon added the comment: New changeset e0433c1e70254d4d0357a9e14596929a04bdf769 by Brandt Bucher in branch 'main': bpo-45773: Remove invalid peephole optimizations (GH-31066) https://github.com/python/cpython/commit/e0433c1e70254d4d0357a9e14596929a04bdf769 -- ___ Python tracker <https://bugs.python.org/issue45773> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29263 pull_request: https://github.com/python/cpython/pull/31079 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Mark Shannon added the comment: New changeset 187930f74c44e460ba09c60ba5d9bb4fac543d8f by Mark Shannon in branch 'main': bpo-46072: Add some frame stats. (GH-31060) https://github.com/python/cpython/commit/187930f74c44e460ba09c60ba5d9bb4fac543d8f -- ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29242 pull_request: https://github.com/python/cpython/pull/31060 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Mark Shannon added the comment: New changeset 48be46ec1f3f8010570165daa1da4bf9961f3a83 by Mark Shannon in branch 'main': bpo-46072: Add some object layout and allocation stats (GH-31051) https://github.com/python/cpython/commit/48be46ec1f3f8010570165daa1da4bf9961f3a83 -- ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29233 pull_request: https://github.com/python/cpython/pull/31051 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46561] Descriptor resolution should own arguments passed to descriptors
Mark Shannon added the comment: # This needs to be C code for this to fail, I'm writing it in Python for clarity and brevity class D: def __get__(self, instance, owner): del C.d # There are now no strong references to self self.whatever # Access to freed memory # This can be Python class C: d = D() C.d -- nosy: +Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46561> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46451] Tracing causes module globals to be mutated when calling functions from C
Mark Shannon added the comment: Can you reproduce this in pure Python? If not, can you produce a minimal reproducer using just NumPy? If you can't do either, I'm going to have to assume that this is a NumPy or Pandas bug. Maybe NumPy or Pandas is accessing CPython internals, but not via the C-API, and those internals changed between 3.9 and 3.10? -- nosy: +Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46451> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46329] Split up the CALL_NO_KW and CALL_KW instructions.
Change by Mark Shannon : -- pull_requests: +29216 pull_request: https://github.com/python/cpython/pull/31033 ___ Python tracker <https://bugs.python.org/issue46329> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue17206] Py_XDECREF() expands its argument multiple times
Change by Mark Shannon : -- pull_requests: +29209 pull_request: https://github.com/python/cpython/pull/30855 ___ Python tracker <https://bugs.python.org/issue17206> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Mark Shannon added the comment: New changeset 90ab138bbdc63763ad825ed6d4821367c09c4015 by Mark Shannon in branch 'main': bpo-46072: Add simple stats for Python calls. (GH-30989) https://github.com/python/cpython/commit/90ab138bbdc63763ad825ed6d4821367c09c4015 -- ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46533] Specialize for staticmethods and classmethods
Change by Mark Shannon : -- keywords: +patch pull_requests: +29169 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30990 ___ Python tracker <https://bugs.python.org/issue46533> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46072] Unify handling of stats in the CPython VM
Change by Mark Shannon : -- pull_requests: +29168 pull_request: https://github.com/python/cpython/pull/30989 ___ Python tracker <https://bugs.python.org/issue46072> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46329] Split up the CALL_NO_KW and CALL_KW instructions.
Mark Shannon added the comment: New changeset 89fd7c34520aac493a8784a221366ed04452612b by Mark Shannon in branch 'main': bpo-46329: Split calls into precall and call instructions. (GH-30855) https://github.com/python/cpython/commit/89fd7c34520aac493a8784a221366ed04452612b -- ___ Python tracker <https://bugs.python.org/issue46329> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46524] test_peg_generator takes 8 minutes on Windows
Mark Shannon added the comment: It's plenty slow on linux as well. I like the idea of starting the slower tests first. The long tail of slow tests is annoying when running `make -j12 test`. -- nosy: +Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46524> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46528] Simplify the VM's stack manipulations
Mark Shannon added the comment: Timings for individual instructions are a bit meaningless, as out-of-order execution and speculation on modern CPUs makes it hard to pin down the timing of anything. I did an experiment to double the number of instructions. It slowed things down by ~10%, so increasing the number of instructions by 1% would be expected to result in a slowdown of 0.1%. In other words, this is going to make little or no difference to performance. It does make things cleaner and simpler though, which has its own benefits. -- ___ Python tracker <https://bugs.python.org/issue46528> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46476] Not all memory allocated by _Py_Quicken() is released at Python exit
Mark Shannon added the comment: New changeset 26b0482393a313e3bda364a35e7417e9db52c1c4 by Christian Heimes in branch 'main': bpo-46476: Simplify and fix _PyStaticCode_Dealloc (GH-30965) https://github.com/python/cpython/commit/26b0482393a313e3bda364a35e7417e9db52c1c4 -- ___ Python tracker <https://bugs.python.org/issue46476> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46166] Get "self" args or non-null co_varnames from frame object with C-API
Mark Shannon added the comment: Yes, we should expose the tuple of variable names, both in Python and in the C-API. Would something like `PyCodeObject_GetVariableName()` and `PyCodeObject_GetVariableKind()` work? In the meantime, since you were reading `co_varnames` directly, why not read `co_localsplusnames` directly? OOI, how do you cope with non-local self? -- ___ Python tracker <https://bugs.python.org/issue46166> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46533] Specialize for staticmethods and classmethods
Mark Shannon added the comment: For classmethods, I expect the savings to come from not creating a bound-method and from better specialization of the following call. classmethod case: >>> class C: ... @classmethod ... def m(*args): ... pass ... >>> C.m > >>> C().m > So, without specialization LOAD_METHOD "m" has the following stack effect (with `x = C()`): x -> NULL C -> NULL With specialization: x -> C C -> C For static methods the saving is less as there is no change in stack effect, but we do save the lookup, and we can reuse existing bytecodes. Neither classmethod or staticmethod should have Py_TPFLAGS_METHOD_DESCRIPTOR set, as they have different semantics. -- ___ Python tracker <https://bugs.python.org/issue46533> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46533] Specialize for staticmethods and classmethods
New submission from Mark Shannon : Calls of the form `x.m(args)` where either `x = X` or x = X()` and X is a class, and `m` is a classmethod or staticmethod are not currently specialized. Typically the `x.m()` will translate to: LOAD_FAST x LOAD_METHOD "m" PRECALL_METHOD 0 CALL 0 Since classmethods and staticmethods are descriptors, only the LOAD_METHOD should need specializing. The PRECALL/CALL will be able to handle the resulting values without modification. -- messages: 411725 nosy: Mark.Shannon, kj priority: normal severity: normal status: open title: Specialize for staticmethods and classmethods ___ Python tracker <https://bugs.python.org/issue46533> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46532] Improve effeciency of PRECALL/CALL instructions
Mark Shannon added the comment: Possibly consider replacing the specializations for `str(arg)` and `tuple(arg)` with a more general bytecode that can be used for other objects as well. -- ___ Python tracker <https://bugs.python.org/issue46532> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46532] Improve effeciency of PRECALL/CALL instructions
New submission from Mark Shannon : The PRECALL/CALL bytecode pair for calls is new (still in review at time of writing) and is not as efficient as it could be. Some possible improvements are: Transfer refcount of func when making a frame. NULL call_shape.kwnames after use instead of in PRECALL, as many specialized instructions already assert that it is NULL. Specialize the PRECALL instructions. Either for simple cases like `type(arg)` so we can skip the CALL, or for complex cases like `PythonClass(args)` where PRECALL can create object, and set up the frame so that `CALL` calls the __init__ function. -- assignee: Mark.Shannon messages: 411721 nosy: Mark.Shannon priority: normal severity: normal status: open title: Improve effeciency of PRECALL/CALL instructions ___ Python tracker <https://bugs.python.org/issue46532> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46420] Use NOTRACE_DISPATCH in specialized opcodes
New submission from Mark Shannon : New changeset 96bf84d57a7c29544866a6c20231603049de4919 by Dennis Sweeney in branch 'main': bpo-46420: Use NOTRACE_DISPATCH() in specialized opcodes (GH-30652) https://github.com/python/cpython/commit/96bf84d57a7c29544866a6c20231603049de4919 -- nosy: +Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46420> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46329] Split up the CALL_NO_KW and CALL_KW instructions.
Change by Mark Shannon : -- keywords: +patch pull_requests: +29036 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30855 ___ Python tracker <https://bugs.python.org/issue46329> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue43683] Handle generator (and coroutine) state in the bytecode.
Mark Shannon added the comment: New changeset 0367a36fdc36b9c909c4d5acf7cde6ceeec0ba69 by Mark Shannon in branch 'main': bpo-43683: Streamline YIELD_VALUE and SEND (GH-30723) https://github.com/python/cpython/commit/0367a36fdc36b9c909c4d5acf7cde6ceeec0ba69 -- ___ Python tracker <https://bugs.python.org/issue43683> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46465] Regression caused by CALL_FUNCTION specialization for C function calls
Mark Shannon added the comment: > So it's also a threads scheduling issue, no? No, it isn't. The interpreter checks the eval breaker frequently enough. It checks on all back edges and on all calls to Python functions. The test probably needs to be fixed, or extended. It is signals sent from another process or thread that we should be testing for. I'm happy to merge PR 30826, but if you are really concerned about prompt delivery of signals, then you should be worried about C extensions. If you are worried about being able to interrupt programs, then you also worry about poorly written Python code that uses `except:`. Regarding C extensions, I think clear documentation that extension authors need to check for signals in any code that might run for a few hundred microseconds or longer is the best approach. For `except:`, maybe we could issue a syntax warning, as `except:` is universally considered to be bad practice. -- ___ Python tracker <https://bugs.python.org/issue46465> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46465] Regression caused by CALL_FUNCTION specialization for C function calls
Mark Shannon added the comment: Is this a bug? Signal handling in Python is asynchronous. https://docs.python.org/3/library/signal.html#execution-of-python-signal-handlers The example code tests whether the interpreter responds synchronously and immediately. If you add `for _in range(1): pass` or a call to any Python function in between the `os.kill(pid, SIGNUM)` and the `if not self.called:` then the test passes. -- ___ Python tracker <https://bugs.python.org/issue46465> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue42197] Disable automatic update of frame locals during tracing
Mark Shannon added the comment: Or you can use this branch: https://github.com/faster-cpython/cpython/tree/dont-fast-to-locals-in-trampoline -- ___ Python tracker <https://bugs.python.org/issue42197> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue42197] Disable automatic update of frame locals during tracing
Mark Shannon added the comment: Yes the PR has all the changes. It is just the changes sysmodule.c that you need: https://github.com/python/cpython/pull/23028/files#diff-a3a5c73931235f7f344c072dc755d6508e13923db3f5d581c5e88652075871cb -- ___ Python tracker <https://bugs.python.org/issue42197> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue42197] Disable automatic update of frame locals during tracing
Mark Shannon added the comment: While the various frame and debugger PEPs that are open offer a better solution to this, they might not be accepted for 3.11. So I'd like to revisit this. Removing the calls to `PyFrame_FastToLocals` and friends cuts the overhead of tracing down a lot. A *lot*. Using Fabio's example I get the following slowdowns: No calls to PyFrame_FastToLocals`: x10 Main branch with one local variable: x16 Main branch with six locals variables: x50 This is quite a compelling reason to remove the calls to `PyFrame_FastToLocals`. The questions is "what will we break doing this"? All the tests pass, so that seems promising. Ned, how would this impact coverage.py? -- nosy: +nedbat ___ Python tracker <https://bugs.python.org/issue42197> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue43683] Handle generator (and coroutine) state in the bytecode.
Change by Mark Shannon : -- pull_requests: +28914 pull_request: https://github.com/python/cpython/pull/30723 ___ Python tracker <https://bugs.python.org/issue43683> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45947] Place dict (and values) pointers at a fixed (negative) offset from the base of the object.
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue45947> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40116] Regression in memory use of shared key dictionaries for "compact dicts"
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue40116> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46409] Add a new bytecode instruction to create generators
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46409> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46409] Add a new bytecode instruction to create generators
Mark Shannon added the comment: New changeset b04dfbbe4bd7071d46c8688c2263726ea31d33cd by Mark Shannon in branch 'main': bpo-46409: Make generators in bytecode (GH-30633) https://github.com/python/cpython/commit/b04dfbbe4bd7071d46c8688c2263726ea31d33cd -- ___ Python tracker <https://bugs.python.org/issue46409> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46161] `class A(1, 2, 3, **d): pass` gives bad bytecode
Mark Shannon added the comment: New changeset c118c2455c95baea08045dc64963600b7a56b6fd by zq1997 in branch 'main': bpo-46161: Fix bug in starunpack_helper in compile.c (GH-30235) https://github.com/python/cpython/commit/c118c2455c95baea08045dc64963600b7a56b6fd -- ___ Python tracker <https://bugs.python.org/issue46161> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46405] Warning compiling main on Windows
Mark Shannon added the comment: New changeset a4bc2218d270c4c7a898c8b3967c8c271afe9abe by Kumar Aditya in branch 'main': bpo-46405: fix msvc compiler warnings (GH-30627) https://github.com/python/cpython/commit/a4bc2218d270c4c7a898c8b3967c8c271afe9abe -- ___ Python tracker <https://bugs.python.org/issue46405> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46374] Assertion failed in ceval.c
Change by Mark Shannon : -- priority: normal -> release blocker ___ Python tracker <https://bugs.python.org/issue46374> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46389] 3.11: unused generator comprehensions cause f_lineno==None
Change by Mark Shannon : -- assignee: -> Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46389> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46409] Add a new bytecode instruction to create generators
Change by Mark Shannon : -- keywords: +patch pull_requests: +28836 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30633 ___ Python tracker <https://bugs.python.org/issue46409> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46409] Add a new bytecode instruction to create generators
New submission from Mark Shannon : (including coroutines, and async generators) We now make the start and resumption of Python functions explicit in the bytecode which allows us to initialize frames in the bytecode without exposing incomplete frames tracing, the GC etc. However, we still expose incomplete frames when creating generators. By making the creation of generators explicit in the bytecode we first create the frame, then the generator and all is well. See https://bugs.python.org/issue46374 and https://bugs.python.org/issue46389 for examples. -- assignee: Mark.Shannon components: Interpreter Core messages: 410764 nosy: Mark.Shannon priority: normal severity: normal status: open title: Add a new bytecode instruction to create generators type: behavior versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46409> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46389] 3.11: unused generator comprehensions cause f_lineno==None
Mark Shannon added the comment: This has the same root cause as https://bugs.python.org/issue46374: closing the unused generator expression exposes the generator's frame before it has been initialized. -- ___ Python tracker <https://bugs.python.org/issue46389> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46331] 3.11: tracing revisits class line after class docstring
Change by Mark Shannon : -- assignee: -> Mark.Shannon keywords: +patch stage: -> patch review ___ Python tracker <https://bugs.python.org/issue46331> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46374] Assertion failed in ceval.c
Mark Shannon added the comment: I can reproduce this on linux. The problem is that when closing a generator that has not started, the frame may not be in a valid state (hence the assertion failure). This should be fixed by implementing https://github.com/faster-cpython/ideas/discussions/217 as that will ensure that the frame is in a valid state before the generator is created. I'll make implementing https://github.com/faster-cpython/ideas/discussions/217 a priority in order to fix this. -- assignee: -> Mark.Shannon nosy: +brandtbucher ___ Python tracker <https://bugs.python.org/issue46374> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45786] Avoid allocating when exiting frame; it may be unsafe.
Mark Shannon added the comment: With https://bugs.python.org/issue45963 both frame objects and generators contain space for the frame, so no allocation occurs on exit. -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue45786> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Mark Shannon added the comment: The news item was added in PR 30515 -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46331] 3.11: tracing revisits class line after class docstring
Change by Mark Shannon : -- assignee: Mark.Shannon -> keywords: -patch stage: resolved -> ___ Python tracker <https://bugs.python.org/issue46331> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46355] [C API] Document PyFrameObject and PyThreadState changes and explain how to port code to Python 3.11
Mark Shannon added the comment: Are there any C programming guides we can link to, that explain API use? I would hope that competent C programmers would know not to read or write to undocumented fields. But if they come from a Python background, that might not be obvious. If the advice for something is "use Python", we should probably add an API function. -- nosy: +Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46355> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46356] [C API] Enforce usage of PyFrame_GetBack()
Mark Shannon added the comment: f_lineno is not part of the API. No field in PyFrameObject is. I don't know how we can stop people from using them though. If they don't know better than pulling data out of undocumented internal struct, then I'm not sure an underscore prefix is going to help. It won't do any harm, though. -- ___ Python tracker <https://bugs.python.org/issue46356> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46344] 3.11: except/else/if/raise traced incorrectly
Change by Mark Shannon : -- nosy: +iritkatriel ___ Python tracker <https://bugs.python.org/issue46344> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46331] 3.11: tracing revisits class line after class docstring
Mark Shannon added the comment: Ned, does this fix work for you? -- status: pending -> open ___ Python tracker <https://bugs.python.org/issue46331> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46331] 3.11: tracing revisits class line after class docstring
Mark Shannon added the comment: New changeset bd04fac7eb929cd11ab6985deb61d9780447fbff by Mark Shannon in branch 'main': bpo-46331: Do not set line number of instruction storing doc-string. (GH-30518) https://github.com/python/cpython/commit/bd04fac7eb929cd11ab6985deb61d9780447fbff -- ___ Python tracker <https://bugs.python.org/issue46331> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46331] 3.11: tracing revisits class line after class docstring
Change by Mark Shannon : -- assignee: -> Mark.Shannon ___ Python tracker <https://bugs.python.org/issue46331> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46331] 3.11: tracing revisits class line after class docstring
Change by Mark Shannon : -- keywords: +patch pull_requests: +28720 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30518 ___ Python tracker <https://bugs.python.org/issue46331> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46329] Split up the CALL_NO_KW and CALL_KW instructions.
New submission from Mark Shannon : Most calls (not those with *args and/or **kwargs) are compiled to the `CALL_NO_KW` and `CALL_KW` instructions, possibly with a `PRECALL_METHOD` prefix. We want to unify the `CALL_NO_KW` and `CALL_KW` instructions into a single `CALL` instruction and add two new instructions: `PRECALL_FUNCTION` and `KW_NAMES`. All call sequences would start with `PRECALL_FUNCTION` or `PRECALL_METHOD`. `PRECALL_METHOD` would continue to pair with `LOAD_METHOD` as it does now. `PRECALL_FUNCTION` would effectively be a no-op, but would be needed to set up internal interpreter variables. `CALL_NO_KW` would become `CALL` and `CALL_KW` would become `KW_NAMES; CALL`. Why? Specializing calls is an important optimization, but calls are complicated and we want to specialized for both the type of the callable and the shape of the call. By breaking up calls in this way, we can specialize for the type and for the shape mostly independently. We can specialize for classes, bound-methods and other objects that ultimately call a Python function in the `PRECALL` instruction and specialize for the shape of the arguments in the `CALL` instruction. See https://github.com/faster-cpython/ideas/discussions/210 for more rationale. -- assignee: Mark.Shannon messages: 410209 nosy: Mark.Shannon, kj priority: normal severity: normal status: open title: Split up the CALL_NO_KW and CALL_KW instructions. type: performance versions: Python 3.11 ___ Python tracker <https://bugs.python.org/issue46329> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Change by Mark Shannon : -- keywords: +patch pull_requests: +28718 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30515 ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Mark Shannon added the comment: Ok, I'll add a news item in that case. -- ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Mark Shannon added the comment: New changeset ec0c392f34ee2474ceacf66881f05546b540e2d1 by Mark Shannon in branch 'main': bpo-46314: Remove extra RESUME when compiling a lamdba. (GH-30513) https://github.com/python/cpython/commit/ec0c392f34ee2474ceacf66881f05546b540e2d1 -- ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Mark Shannon added the comment: Pablo, I've marked this as a release blocker so this bug doesn't get into 3.11a4. -- keywords: -patch nosy: +pablogsal stage: patch review -> ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Change by Mark Shannon : -- keywords: +patch pull_requests: +28716 stage: -> patch review pull_request: https://github.com/python/cpython/pull/30513 ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46314] Stray RESUME opcode for unused lambda
Mark Shannon added the comment: Thanks, Ned. -- assignee: -> Mark.Shannon priority: normal -> release blocker type: -> behavior ___ Python tracker <https://bugs.python.org/issue46314> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46031] add POP_JUMP_IF_NOT_NONE and POP_JUMP_IF_NONE
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46031> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46225] f_lasti behaves differently for lambdas returned from loops
Mark Shannon added the comment: Are you using `f_lasti == -1` as a proxy for "is this an actual call or a resumption after a yield"? Ultimately PEP 669 will provide all the information you could need to differentiate different events. In the meantime... We now make all "call" events explicit in the bytecode using the new RESUME instruction. That means the following is true for *all* call events: f_lasti >= 0 code.co_code[f_lasti*2] == opcode.opmap["RESUME"] The oparg of the RESUME instruction describes the kind of "call" event. Given `oparg = code.co_code[f_lasti*2+1]`, then `oparg == 0` implies that the event is an actual call. See https://docs.python.org/3.11/library/dis.html#opcode-RESUME Does that help? -- ___ Python tracker <https://bugs.python.org/issue46225> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue45923] Improve performance of sys.settracing based tools.
Mark Shannon added the comment: New changeset e028ae99ecee671c0e8a3eabb829b5b2acfc4441 by Mark Shannon in branch 'main': bpo-45923: Handle call events in bytecode (GH-30364) https://github.com/python/cpython/commit/e028ae99ecee671c0e8a3eabb829b5b2acfc4441 -- ___ Python tracker <https://bugs.python.org/issue45923> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46166] Get "self" args or non-null co_varnames from frame object with C-API
Change by Mark Shannon : -- nosy: +eric.snow ___ Python tracker <https://bugs.python.org/issue46166> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46039] Break up the YIELD_FROM instruction.
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue46039> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com