github pyozig/PyOZ v0.13.3
PyOZ v0.13.3

2 hours ago

What's New in v0.13.3

Fixed

  • abi3 = true did not build a Stable ABI extension. pyoz build only used it for the wheel tag: the module was compiled against the full C API of the building Python and tagged cp310-abi3, so pip would install it on other Python versions, where it can crash. pyoz build now enables abi3 in PyOZ's build through the environment (PYOZ_ABI3), which works with existing projects unchanged; new build.zig templates also accept zig build -Dabi3=true. Wheels published as abi3 with an earlier PyOZ should be rebuilt and republished. CI now checks that an abi3 build uses PyType_FromSpec, not PyType_Ready.
  • ABI3 builds leaked every str argument. Converting a str to []const u8 encoded it to a bytes object that was never freed (about 62 MB per 100,000 calls with a 600-character string). PyUnicode_AsUTF8AndSize is in the Limited API since Python 3.10, PyOZ's minimum, so both modes now use it directly. This affected parameters, dict keys, pyoz.Args fields, Path, Decimal and attribute names. Regression tests in both modes.

Installation

Download the binary for your platform and add it to your PATH:

Platform Binary
Linux x86_64 pyoz-x86_64-linux
Linux ARM64 pyoz-aarch64-linux
macOS x86_64 pyoz-x86_64-macos
macOS ARM64 (Apple Silicon) pyoz-aarch64-macos
Windows x86_64 pyoz-x86_64-windows.exe
Windows ARM64 pyoz-aarch64-windows.exe

Source

Download PyOZ-0.13.3.tar.gz for the source code.

Quick Start

pyoz init mymodule
cd mymodule
pyoz build
pip install dist/*.whl

Don't miss a new PyOZ release

NewReleases is sending notifications on new releases.