Skip to content

Compatibility reference ​

Toolchains and platforms ​

Areav0.4 contract
Go source compatibilityGo 1.23 through Go 1.27
Release compilerBuilt with Go 1.27
Full CI platformsLinux, macOS, Windows on the current toolchain matrix
Release archivesLinux amd64/arm64, macOS amd64/arm64, Windows amd64
Generated cross-buildsLinux amd64/arm64, macOS arm64, Windows amd64 with CGO disabled

Direct package import reads versioned Go export data. Support for a newer Go minor release may require a matching Kinmokusei release.

Go interop connectivity ​

Implemented

Constants, functions, variables, all Go basic types, named/alias/anonymous types, structs/fields/tags, pointers, nil, methods, multiple results, raw errors, conversions, variadics, callbacks, interfaces/assertions/type switches, generics, named collections, channels/select/goroutines/defer, target-aware loading, CGO loading, and explicit supported unsafe operations.

Package import success and symbol support are separate. Unused unsupported exports do not reject a package; used reachable shapes do. interop audit reports safe, unsafe-required, unsupported, and load-failure categories separately.

Generated Go ​

Implemented

Generated source is deterministic, formatted, standalone, buildable, and free of machine-specific paths or an unnecessary compiler runtime. Where a source type has a stable representation, public packages expose ordinary Go APIs usable from an external Go module.

Exact generated helper names are compiler-owned except where the docs explicitly state a public API. Pre-1.0 source and generated API compatibility can change with migration notes; v0.4.6 intentionally changes text contracts despite its patch version.

Outgoing C ABI ​

SupportedRejected from stable boundary
boolean, fixed-width integers, byte/uint8, floats, fixed-width native enums, voidmachine-width int/uint, strings, collections, objects/classes/interfaces, pointers, channels, errors

Gateways use status/out conventions, panic containment, explicit ASCII symbols, canonical manifests, fingerprints, and compatibility checks.

Incoming C FFI schema 1 ​

The published v0.4.4 surface includes fixed/C-width scalars, borrowed/copying strings and byte buffers, released owned strings/bytes/typed arrays, enum/POD/tagged-union values, call-scoped and registered callbacks, retained registration string/byte inputs, opaque handles, status/out errors, target link flags and thread-safe/serialized/thread-affine policies.

v0.4.6 adds typed borrowed/retained arrays, typed callback array inputs, multiple handles/call-scoped callbacks and mainThread. These extensions require a matching compiler. Unsupported or ambiguous pointer/ownership shapes are rejected before cgo generation; the checked JSON manifest is the supported input. See the manifest reference for exact combinations and lifetimes.

Behavioral compatibility evidence ​

The runtime contract registry contains 103/103 implemented Go-equivalent groups, each connected to an isolated independently handwritten Go scenario. This is contract coverage for implemented behavior, not a claim that every Go or planned Kinmokusei feature exists.

See Quality promise for the oracle and generated-artifact gates.

Kinmokusei is a pre-1.0 project. Documentation describes implemented behavior.