Repository navigation
chore(prebuilt): refresh libkcl binaries to kcl 3ec296a9 - #400
Merged
Merged
Conversation
dart, julia and the ast-diff dump legs load the committed binaries under go/lib/ instead of building from source, so a prebuilt refresh must re-run those workflows. Signed-off-by: Peefy <xpf6677@163.com>
Rebuild every stale prebuilt from kcl-lang/kcl at 3ec296a9, the rev the sub-crate Cargo locks and the darwin-arm64 binary already track. The old linux/windows/darwin-amd64/musl binaries predated BuiltinService.ListMethod and the LoadPackage kcl-mod fields, so the 29-case consistency suite could not pass on go, dart, julia or zig CI. windows-arm64 is now a real aarch64-pc-windows-msvc image instead of a copy of the x86_64 dll. Signed-off-by: Peefy <xpf6677@163.com>
The windows-arm64 prebuilt is a genuine aarch64-pc-windows-msvc build now, so the Dart FFI loader works on the ARM64 runner and the leg exercises it. Signed-off-by: Peefy <xpf6677@163.com>
This was referenced Oct 8, 2026
Peefy
added a commit
that referenced
this pull request
Oct 8, 2026
Update every binding's package version and its kcl-* git dependency pins
from 0.13.0 to 0.13.1, and refresh the checked-in libkcl binaries.
Manifests (root and per-language Cargo.toml, pyproject.toml,
package.json + the eight @kcl-lib/native-* platform packages, java/kotlin
pom.xml, pubspec.yaml, gem version, build.zig.zon, CMake project version,
rockspec, KCL_VERSION, the publish workflows) all move to 0.13.1, as do
the install instructions in the READMEs. The rockspec is renamed to
kcl_lib-0.13.1-3.rockspec to match its new package_version.
c/Cargo.toml pinned kcl-api by rev as well as version, so the rev moves
842b02be -> 0e17d806 to stay consistent: at the old rev the workspace
still reads 0.13.0 and cargo would fail to resolve the 0.13.1 requirement.
This is the only rev pin in the tree.
Binaries, all sha256-verified against the sources they came from:
- kcl-lang/kcl v0.13.1 release assets (release 37631976551) for
linux-{amd64,arm64}, linux-musl-{amd64,arm64}, darwin-{amd64,arm64},
windows-amd64 and wasm32-wasip1.
- ios-arm64 and ios-arm64-sim rebuilt locally with cargo against the new
rev, matching build-libkcl-mobile.yaml; lipo confirms arm64 for both.
- wasm/examples/browser/kcl.wasm had drifted from wasm/kcl.wasm and is
replaced with the same canonical artifact so the two agree.
The six go/lib binaries that #400 had already rebuilt are taken from the
release assets here, not from #400. #400 built them from kcl 3ec296a9,
which is three commits behind the v0.13.1 tag and therefore reports
version 0.13.0 and misses the a80c8a34 sema fix. These report 0.13.1.
go/lib/windows-arm64/kcl.dll keeps #400's build. It is a genuine
aarch64-pc-windows-msvc image, so it stays ahead of the release matrix,
which ships windows-amd64 only.
The v0.13.0 behaviour comments and the list_method / BuiltinService
assertions are also left alone; see the PR description for why those now
need a separate pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Peefy <xpf6677@163.com>
11 tasks done
Peefy
added a commit
that referenced
this pull request
Oct 8, 2026
Update every binding's package version and its kcl-* git dependency pins
from 0.13.0 to 0.13.1, and refresh the checked-in libkcl binaries.
Manifests (root and per-language Cargo.toml, pyproject.toml,
package.json + the eight @kcl-lib/native-* platform packages, java/kotlin
pom.xml, pubspec.yaml, gem version, build.zig.zon, CMake project version,
rockspec, KCL_VERSION, the publish workflows) all move to 0.13.1, as do
the install instructions in the READMEs. The rockspec is renamed to
kcl_lib-0.13.1-3.rockspec to match its new package_version.
c/Cargo.toml pinned kcl-api by rev as well as version, so the rev moves
842b02be -> 0e17d806 to stay consistent: at the old rev the workspace
still reads 0.13.0 and cargo would fail to resolve the 0.13.1 requirement.
This is the only rev pin in the tree.
Binaries, all sha256-verified against the sources they came from:
- kcl-lang/kcl v0.13.1 release assets (release 37631976551) for
linux-{amd64,arm64}, linux-musl-{amd64,arm64}, darwin-{amd64,arm64},
windows-amd64 and wasm32-wasip1.
- ios-arm64 and ios-arm64-sim rebuilt locally with cargo against the new
rev, matching build-libkcl-mobile.yaml; lipo confirms arm64 for both.
- wasm/examples/browser/kcl.wasm had drifted from wasm/kcl.wasm and is
replaced with the same canonical artifact so the two agree.
ruby/Cargo.lock is refreshed too. The version bump moved
ruby/Cargo.toml but not the lock, which still resolved kcl to 931e6a98 --
several releases before the tag. Every other binding's lock is
gitignored, so this is the only stale one in the tree. CI is unaffected
either way, since a plain `cargo build` re-resolves, but a --locked build
would otherwise compile the ruby extension against the wrong core.
The six go/lib binaries that #400 had already rebuilt are taken from the
release assets here, not from #400. #400 built them from kcl 3ec296a9,
which is three commits behind the v0.13.1 tag and therefore reports
version 0.13.0 and misses the a80c8a34 sema fix. These report 0.13.1.
go/lib/windows-arm64/kcl.dll keeps #400's build. It is a genuine
aarch64-pc-windows-msvc image, so it stays ahead of the release matrix,
which ships windows-amd64 only.
The v0.13.0 behaviour comments and the list_method / BuiltinService
assertions are also left alone; see the PR description for why those now
need a separate pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Peefy <xpf6677@163.com>
Peefy
added a commit
that referenced
this pull request
Oct 8, 2026
* release: bump bindings to KCL v0.13.1
Update every binding's package version and its kcl-* git dependency pins
from 0.13.0 to 0.13.1, and refresh the checked-in libkcl binaries.
Manifests (root and per-language Cargo.toml, pyproject.toml,
package.json + the eight @kcl-lib/native-* platform packages, java/kotlin
pom.xml, pubspec.yaml, gem version, build.zig.zon, CMake project version,
rockspec, KCL_VERSION, the publish workflows) all move to 0.13.1, as do
the install instructions in the READMEs. The rockspec is renamed to
kcl_lib-0.13.1-3.rockspec to match its new package_version.
c/Cargo.toml pinned kcl-api by rev as well as version, so the rev moves
842b02be -> 0e17d806 to stay consistent: at the old rev the workspace
still reads 0.13.0 and cargo would fail to resolve the 0.13.1 requirement.
This is the only rev pin in the tree.
Binaries, all sha256-verified against the sources they came from:
- kcl-lang/kcl v0.13.1 release assets (release 37631976551) for
linux-{amd64,arm64}, linux-musl-{amd64,arm64}, darwin-{amd64,arm64},
windows-amd64 and wasm32-wasip1.
- ios-arm64 and ios-arm64-sim rebuilt locally with cargo against the new
rev, matching build-libkcl-mobile.yaml; lipo confirms arm64 for both.
- wasm/examples/browser/kcl.wasm had drifted from wasm/kcl.wasm and is
replaced with the same canonical artifact so the two agree.
ruby/Cargo.lock is refreshed too. The version bump moved
ruby/Cargo.toml but not the lock, which still resolved kcl to 931e6a98 --
several releases before the tag. Every other binding's lock is
gitignored, so this is the only stale one in the tree. CI is unaffected
either way, since a plain `cargo build` re-resolves, but a --locked build
would otherwise compile the ruby extension against the wrong core.
The six go/lib binaries that #400 had already rebuilt are taken from the
release assets here, not from #400. #400 built them from kcl 3ec296a9,
which is three commits behind the v0.13.1 tag and therefore reports
version 0.13.0 and misses the a80c8a34 sema fix. These report 0.13.1.
go/lib/windows-arm64/kcl.dll keeps #400's build. It is a genuine
aarch64-pc-windows-msvc image, so it stays ahead of the release matrix,
which ships windows-amd64 only.
The v0.13.0 behaviour comments and the list_method / BuiltinService
assertions are also left alone; see the PR description for why those now
need a separate pass.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Peefy <xpf6677@163.com>
* fix(c,wasm): the v0.13.1 bump exposed two behaviour changes the tests assumed away
Both failures come from the release bump in #399, not from the guard
removal. Neither is reachable from the binding -- both need a change in
kcl-lang/kcl -- so what this commit does is stop the suite from reporting
the wrong thing, and say what the wrong thing is.
c/examples/generate_openapi_api.c asserted `strstr(spec, "\"AppConfig\"")`.
v0.13.1 qualifies a schema with the module it was declared in, so the
document carries `AppConfig___main__` and the substring never matched.
Dropping the closing quote matches either spelling.
The same file, and four siblings, each skipped when their RPC answered
with an empty reply. Those guards were dead on 0.13.1 but were never
reached before, because the example failed on the assertion first.
wasm/tests/consistency.test.ts could not read its fixture at all. It
resolved manifest paths to host absolute paths, but the instance sees a
MemFS; v0.13.1's preopen-aware loader rejects a path it cannot reach with
"Cannot find the kcl file". The file-based cases only ran because the
`new_core` skip hid them on 0.13.0. Seed the MemFS from the host instead,
and mount each fixture at the sandbox root -- that is the only location
where the module is left unmangled, so it is what makes
generate_openapi_v3 agree with the native runners.
Two cases still diverge and are recorded in WASM_DIVERGENT rather than
normalised away:
generate_proto the wasm build emits `Base` and `Address` twice, once
per reference, where the native build emits them once
generate_doc_md the wasm build titles the section `## Package` where
the native build titles it `## Package __main__`
Same core, same gitSha -- `getVersion` reports 0.13.1 at 0e17d806 on both
-- so this is the wasm32-wasip1 target disagreeing with the native one, and
no sandbox layout satisfies both RPCs. Normalising the names before
comparing would hide that; the skip names it in the run summary instead.
Verified locally:
c/examples make examples, then the CI loop over ./examples/* -- all pass
wasm npm test -- 17 suites, 145 tests, all pass
Signed-off-by: Peefy <xpf6677@163.com>
---------
Signed-off-by: Peefy <xpf6677@163.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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.
Why
The 29-case consistency suite (and any consumer of
BuiltinService.ListMethod/ theLoadPackagekcl-mod fields) cannot pass on CI for the bindings that load the committed prebuilts:go/lib/darwin-amd64, linux-amd64/arm64, both musl archives and both windows dlls all predated those RPCs — the darwin-arm64 binary was refreshed in #383, the rest were last built beforeFormatTestReportexisted. This is theload_package/list_method(and juliaFormatTestReport) failures seen on the #394-#397 stack.What
Rebuild every stale binary from kcl-lang/kcl at
3ec296a9— the revision the sub-crate Cargo locks (python/java/swift/ruby/lua/cpp) and the darwin-arm64 prebuilt already track:darwin-amd64,linux-amd64,linux-arm64:cargo (zig)build -r -p kcl-liblinux-musl-amd64/arm64:cargo zigbuild(same recipe as kcl-lang/kcl's own musl workflows)windows-amd64:x86_64-pc-windows-msvcon a windows runnerwindows-arm64: now a genuineaarch64-pc-windows-msvcimage instead of a copy of the x86_64 dll, so the dart workflow gains thewindows-11-armlegExported capi symbols verified to be a strict superset of the old binaries (0 removed); the darwin-amd64 dylib passes the full go consistency suite locally under Rosetta.
Also
dart-test/julia-test/ast-diff-testpath filters gaingo/lib/**— the FFI consumers must re-run when the prebuilt changes (go-test already covers it viago/**).Merge order: this is a base PR — the #393-#397 stack rebases over it, after which their go/dart/julia/zig legs go green.