You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: Windows build support, output paths, and package mode test/bench imports
- Pass -Dpython-lib-dir and -Dpython-lib-name=python3 to zig build on Windows
to resolve 77 lld-link undefined symbol errors (Windows requires all symbols
at link time, unlike Unix which resolves at runtime)
- Use zig-out/bin/ for .pyd files on Windows (Zig places DLLs in bin/, not lib/)
- Detect package mode in test/bench runners: copy .pyd into package directory
and add project root to PYTHONPATH so 'import ravn' works
- Generate 'import ravn' in addition to 'import _ravn' in test/bench scripts
when module name starts with underscore (package layout)
- Replace UTF-8 box-drawing chars with ASCII in pyoz init output for Windows
Copy file name to clipboardExpand all lines: CHANGELOG.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,14 @@ All notable changes to PyOZ will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
+
## [0.11.2] - 2026-02-10
9
+
10
+
### Fixed
11
+
-**Windows build support** - Fixed 77 `lld-link: undefined symbol` errors when building PyOZ projects on Windows. The generated `build.zig` template now accepts `-Dpython-lib-dir` and `-Dpython-lib-name` options, and `pyoz build` passes them automatically on Windows to link against `python3.lib` (stable ABI). Windows requires all symbols resolved at link time, unlike Linux/macOS which resolve Python symbols at runtime.
12
+
-**Windows output path** - Fixed `FileNotFound` error during wheel creation on Windows. Zig places DLLs (`.pyd`) in `zig-out/bin/` on Windows, not `zig-out/lib/`. The builder, test runner, and benchmark runner now use the correct output directory per platform.
13
+
-**Package mode test/bench imports** - In package layout (module name starts with `_`), the generated test and benchmark scripts now also `import ravn` (the package name) in addition to `import _ravn`, so users can write `assert ravn.add(2, 3) == 5` in their tests. The test/bench runners also detect package mode, copy the `.pyd`/`.so` into the package directory, and add the project root to `PYTHONPATH`.
14
+
-**ASCII tree output for `pyoz init`** - Replaced UTF-8 box-drawing characters with ASCII in the project structure output, fixing garbled display on Windows PowerShell.
0 commit comments