Ghi v0.2.4
Ghi v0.2.4
Compiler and build performance
- Specialize small inherited methods across namespaces and generic hierarchies, including concrete descendants of generic bases and nested type arguments.
- Preserve virtual dispatch,
parent, receiver aliases, closures, visibility and original exception source locations. Generated type aliases avoid capturing user-local names. - Reuse validated generated Go output in
.ghi/build, with content-based invalidation for sources, installed Ghi packages, manifests, lockfiles, compiler/toolchain settings and Go export artifacts. - Retain stable generated paths so Go can reuse unaffected packages; reuse previous output as an atomic build candidate so Go can skip unnecessary linking.
- Overlap dependency checksum verification with Ghi analysis. Verification must succeed before generated output is accepted; failures preserve the previous executable.
- Keep debug/test/editor-overlay workspaces isolated. Busy or unavailable caches fall back to temporary compilation.
- Improve missing-record handling in the DDD example without constructing an intermediate native exception.
Measurements
Windows amd64, Core i9-13900HX, Go 1.26.3; local medians, not cross-platform guarantees:
| Workload | Before | After |
|---|---|---|
| Generic inheritance, concrete descendant | 3.838 ns/op | 1.140 ns/op |
| Generic inheritance, generic descendant | 4.243 ns/op | 1.057 ns/op |
| DDD build, unchanged sources | 3.987 s | 2.095 s |
| DDD build, one edited service | 3.822 s | 2.934 s |
Generic call fixtures allocate zero bytes per operation. Ghi still performs project-wide semantic checking after source edits. Methods that rebind/address this, oversized bodies and inaccessible declarations retain shared implementations. Debug builds disable receiver specialization. See the English README and raw benchmark samples for methodology and limitations.
Downloads
- Windows: native x64/ARM64 Setup, or portable archives.
- macOS: Intel and Apple silicon portable archives, or Homebrew using the updated repository formula. The installer kit builds an unsigned universal
.pkgon a Mac with Xcode Command Line Tools; a native v0.2.4.pkgis not supplied. - Mojave remains independently versioned at v0.1.0.
- SHA-256 checksums accompany the archives, installer and macOS installer kit.
Verification
The complete Go test suite and go vet passed. The packaged Windows amd64 CLI passed version/setup, project initialization, repeated execution and DDD unit/integration tests. All eight bundled binaries have verified target architectures, and archive contents/checksums were verified. Native Windows ARM64, macOS installation and Homebrew runtime checks were not performed on this Windows host. The Windows installer was compiled successfully; native macOS/Homebrew verification remains deferred. No paid GitHub Actions were used.