[issue46329] Split up the CALL_NO_KW and CALL_KW instructions.

2022-02-16 Thread Mark Shannon


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

2022-02-16 Thread Mark Shannon


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

2022-02-16 Thread Mark Shannon


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

2022-02-15 Thread Mark Shannon


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

2022-02-15 Thread Mark Shannon


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

2022-02-15 Thread Mark Shannon


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

2022-02-15 Thread Mark Shannon


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

2022-02-14 Thread Mark Shannon


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

2022-02-14 Thread Mark Shannon


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.

2022-02-10 Thread Mark Shannon


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

2022-02-10 Thread Mark Shannon


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

2022-02-10 Thread Mark Shannon


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

2022-02-10 Thread Mark Shannon


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

2022-02-10 Thread Mark Shannon


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

2022-02-10 Thread Mark Shannon


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

2022-02-09 Thread Mark Shannon


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

2022-02-09 Thread Mark Shannon


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

2022-02-09 Thread Mark Shannon


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

2022-02-09 Thread Mark Shannon


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

2022-02-09 Thread Mark Shannon


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.

2022-02-08 Thread Mark Shannon


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

2022-02-08 Thread Mark Shannon


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

2022-02-07 Thread Mark Shannon


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

2022-02-07 Thread Mark Shannon


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

2022-02-07 Thread Mark Shannon


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

2022-02-07 Thread Mark Shannon


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.

2022-02-07 Thread Mark Shannon


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.

2022-02-07 Thread Mark Shannon


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

2022-02-07 Thread Mark Shannon


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

2022-02-07 Thread Mark Shannon


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

2022-02-03 Thread Mark Shannon


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

2022-02-03 Thread Mark Shannon


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

2022-02-03 Thread Mark Shannon


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

2022-02-03 Thread Mark Shannon


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

2022-02-03 Thread Mark Shannon


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

2022-02-02 Thread Mark Shannon


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

2022-02-02 Thread Mark Shannon


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

2022-02-01 Thread Mark Shannon


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

2022-02-01 Thread Mark Shannon


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

2022-02-01 Thread Mark Shannon


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

2022-02-01 Thread Mark Shannon


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

2022-02-01 Thread Mark Shannon


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.

2022-01-31 Thread Mark Shannon


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

2022-01-30 Thread Mark Shannon


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

2022-01-28 Thread Mark Shannon


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

2022-01-28 Thread Mark Shannon


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

2022-01-28 Thread Mark Shannon


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.

2022-01-28 Thread Mark Shannon


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

2022-01-28 Thread Mark Shannon


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

2022-01-27 Thread Mark Shannon


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

2022-01-27 Thread Mark Shannon


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

2022-01-27 Thread Mark Shannon


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

2022-01-26 Thread Mark Shannon


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

2022-01-26 Thread Mark Shannon


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

2022-01-26 Thread Mark Shannon


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

2022-01-26 Thread Mark Shannon


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

2022-01-25 Thread Mark Shannon


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.

2022-01-24 Thread Mark Shannon


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.

2022-01-24 Thread Mark Shannon


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

2022-01-24 Thread Mark Shannon


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

2022-01-23 Thread Mark Shannon


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

2022-01-21 Thread Mark Shannon


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

2022-01-21 Thread Mark Shannon


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

2022-01-21 Thread Mark Shannon


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.

2022-01-20 Thread Mark Shannon


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.

2022-01-20 Thread Mark Shannon


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"

2022-01-20 Thread Mark Shannon


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

2022-01-20 Thread Mark Shannon


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

2022-01-20 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-17 Thread Mark Shannon


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

2022-01-14 Thread Mark Shannon


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

2022-01-14 Thread Mark Shannon


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.

2022-01-13 Thread Mark Shannon


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

2022-01-12 Thread Mark Shannon


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

2022-01-12 Thread Mark Shannon


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

2022-01-12 Thread Mark Shannon


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()

2022-01-12 Thread Mark Shannon


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

2022-01-11 Thread Mark Shannon


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

2022-01-11 Thread Mark Shannon


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

2022-01-11 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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.

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-10 Thread Mark Shannon


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

2022-01-06 Thread Mark Shannon


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

2022-01-06 Thread Mark Shannon


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.

2022-01-06 Thread Mark Shannon


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

2022-01-06 Thread Mark Shannon


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.

2022-01-06 Thread Mark Shannon


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



<    1   2   3   4   5   6   7   8   9   10   >