Skip to content

Investigate Python 3.15 support #437

Description

@pschanely

Python 3.15 is now in beta (3.15.0b3 as of June 2026), so it's time to start evaluating what CrossHair needs in order to support it. CrossHair is unusually sensitive to CPython minor-version changes because it (a) intercepts bytecode opcodes and (b) ships a C extension (crosshair/_tracers.c) that pokes at interpreter internals, so each new minor version tends to require a porting pass.

This is a tracking issue to scope the work. Areas to evaluate:

  • C tracer opcode table (crosshair/_tracers.c) — version-gated PY_VERSION_HEX branches for the set of intercepted opcodes.
  • Python-side opcode interception (crosshair/opcode_intercept.py, crosshair/tracers.py) — check_opcode_support() and the version gates around CALL/BUILD_MAP/etc.
  • C API surface in _tracers.c vs. APIs removed/deprecated in 3.15.
  • stdlib libimpl/ patches that gate on sys.version_info and may need a >= (3, 15) arm.
  • CI / packaging — add 3.15 to the test matrix and trove classifiers (currently capped at 3.13 in pyproject.toml, though code already handles 3.14).
  • Dependencies — confirm z3-solver and other deps publish 3.15 wheels.

Initial evaluation to follow in a comment.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions