Skip to content

cppjit 0.1.0a1

Latest

Choose a tag to compare

@aaronj0 aaronj0 released this 07 Sep 21:10
· 3 commits to main since this release
bd0ecf1

cppjit 0.1.0a1 Release Notes

This document contains the release notes for cppjit 0.1.0a1, an
automatic Python-C++ interoperability layer and bindings generator
built on CppInterOp and the LLVM compiler infrastructure.

This release supports Python 3.12-3.14 and LLVM 21-22.

Highlights

  • cppjit 0.1.0a1 is the first prerelease of cppjit, the successor of
    cppyy rebuilt on CppInterOp and the clang-repl C++ interpreter in LLVM.
  • The release installs from PyPI with pip install cppjit and ships
    wheels for Linux x86_64/aarch64 and macOS arm64/x86_64 on Python
    3.12-3.14, built with the LLVM 21 toolchain.
  • This first prerelease establishes the build system, test, and
    packaging infrastructure of the new monorepo, with planned
    improvements, documentation, and benchmarks in the next beta
    release.

Changes from cppyy

The user-facing Python layer is mostly unchanged from cppyy: cppdef,
include, gbl, and the pythonization machinery work as before. The
changes are in the compiler layer underneath:

  • New backend:
    CppInterOp and the clang-repl incremental compiler replace Cling
    and its patched LLVM. clang-repl is the upstreamed evolution of Cling,
    so cppjit builds against stock LLVM releases with no custom patches.
  • Compiler-derived bindings: string-based type lookups give way to
    opaque handles on the Clang AST, and type conversion and overload
    resolution follow Clang's own rules.
  • One package: the cppyy, CPyCppyy, and cppyy-backend distribution
    stack is consolidated into a single package and repository, built
    with scikit-build-core and published to PyPI through trusted
    publishing.
  • Supported platforms: CPython 3.12-3.14 on Linux x86_64/aarch64 and
    macOS arm64/x86_64. cppyy's PyPy support is not carried over.
    Windows is not supported with this release but is a planned future
    development (#89).

Contributors

Special thanks to everyone who contributed to this release:

  • Aaron Jomy
  • Emery Conrad
  • Grigori Rybkine
  • Jonas Rembser
  • Kerem Şahin
  • Vassil Vassilev
  • Vipul Cariappa
  • Wim Lavrijsen

and all past contributors to the now-archived compiler-research forks of cppyy, CPyCppyy and cppyy-backend.