◐ Shell
clean mode source ↗

GH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow instrumentation. by markshannon · Pull Request #101985 · python/cpython

Skip to content

Navigation Menu

Sign in

Appearance settings

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Conversation

@markshannon

@markshannon markshannon commented

Feb 17, 2023

edited by bedevere-bot

Loading

Copy link Copy Markdown

Member

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

markshannon commented

Feb 17, 2023

edited

Loading

Copy link Copy Markdown

Member Author

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

Reviewers

@brandtbucher brandtbucher brandtbucher approved these changes

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

3 participants

@markshannon @brandtbucher @bedevere-bot