Skip to content

Conversation

@markshannon
Copy link
Member

@markshannon markshannon commented Feb 17, 2023

Currently FOR_ITER_RANGE is a superinstruction, specializing a FOR_ITER; STORE_FAST pair.
This is a problem for instrumentation which assumes the PEP 659 promise that all specializations are atomic.

This PR restricts FOR_ITER_RANGE to a single instruction.

@markshannon
Copy link
Member Author

markshannon commented Feb 17, 2023

A little bit slower "x1.00 slower":
https://github.com/faster-cpython/benchmarking-public/tree/main/results/bm-20230217-3.12.0a5%2B-fb5f321

I'm not worried by this slowdown because:

@markshannon markshannon merged commit 7c106a4 into python:main Feb 22, 2023
carljm added a commit to carljm/cpython that referenced this pull request Feb 23, 2023
* main: (76 commits) Fix syntax error in struct doc example (python#102160) pythongh-99108: Import MD5 and SHA1 from HACL* (python#102089) pythonGH-101777: `queue.rst`: use 2 spaces after a period to be consistent. (python#102143) Few coverage nitpicks for the cmath module (python#102067) pythonGH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow instrumentation. (pythonGH-101985) pythongh-102135: Update turtle docs to rename wikipedia demo to rosette (python#102137) pythongh-99942: python.pc on android/cygwin should link to libpython per configure.ac (pythonGH-100356) pythongh-95672 fix typo SkitTest to SkipTest (pythongh-102119) pythongh-101936: Update the default value of fp from io.StringIO to io.BytesIO (pythongh-102100) pythongh-102008: simplify test_except_star by using sys.exception() instead of sys.exc_info() (python#102009) pythongh-101903: Remove obsolete undefs for previously removed macros Py_EnterRecursiveCall and Py_LeaveRecursiveCall (python#101923) pythongh-100556: Improve clarity of `or` docs (python#100589) pythongh-101777: Make `PriorityQueue` docs slightly clearer (python#102026) pythongh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.c (pythonGH-101966) pythongh-101578: Amend exception docs (python#102057) pythongh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (pythongh-102068) pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078) pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012) pythongh-101566: Sync with zipp 3.14. (pythonGH-102018) pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589) ...
@markshannon markshannon deleted the restrict-for-iter-specializations-to-one-instruction branch September 26, 2023 12:50
JelleZijlstra pushed a commit to JelleZijlstra/cpython that referenced this pull request Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants