[issue29988] with statements are not ensuring that __exit__ is called if __enter__ succeeds

2021-12-10 Thread Mark Shannon
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.or

[issue46039] Break up the YIELD_FROM instruction.

2021-12-10 Thread Mark Shannon
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

[issue46039] Break up the YIELD_FROM instruction.

2021-12-10 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-14 Thread Mark Shannon
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

[issue44525] Implement CALL_FUNCTION adaptive interpreter optimizations

2021-12-14 Thread Mark Shannon
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

[issue44525] Implement CALL_FUNCTION adaptive interpreter optimizations

2021-12-14 Thread Mark Shannon
Change by Mark Shannon : -- pull_requests: +28329 pull_request: https://github.com/python/cpython/pull/30107 ___ Python tracker <https://bugs.python.org/issue44

[issue45292] Implement PEP 654: Exception Groups

2021-12-14 Thread Mark Shannon
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

[issue46039] Break up the YIELD_FROM instruction.

2021-12-15 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-15 Thread Mark Shannon
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

[issue44525] Implement CALL_FUNCTION adaptive interpreter optimizations

2021-12-15 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-15 Thread Mark Shannon
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

[issue46006] [subinterpreter] _PyUnicode_EqualToASCIIId() issue with subinterpreters

2021-12-15 Thread Mark Shannon
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

[issue46097] Split function versions into 1-0xffff and 0x1000+ regions

2021-12-16 Thread Mark Shannon
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

[issue45829] Remove C stack use by specializing BINARY_SUBSCR, STORE_SUBSCR, LOAD_ATTR, and STORE_ATTR

2021-12-16 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-16 Thread Mark Shannon
Change by Mark Shannon : -- pull_requests: +28357 pull_request: https://github.com/python/cpython/pull/30139 ___ Python tracker <https://bugs.python.org/issue46

[issue46072] Unify handling of stats in the CPython VM

2021-12-16 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-16 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-16 Thread Mark Shannon
Change by Mark Shannon : -- pull_requests: +28363 pull_request: https://github.com/python/cpython/pull/30145 ___ Python tracker <https://bugs.python.org/issue46

[issue46072] Unify handling of stats in the CPython VM

2021-12-17 Thread Mark Shannon
Change by Mark Shannon : -- pull_requests: +28386 pull_request: https://github.com/python/cpython/pull/30169 ___ Python tracker <https://bugs.python.org/issue46

[issue45711] Simplify the interpreter's (type, val, tb) exception representation

2021-12-17 Thread Mark Shannon
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

[issue46072] Unify handling of stats in the CPython VM

2021-12-17 Thread Mark Shannon
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

[issue45923] Improve performance of sys.settracing based tools.

2022-01-03 Thread Mark Shannon
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

[issue46202] remove opcode POP_EXCEPT_AND_RERAISE

2022-01-04 Thread Mark Shannon
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 -

[issue45609] Specialize STORE_SUBSCR

2022-01-04 Thread Mark Shannon
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

[issue44525] Implement CALL_FUNCTION adaptive interpreter optimizations

2022-01-05 Thread Mark Shannon
Change by Mark Shannon : -- pull_requests: +28621 pull_request: https://github.com/python/cpython/pull/30415 ___ Python tracker <https://bugs.python.org/issue44

[issue43683] Handle generator (and coroutine) state in the bytecode.

2022-01-05 Thread Mark Shannon
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

[issue45256] Remove the usage of the C stack in Python to Python calls

2022-01-05 Thread Mark Shannon
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

[issue44525] Implement CALL_FUNCTION adaptive interpreter optimizations

2022-01-05 Thread Mark Shannon
Mark Shannon added the comment: See https://github.com/faster-cpython/ideas/discussions/210 -- ___ Python tracker <https://bugs.python.org/issue44525> ___ ___

[issue46031] add POP_JUMP_IF_NOT_NONE and POP_JUMP_IF_NONE

2022-01-06 Thread Mark Shannon
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 -

[issue40222] "Zero cost" exception handling

2022-01-06 Thread Mark Shannon
Mark Shannon added the comment: Yes. -- priority: release blocker -> resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python

[issue45256] Remove the usage of the C stack in Python to Python calls

2022-01-06 Thread Mark Shannon
Change by Mark Shannon : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.or

[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.or

[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:

[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/e028ae99ecee671c0e8a3eabb829b5

[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 &qu

[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.or

[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.or

[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/issu

[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.pytho

[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/ec0c392f34ee2474ceacf66881f055

[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 m

[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/issu

[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

[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/issu

[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 Unsubscrib

[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/bd04fac7eb929cd11ab6985deb61d9

[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> ___ ___ Py

[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:

[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 i

[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

[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> ___ ___

[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.or

[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 -&g

[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

[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> ___ __

[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 &

[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

[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/issu

[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 Unsubscrib

[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 mai

[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/a4bc2218d270c4c7a898c8b3967c8c

[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/c118c2455c95baea08045dc6496360

[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/b04dfbbe4bd7071d46c8688c226372

[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.or

[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.or

[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.or

[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/issue43

[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 l

[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

[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/issue42

[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

[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 sign

[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/0367a36fdc36b9c909c4d5acf7cde6

[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/issu

[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 -

[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

[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/issue46

[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 CAL

[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

[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

[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/26b0482393a313e3bda364a35e7417

[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

[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 &

[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/89fd7c34520aac493a8784a221366e

[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/issue46

[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/issu

[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/90ab138bbdc63763ad825ed6d48213

[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/issue17

[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/issue46

[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 n

[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 m

[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/issue46

[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/48be46ec1f3f8010570165daa1da4b

[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/issue46

[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/187930f74c44e460ba09c60ba5d9bb

[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/issue46

[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/e0433c1e70254d4d0357a9e1459692

[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/674ab66ebdf06f187e193a3d7bde13

[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/issue46

[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/issue46

  1   2   3   4   5   6   7   8   9   10   >