Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
New submission from Mark Shannon :
The YIELD_FROM instruction does three things:
* It sends a value to the sub-iterator
* It yields the value from the sub-iterator back up to its caller
* Loops back on itself
So we should implement this as:
SEND<--+
YIELD_VALUE|
JUMP_ABSOL
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +28260
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/30035
___
Python tracker
<https://bugs.python.org/issu
New submission from Mark Shannon :
By "stats" I mean the internal numbers gathered by the VM for performance and
debugging. This has nothing to do with any statistics module.
Currently various parts of the VM gather stats: the GC, dicts, the bytecode
interpreter, type lookup
Mark Shannon added the comment:
New changeset 9f8f45144b6f0ad481e80570538cce89b414f7f9 by Mark Shannon in
branch 'main':
bpo-44525: Split calls into PRECALL and CALL (GH-30011)
https://github.com/python/cpython/commit/9f8f45144b6f0ad481e80570538cce
Change by Mark Shannon :
--
pull_requests: +28329
pull_request: https://github.com/python/cpython/pull/30107
___
Python tracker
<https://bugs.python.org/issue44
Mark Shannon added the comment:
PR 29581 resulted in a 1% slowdown, which is not terrible, but code not using
except* should not be slowed down at all.
IMO, the way to avoid the slowdown is to implement except* using the existing
instruction set (perhaps with a few minor additions)
We
Mark Shannon added the comment:
New changeset 0b50a4f0cdee41a18fb4ba6e75569f9cfaceb39e by Mark Shannon in
branch 'main':
bpo-46039: Split yield from in two (GH-30035)
https://github.com/python/cpython/commit/0b50a4f0cdee41a18fb4ba6e75569f
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +28338
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/30116
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset 3a60bfef49b3324660a615a8e6d10710e5f669d9 by Mark Shannon in
branch 'main':
bpo-44525: Specialize for calls to type and other builtin classes with 1
argument. (GH-29942)
https://github.com/python/cpyt
Mark Shannon added the comment:
New changeset 342b93f9f28746abb7b221a61d5a9b26ccbb395a by Mark Shannon in
branch 'main':
bpo-46072: Add --with-pystats configure option to simplify gathering of VM
stats (GH-30116)
https://github.com/python/cpyt
Mark Shannon added the comment:
The problem here is that different sub-interpreters have different strings for
the same Python string.
Unless sub-interpreters are fully independent, and they cannot be due to
limitations imposed by the stable API, then all sub-interpreters must share the
New submission from Mark Shannon :
Because functions are mutable, specifically because the __code__ attribute is
mutable, we need to version functions when specializing.
However, some specializations (for special methods mainly) only have space for
16 bit versions.
It is likely that
Mark Shannon added the comment:
New changeset 62a8a0c5223f750e22ee381d3cfbdb718cf1cc93 by Brandt Bucher in
branch 'main':
bpo-45829: Check `__getitem__`'s version for overflow before specializing
(GH-30129)
https://github.com/python/cpython/commit/62a8a0c5223f750e22ee381d3
Change by Mark Shannon :
--
pull_requests: +28357
pull_request: https://github.com/python/cpython/pull/30139
___
Python tracker
<https://bugs.python.org/issue46
Mark Shannon added the comment:
New changeset 4506bbede1644e985991884964b43afa7ee6f609 by Mark Shannon in
branch 'main':
bpo-46072: Document --enable-stats option. (GH-30139)
https://github.com/python/cpython/commit/4506bbede1644e985991884964b43a
Mark Shannon added the comment:
The --enable-stats option is for CPython development and shouldn't be turned on
for a release version, so I'm not really concerned about people attacking their
own machines.
--
___
Python track
Change by Mark Shannon :
--
pull_requests: +28363
pull_request: https://github.com/python/cpython/pull/30145
___
Python tracker
<https://bugs.python.org/issue46
Change by Mark Shannon :
--
pull_requests: +28386
pull_request: https://github.com/python/cpython/pull/30169
___
Python tracker
<https://bugs.python.org/issue46
Mark Shannon added the comment:
New changeset 396b58345f81d4c8c5a52546d2288e666a1b9b8b by Irit Katriel in
branch 'main':
bpo-45711: Remove type and traceback from exc_info (GH-30122)
https://github.com/python/cpython/commit/396b58345f81d4c8c5a52546d2288e
Mark Shannon added the comment:
New changeset efd6236d36b292c2c43540132c87cf8425e8d627 by Mark Shannon in
branch 'main':
bpo-46072: Add top level stats struct (GH-30169)
https://github.com/python/cpython/commit/efd6236d36b292c2c43540132c87cf
Change by Mark Shannon :
--
keywords: +patch
pull_requests: +28578
stage: -> patch review
pull_request: https://github.com/python/cpython/pull/30364
___
Python tracker
<https://bugs.python.org/issu
Mark Shannon added the comment:
New changeset a94461d7189d7f1147ab304a332c8684263dc17e by Irit Katriel in
branch 'main':
bpo-46202: Remove opcode POP_EXCEPT_AND_RERAISE (GH-30302)
https://github.com/python/cpython/commit/a94461d7189d7f1147ab304a332c8684263dc17e
-
Mark Shannon added the comment:
New changeset 7537f6008704b20e2d04a7ef1c0cfa34121cc5eb by Dennis Sweeney in
branch 'main':
bpo-45609: More specialization stats for STORE_SUBSCR (GH-30193)
https://github.com/python/cpython/commit/7537f6008704b20e2d04a7ef1c0cfa
Change by Mark Shannon :
--
pull_requests: +28621
pull_request: https://github.com/python/cpython/pull/30415
___
Python tracker
<https://bugs.python.org/issue44
Mark Shannon added the comment:
Yes, most of it :)
We haven't implemented points 2 and 3, yet.
I'm in no hurry to implement 3. It would clean up `gen.throw` a lot, and break
the dependency between that code and the interpreter, but it isn't urgent.
2 is more urgent. I thin
Mark Shannon added the comment:
New changeset 332e6b972567debfa9d8f3f9a4a966c7ad15eec9 by Brandt Bucher in
branch 'main':
bpo-45256: Don't track the exact depth of each `InterpreterFrame` (GH-30372)
https://github.com/python/cpython/commit/332e6b972567debfa9d8f3f9a
Mark Shannon added the comment:
See https://github.com/faster-cpython/ideas/discussions/210
--
___
Python tracker
<https://bugs.python.org/issue44525>
___
___
Mark Shannon added the comment:
New changeset 3db762db72cc0da938614b1e414abb1e12ca4094 by penguin_wwy in branch
'main':
bpo-46031: add POP_JUMP_IF_NOT_NONE and POP_JUMP_IF_NONE (GH-30019)
https://github.com/python/cpython/commit/3db762db72cc0da938614b1e414abb1e12ca4094
-
Mark Shannon added the comment:
Yes.
--
priority: release blocker ->
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
nosy: +eric.snow
___
Python tracker
<https://bugs.python.org/issue46166>
___
___
Python-bugs-list mailing list
Unsubscribe:
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/e028ae99ecee671c0e8a3eabb829b5
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 &qu
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Mark Shannon added the comment:
Thanks, Ned.
--
assignee: -> Mark.Shannon
priority: normal -> release blocker
type: -> behavior
___
Python tracker
<https://bugs.python.or
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/issu
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.pytho
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/ec0c392f34ee2474ceacf66881f055
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 m
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/issu
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
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/issu
Change by Mark Shannon :
--
assignee: -> Mark.Shannon
___
Python tracker
<https://bugs.python.org/issue46331>
___
___
Python-bugs-list mailing list
Unsubscrib
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/bd04fac7eb929cd11ab6985deb61d9
Mark Shannon added the comment:
Ned, does this fix work for you?
--
status: pending -> open
___
Python tracker
<https://bugs.python.org/issue46331>
___
___
Py
Change by Mark Shannon :
--
nosy: +iritkatriel
___
Python tracker
<https://bugs.python.org/issue46344>
___
___
Python-bugs-list mailing list
Unsubscribe:
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 i
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
Change by Mark Shannon :
--
assignee: Mark.Shannon ->
keywords: -patch
stage: resolved ->
___
Python tracker
<https://bugs.python.org/issue46331>
___
___
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.or
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 -&g
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
Change by Mark Shannon :
--
assignee: -> Mark.Shannon
keywords: +patch
stage: -> patch review
___
Python tracker
<https://bugs.python.org/issue46331>
___
__
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
&
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
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/issu
Change by Mark Shannon :
--
assignee: -> Mark.Shannon
___
Python tracker
<https://bugs.python.org/issue46389>
___
___
Python-bugs-list mailing list
Unsubscrib
Change by Mark Shannon :
--
priority: normal -> release blocker
___
Python tracker
<https://bugs.python.org/issue46374>
___
___
Python-bugs-list mai
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/a4bc2218d270c4c7a898c8b3967c8c
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/c118c2455c95baea08045dc6496360
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/b04dfbbe4bd7071d46c8688c226372
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
resolution: -> fixed
stage: patch review -> resolved
status: open -> closed
___
Python tracker
<https://bugs.python.or
Change by Mark Shannon :
--
pull_requests: +28914
pull_request: https://github.com/python/cpython/pull/30723
___
Python tracker
<https://bugs.python.org/issue43
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 l
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
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/issue42
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
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 sign
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/0367a36fdc36b9c909c4d5acf7cde6
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/issu
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
-
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
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/issue46
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
CAL
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
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
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/26b0482393a313e3bda364a35e7417
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
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
&
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/89fd7c34520aac493a8784a221366e
Change by Mark Shannon :
--
pull_requests: +29168
pull_request: https://github.com/python/cpython/pull/30989
___
Python tracker
<https://bugs.python.org/issue46
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/issu
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/90ab138bbdc63763ad825ed6d48213
Change by Mark Shannon :
--
pull_requests: +29209
pull_request: https://github.com/python/cpython/pull/30855
___
Python tracker
<https://bugs.python.org/issue17
Change by Mark Shannon :
--
pull_requests: +29216
pull_request: https://github.com/python/cpython/pull/31033
___
Python tracker
<https://bugs.python.org/issue46
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 n
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 m
Change by Mark Shannon :
--
pull_requests: +29233
pull_request: https://github.com/python/cpython/pull/31051
___
Python tracker
<https://bugs.python.org/issue46
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/48be46ec1f3f8010570165daa1da4b
Change by Mark Shannon :
--
pull_requests: +29242
pull_request: https://github.com/python/cpython/pull/31060
___
Python tracker
<https://bugs.python.org/issue46
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/187930f74c44e460ba09c60ba5d9bb
Change by Mark Shannon :
--
pull_requests: +29263
pull_request: https://github.com/python/cpython/pull/31079
___
Python tracker
<https://bugs.python.org/issue46
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/e0433c1e70254d4d0357a9e1459692
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/674ab66ebdf06f187e193a3d7bde13
Change by Mark Shannon :
--
pull_requests: +29287
pull_request: https://github.com/python/cpython/pull/31104
___
Python tracker
<https://bugs.python.org/issue46
Change by Mark Shannon :
--
pull_requests: +29288
pull_request: https://github.com/python/cpython/pull/31105
___
Python tracker
<https://bugs.python.org/issue46
1 - 100 of 1194 matches
Mail list logo