Conversation
Four separate 0.15 changes, all fixable with spellings that both
versions accept, so this widens support rather than cutting over.
Build system:
- addStaticLibrary/addSharedLibrary fold into addLibrary with an
explicit .linkage, and target/optimize move onto a module passed as
.root_module.
Calling convention (52 sites in src/vst3.zig and the gain example):
- callconv(.C) -> callconv(.c). The CallingConvention union was
reworked; 0.14.1 already accepted the lowercase form.
std.Io rework:
- net.Stream.readAll was removed. Replaced with a single read, which
is the correct semantic here anyway: readAll blocks until the 8 KB
buffer fills or the peer closes, so a keep-alive HTTP client would
hang.
ArrayList:
- 0.15 made ArrayList unmanaged by default and dropped
.init(allocator). ArrayListUnmanaged names the same type in both, so
the allocator is passed per call instead.
The webview dependency also had to move: its pinned commit used the
removed build API. Bumped to a5eef0b, which uses the new one. That in
turn renamed WindowSizeHint.Fixed to .fixed.
Verified on both toolchains from a clean cache:
0.14.1 24/24 build steps, 35/35 tests
0.15.2 24/24 build steps, 35/35 tests, vst3 bundle still fat
(x86_64 arm64)
CI runs a matrix over both. Also corrects two stale README claims: the
Zig version requirement, and a License section pointing at a project
root that no longer holds the license.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
godofecht
added a commit
that referenced
this pull request
Jul 29, 2026
Support Zig 0.15 alongside 0.14.1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four separate 0.15 changes, all fixable with spellings both versions accept. So this widens support rather than cutting over.
Build system
addStaticLibrary/addSharedLibraryfold intoaddLibrarywith an explicit.linkage, and target/optimize move onto a module passed as.root_module.Calling convention (52 sites)
callconv(.C)→callconv(.c)acrosssrc/vst3.zigand the gain example. 0.14.1 already accepted the lowercase form.std.Io rework (writergate)
Replaced with a single
read, which is the correct semantic here anyway:readAllblocks until the 8 KB buffer fills or the peer closes, so a keep-alive HTTP client would hang. The removal exposed a latent bug.ArrayList
0.15 made
ArrayListunmanaged by default and dropped.init(allocator).ArrayListUnmanagednames the same type in both, so the allocator is passed per call instead.Dependency
The webview pin used the removed build API, so it blocked 0.15 regardless of our own code. Bumped to
a5eef0b, which uses the new one. That in turn renamedWindowSizeHint.Fixedto.fixed.Verification
From a clean cache, on both toolchains:
x86_64 arm64CI runs a matrix over both so the compatibility stays verified.
Also corrects two stale README claims: the Zig version requirement (said 0.12.0+), and a License section pointing at a project root that no longer holds the license.
🤖 Generated with Claude Code