Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Mark Shannon added the comment:
Josh,
I'm not really following the details of what you are saying.
You claim "Key-sharing dictionaries were accepted largely without question
because they didn't harm code that broke them".
Is that true? I don't remember it tha
Mark Shannon added the comment:
I disagree. All that is doing is locking in the current poor interface.
We do need to extend the C API for these uses, yes. But we need an API that
addresses Cython's needs directly and at a higher level.
For example, Cython often wants to insert a frame
Mark Shannon added the comment:
New changeset a8b9350964f43cb648c98c179c8037fbf3ff8a7d by Mark Shannon in
branch 'main':
bpo-45340: Don't create object dictionaries unless actually needed (GH-28802)
https://github.com/python/cpython/commit/a8b9350964f43cb648c98c179
Mark Shannon added the comment:
New changeset 3901c081143ef29624f9c1cb49cc70a70321d139 by Pablo Galindo Salgado
in branch 'main':
bpo-45256: Fix cleanup of stolen locals for Python-to-Python calls (GH-28905)
https://github.com/python/cpython/commit/3901c081143ef29624f9c1cb49cc70
Change by Mark Shannon :
--
pull_requests: +27226
pull_request: https://github.com/python/cpython/pull/28937
___
Python tracker
<https://bugs.python.org/issue45
Mark Shannon added the comment:
New changeset 3b3d30e8f78271a488965c9cd11136e1aa890757 by Dennis Sweeney in
branch 'main':
bpo-45367: Specialize BINARY_MULTIPLY (GH-28727)
https://github.com/python/cpython/commit/3b3d30e8f78271a488965c9cd11136
Mark Shannon added the comment:
New changeset 70945d57e775b335eb58b734d82e68484063e835 by Mark Shannon in
branch 'main':
bpo-45256: Avoid C calls for most Python to Python calls. (GH-28937)
https://github.com/python/cpython/commit/70945d57e775b335eb58b734d82e68
New submission from Mark Shannon :
Every time we get a cache hit in, e.g. LOAD_ATTR_CACHED, we increment the
saturating counting. Takes a dependent load and a store, as well as the shift.
For fast instructions like BINARY_ADD_FLOAT, this represents a significant
portion of work done in the
Change by Mark Shannon :
--
nosy: +kj
___
Python tracker
<https://bugs.python.org/issue45527>
___
___
Python-bugs-list mailing list
Unsubscribe:
Mark Shannon added the comment:
New changeset 3163e68c342434db37c69669017f96a4bb2d5f13 by Ken Jin in branch
'main':
bpo-44525: Specialize ``CALL_FUNCTION`` for C function calls (GH-26934)
https://github.com/python/cpython/commit/3163e68c342434db37c69669017f96
Mark Shannon added the comment:
Josh, please reopen if you have more to add.
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
pull_requests: +27355
pull_request: https://github.com/python/cpython/pull/29033
___
Python tracker
<https://bugs.python.org/issue44
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27361
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29092
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 8863a0fcc5f04ab7c3428e713917831f9b1deb18 by Mark Shannon in
branch 'main':
bpo-44525: Specialize simple Python calls. (GH-29033)
https://github.com/python/cpython/commit/8863a0fcc5f04ab7c3428e71391783
New submission from Mark Shannon :
Currently, we use the `tp_version_tag` as a proxy for the state of a class when
specializing.
When we have issued 2**32 tags, we stop issuing tags. This prevents
specializing of classes that need a new tag.
We can make a few enhancements:
1. Reserve the
Mark Shannon added the comment:
What is `source`?
--
___
Python tracker
<https://bugs.python.org/issue45563>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Mark Shannon :
We have multiple freelists for performance, but they are adhoc and poorly
integrated with the underlying allocator.
Improving this should give us a decent speedup.
--
assignee: Mark.Shannon
components: Interpreter Core
messages: 404788
nosy
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27439
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29165
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
If I knew where to look, I would be looking myself :)
Is the frozen module one built into CPython or one you have generated?
--
___
Python tracker
<https://bugs.python.org/issue45
Change by Mark Shannon :
--
nosy: +Mark.Shannon
nosy_count: 9.0 -> 10.0
pull_requests: +27492
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29228
___
Python tracker
<https://bugs.python.org/i
Mark Shannon added the comment:
New changeset 82a662e5216a9b3969054c540a759a9493468510 by Brandt Bucher in
branch 'main':
bpo-44511: Improve the bytecode for class and mapping patterns (GH-26922)
https://github.com/python/cpython/commit/82a662e5216a9b3969054c540a759a
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Mark Shannon added the comment:
Damien, thanks for catching this.
The change was not intended.
There are two kind of exceptions raised by send.
1. Where a pre-condition is not met, e.g. a generator is already ruuning
(caller errors)
2. When the generator/coroutine raises an exception
Change by Mark Shannon :
--
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/issue43683>
___
___
Python-bugs-list mai
Mark Shannon added the comment:
Just to be clear, it is the behavior change that should be reverted, not
necessarily the new bytecode.
In fact we should probably push on with (2) and add an exception handler
wrapping the whole generator except the GEN_START. That way a GEN_START
exception
Change by Mark Shannon :
--
pull_requests: +27498
pull_request: https://github.com/python/cpython/pull/29235
___
Python tracker
<https://bugs.python.org/issue45
Change by Mark Shannon :
--
pull_requests: +27501
pull_request: https://github.com/python/cpython/pull/29238
___
Python tracker
<https://bugs.python.org/issue45
Mark Shannon added the comment:
Do you have results for pyperformance?
--
___
Python tracker
<https://bugs.python.org/issue45636>
___
___
Python-bugs-list mailin
Change by Mark Shannon :
--
pull_requests: +27530
pull_request: https://github.com/python/cpython/pull/29267
___
Python tracker
<https://bugs.python.org/issue45
Mark Shannon added the comment:
What is the motivation for this?
I see it could be useful when modifying the compiler, but there is already code
for dumping the CFG in the compiler.
https://github.com/python/cpython/blob/main/Python/compile.c#L7565
--
nosy: +Mark.Shannon
Mark Shannon added the comment:
New changeset 0a1a36b74bdf8da286924a1c9652853b1c46f536 by Ken Jin in branch
'main':
bpo-44525: Add recursive checks for `CALL_FUNCTION_BUILTIN_O` (GH-29271)
https://github.com/python/cpython/commit/0a1a36b74bdf8da286924a1c965285
Mark Shannon added the comment:
New changeset 7f61d9d84843e3445f62eb00c47902f0daa30a72 by Mark Shannon in
branch 'main':
bpo-45256: Rationalize code around Python-to-Python calls a bit. (GH-29235)
https://github.com/python/cpython/commit/7f61d9d84843e3445f62eb00c47902
Mark Shannon added the comment:
I think we should revert this. It just makes working with freelists more
cumbersome. Having more configure options just makes it more likely that we
will fail to test some configuration.
If you want to disable freelists in your experiments, feel free to do so
New submission from Mark Shannon :
We currently have an unstable state in the VM where some core objects are
static and some are per-interpreter.
For example, smalls ints are allocated per-interpreter, but many classes are
allocated statically.
This means that if any int is reachable from a
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27626
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29366
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset acc89db9233abf4d903af9a7595a2ed7478fe7d3 by Mark Shannon in
branch 'main':
bpo-45691: Make array of small ints static to fix use-after-free error.
(GH-29366)
https://github.com/python/cpython/commit/acc89db9233abf4d903af9a7595a2e
Mark Shannon added the comment:
Probably an oversight when converting to zero-overhead exceptions.
--
assignee: -> Mark.Shannon
type: -> behavior
___
Python tracker
<https://bugs.python.org/i
New submission from Mark Shannon :
test_tools leaves a copy of the source in Tools/freeze/test/outdir/
which messes up grep and other tools used for searching the source.
--
components: Tests
messages: 405784
nosy: Mark.Shannon, eric.snow
priority: normal
severity: normal
status: open
New submission from Mark Shannon :
There are three things we want to do:
1. Speed up pushing and popping frames. See
https://github.com/faster-cpython/ideas/issues/111 for details.
2. Avoid tracing and other admin overhead on entering and leaving. See
https://github.com/faster-cpython/ideas
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27768
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29516
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 4cdeee5978ee3f8ea7fe95172ae04d866cd88177 by Irit Katriel in
branch 'main':
bpo-45711: remove unnecessary DUP_TOP and POP in exception handling (GH-29495)
https://github.com/python/cpython/commit/4cdeee5978ee3f8ea7fe95172ae04d
Change by Mark Shannon :
--
nosy: +brandtbucher
___
Python tracker
<https://bugs.python.org/issue45550>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Mark Shannon :
We exiting a frame (returning from a Python function) we have to release the
stack allocated frame. If a heap-allocated frame object exists, we need to copy
the contents of the (stack) frame into the frame object.
However, this involves allocating memory for
Mark Shannon added the comment:
Ok, so it is not as bad as I thought.
A failed allocation might leave us with an invalid frameobject, though. So it
is still worth fixing.
--
___
Python tracker
<https://bugs.python.org/issue45
Change by Mark Shannon :
--
pull_requests: +27774
pull_request: https://github.com/python/cpython/pull/29524
___
Python tracker
<https://bugs.python.org/issue45
Mark Shannon added the comment:
New changeset b9310773756f40f77e075f221a90dd41e6964efc by Mark Shannon in
branch 'main':
bpo-45753: Make recursion checks more efficient. (GH-29524)
https://github.com/python/cpython/commit/b9310773756f40f77e075f221a90dd
Change by Mark Shannon :
--
pull_requests: +27819
pull_request: https://github.com/python/cpython/pull/29575
___
Python tracker
<https://bugs.python.org/issue45
Mark Shannon added the comment:
test_tools also seems to fail a lot unless `make clean` is run first.
Possibly related?
--
___
Python tracker
<https://bugs.python.org/issue45
New submission from Mark Shannon :
We can remove the C stack use and general overhead of calling special methods
implemented in Python for attribute access and indexing.
Each operation has a special method that implements it. When that special
method is implemented in Python, we should avoid
Mark Shannon added the comment:
https://bugs.python.org/issue45829 is the related issue for special methods
--
___
Python tracker
<https://bugs.python.org/issue45
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27835
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29592
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
I don't think it matter much which we do first.
I happened to do BINARY_SUBSCR first.
--
___
Python tracker
<https://bugs.python.org/is
Change by Mark Shannon :
--
pull_requests: +27838
pull_request: https://github.com/python/cpython/pull/29595
___
Python tracker
<https://bugs.python.org/issue44
Mark Shannon added the comment:
New changeset 345ba3f080c140dee3102f472bc166c2db191bcc by Dong-hee Na in branch
'main':
bpo-45510: Specialize BINARY_SUBTRACT (GH-29523)
https://github.com/python/cpython/commit/345ba3f080c140dee3102f472bc166c2db191bcc
--
nosy: +Ma
Mark Shannon added the comment:
New changeset 21fa7a3e8f99a1a32467f85c877e40cbdafa9da7 by Mark Shannon in
branch 'main':
bpo-45829: Specialize BINARY_SUBSCR for __getitem__ implemented in Python.
(GH-29592)
https://github.com/python/cpython/commit/21fa7a3e8f99a1a32467f85c877e40
Mark Shannon added the comment:
New changeset 036fead695a9a1e1082992d16ab46bca1cd61a25 by Dennis Sweeney in
branch 'main':
bpo-45609: Specialize STORE_SUBSCR (GH-29242)
https://github.com/python/cpython/commit/036fead695a9a1e1082992d16ab46bca1cd61a25
--
nosy: +Ma
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27869
stage: needs patch -> patch review
pull_request: https://github.com/python/cpython/pull/29638
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
Sorry about the delay in fixing this.
--
keywords: -patch
stage: patch review -> needs patch
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 337cb480e9dc1d27594ebd87a0045d00ec8b1c3a by Mark Shannon in
branch 'main':
bpo-45709: Fix tracing when exception is handled. (GH-29638)
https://github.com/python/cpython/commit/337cb480e9dc1d27594ebd87a0045d
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27871
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29640
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
I'm seeing a similar failure on a debug build of 3.10 as well.
./python
Python 3.10.0+ (heads/3.10:9e7a2e4920, Nov 22 2021, 10:51:32) [GCC 9.3.0] on
linux
Type "help", "copyright", "credits" or "license" for more
Change by Mark Shannon :
--
assignee: -> Mark.Shannon
keywords: +3.11regression
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/i
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27936
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29700
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 7fd92a8b7ee5bed28c2681fa38e0a1e76200dd8e by Mark Shannon in
branch 'main':
bpo-45813: Make sure that frame->generator is NULLed when generator is
deallocated. (GH-29700)
https://github.com/python/c
Mark Shannon added the comment:
New changeset 4d6c0c0cce05befa06e0cad7351b1303ac048277 by Irit Katriel in
branch 'main':
bpo-45871: Refactor except matcher validation into a separate function so that
it can be reused. Add missing unit test. (GH-29711)
https://github.com/pyth
Mark Shannon added the comment:
New changeset 135cabd328504e1648d17242b42b675cdbd0193b by Mark Shannon in
branch 'main':
bpo-44525: Copy free variables in bytecode to allow calls to inner functions to
be specialized (GH-29595)
https://github.com/python/cpyt
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +27966
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29729
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
> I assume there's something wrong with the OP's methodology for profiling.
In a word "cProfile".
All cProfile is doing is measuring the overhead of cProfile.
That the overhead of cProfile has gone up is not surprising. That it has gon
Mark Shannon added the comment:
Is COMPARE_OP worth specializing by itself?
Most comparisons are followed by a jump, and much of the overhead is in the
branching around the choice of operator as well as pushing and popping (with
inc/decrefs) a value that has only one bit of information
New submission from Mark Shannon :
See https://github.com/cython/cython/issues/4484
--
messages: 407069
nosy: Mark.Shannon
priority: normal
severity: normal
status: open
title: Provide a C API for introspectable frames for Cython and similar tools
Change by Mark Shannon :
--
assignee: -> Mark.Shannon
type: -> enhancement
versions: +Python 3.11
___
Python tracker
<https://bugs.python.org/i
New submission from Mark Shannon :
In our quest for performance, the performance of sys.settracing based tools has
probably gotten worse.
1. How do we measure this?
2. How do fix this?
We will initially use coverage.py as proxy for all sys.settracing based tools
when measuring performance
Mark Shannon added the comment:
New changeset 60929576e40038ec71d896230f69e4411c82be4b by Mark Shannon in
branch 'main':
bpo-45786: Allocate space for frame in frame object. (GH-29729)
https://github.com/python/cpython/commit/60929576e40038ec71d896230f69e4
Mark Shannon added the comment:
Works for me on Ubuntu.
Python 3.11.0a2+ (heads/main:0aa0bd0563, Dec 1 2021, 11:39:40) [GCC 9.3.0] on
linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help("modules&qu
Mark Shannon added the comment:
When I say "cffi bug", I should say "is cffi not ported to 3.11 yet?"
--
___
Python tracker
<https://bug
Mark Shannon added the comment:
New changeset 49444fb807ecb396462c8e5f547eeb5c6bc5d4de by Mark Shannon in
branch 'main':
bpo-45753: Interpreter internal tweaks (GH-29575)
https://github.com/python/cpython/commit/49444fb807ecb396462c8e5f547eeb
New submission from Mark Shannon :
To get to the dict (or values array) of an object, we currently need 3
dependent loads.
By placing the dict at a fixed offset, this can be reduced to one.
What was `obj[obj->type->dictoffset]` becomes `obj[FIXED_OFFSET]`
See https://github.com/
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +28104
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29879
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
This seems to be fixed.
--
resolution: -> fixed
stage: -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
New submission from Mark Shannon :
Currently, the InterpreterFrame for a generator is allocated on the heap
separately from the generator.
This means that 2 allocations are needed to create a generator, and an extra
indirection is needed to get from the generator to the frame.
By embedding
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +28115
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29891
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 03768c4d139df46212a091ed931aad03bec18b57 by Dennis Sweeney in
branch 'main':
bpo-45885: Specialize COMPARE_OP (GH-29734)
https://github.com/python/cpython/commit/03768c4d139df46212a091ed931aad
Mark Shannon added the comment:
New changeset 299483c95d601ddcfdce2f96418b6499c1fc7b9f by Mark Shannon in
branch 'main':
bpo-45963: Make space for the InterpreterFrame of a generator in that
generator. (GH-29891)
https://github.com/python/cpyt
Change by Mark Shannon :
--
pull_requests: +28167
pull_request: https://github.com/python/cpython/pull/29942
___
Python tracker
<https://bugs.python.org/issue44
New submission from Mark Shannon :
New changeset a310fd83a014484b8c680de83540c4908b344c6c by Irit Katriel in
branch 'main':
bpo-45890: Add tests for tracing try-except-finally blocks (GH-29746)
https://github.com/python/cpython/commit/a310fd83a014484b8c680de83540c4908b344c6c
-
Mark Shannon added the comment:
I'll look into it now, and fix or revert it.
--
___
Python tracker
<https://bugs.python.org/issue45963>
___
___
Pytho
Change by Mark Shannon :
--
pull_requests: +28185
pull_request: https://github.com/python/cpython/pull/29960
___
Python tracker
<https://bugs.python.org/issue45
Mark Shannon added the comment:
New changeset 8319114feedd2a5b77378bba24eb9fb2689c5033 by Mark Shannon in
branch 'main':
bpo-45947: Place dict and values pointer at fixed (negative) offset just before
GC header. (GH-29879)
https://github.com/python/cpyt
Mark Shannon added the comment:
Sorry about the delay; this dropped off my list. I'll fix it shortly.
This is quite an obscure bug, so I'm not sure that it is worth blocking the
release for. But I'm not the release manager :)
--
___
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +28209
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/29986
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 69806b9516dbe092381f3ef884c7c64bb9b8414a by Mark Shannon in
branch 'main':
bpo-46009: Do not exhaust generator when send() method raises (GH-29986)
https://github.com/python/cpython/commit/69806b9516dbe092381f3ef884c7c6
Change by Mark Shannon :
--
pull_requests: +28211
pull_request: https://github.com/python/cpython/pull/29988
___
Python tracker
<https://bugs.python.org/issue46
Mark Shannon added the comment:
New changeset d4363d214097b3fca8b7910c2e0e91c8b0873fb2 by Andrew Svetlov in
branch 'main':
bpo-45813: Drop redundant assertion from frame.clear() (GH-29990)
https://github.com/python/cpython/commit/d4363d214097b3fca8b7910c2e0e91
Change by Mark Shannon :
--
pull_requests: +28233
pull_request: https://github.com/python/cpython/pull/30011
___
Python tracker
<https://bugs.python.org/issue44
Mark Shannon added the comment:
It sounds to me like `PyInterpreterState.eval_frame` is being used to lazily
modify the bytecode to support breakpoints.
I can see no reason why changing the bytecode can't be done via
`function.__code__`.
Suppose the code-object with the breakpoint a
Mark Shannon added the comment:
Fabio,
If the user changes the `__code__` attribute of a function then, AFAICT, your
debugger does the wrong thing, but bytecode modification does the right thing.
Suppose we have two functions `spam` and `eggs`.
Set a break point in `eggs`, set `spam
Change by Mark Shannon :
--
pull_requests: +16805
pull_request: https://github.com/python/cpython/pull/17318
___
Python tracker
<https://bugs.python.org/issue33
Mark Shannon added the comment:
Thanks for noticing.
https://github.com/python/cpython/pull/17318
--
___
Python tracker
<https://bugs.python.org/issue33
601 - 700 of 1219 matches
Mail list logo