Skip to content

Conversation

@Periecle
Copy link

@Periecle Periecle commented Nov 28, 2025

Background

The current vmprof release restricts installation to Python versions below 3.12. This limitation prevents adoption on modern Python environments. The submitted PR addresses the necessary CPython internal API changes to restore compatibility.

Technical Changes

  • Python 3.12: populate_frames.c inclusion; deprecated readfp() API
  • Python 3.13: tstate->cframe removal; frame->f_code renamed to f_executable; Py_BUILD_CORE header guards; deprecated PyImport_ImportModuleNoBlock
  • Python 3.14: Frame internals relocated to pycore_interpframe.h

Validation

  • Full test suite (58 tests) passes on Python 3.11, 3.12, 3.13, and 3.14
  • Profiler correctly captures call stacks across all versions
  • CI configuration updated to include new Python versions
  • I have manually tested on MacOS(ARM), Linux(x86_64) and Windows(x86_64)

@Periecle Periecle force-pushed the feature/support-python-12-13-14 branch from fb5ae14 to bfb603c Compare November 28, 2025 15:47
@Periecle Periecle force-pushed the feature/support-python-12-13-14 branch from bfb603c to d1b0082 Compare November 29, 2025 10:14
@rlamy
Copy link
Member

rlamy commented Dec 1, 2025

The changes look reasonable, thanks for working on this!

However, there are CI failures.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants