What's New in v0.13.3
Fixed
abi3 = truedid not build a Stable ABI extension.pyoz buildonly used it for the wheel tag: the module was compiled against the full C API of the building Python and taggedcp310-abi3, so pip would install it on other Python versions, where it can crash.pyoz buildnow enables abi3 in PyOZ's build through the environment (PYOZ_ABI3), which works with existing projects unchanged; newbuild.zigtemplates also acceptzig build -Dabi3=true. Wheels published asabi3with an earlier PyOZ should be rebuilt and republished. CI now checks that an abi3 build usesPyType_FromSpec, notPyType_Ready.- ABI3 builds leaked every
strargument. Converting astrto[]const u8encoded it to a bytes object that was never freed (about 62 MB per 100,000 calls with a 600-character string).PyUnicode_AsUTF8AndSizeis in the Limited API since Python 3.10, PyOZ's minimum, so both modes now use it directly. This affected parameters, dict keys,pyoz.Argsfields,Path,Decimaland 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