Repository navigation
Ghi 1.0.0
The first stable Ghi release: a statically typed backend language with Go-like syntax, object-oriented programming and native executables.
Language
- Classes with fields, constructors, single inheritance, overrides and visibility.
- Structural interfaces, generic functions/types and generic inheritance.
- Nullable types, enums with implicit or explicitly typed values, closures and ternary expressions.
- Typed exceptions with code, type, message and stack trace; automatic conversion of trailing Go errors.
- Namespaces, direct symbol imports and aliases.
- Goroutines, channels, switch, select and match.
- Native Go libraries and packages through Mojave.
Runtime interface assertions and type switches now enforce public-method requirements even for values stored in any. Private and protected methods cannot satisfy structural interfaces. Public inherited methods and public overrides remain usable.
Tools
ghi init, check, fmt, test, build, run, watch mode and JSON analysis are included. The compiler generates Go and builds a standalone executable. Go is installed automatically when a compatible toolchain is unavailable.
Mojave remains independently versioned at v0.1.0. The GoLand plugin is independently versioned and provides syntax highlighting, navigation, imports, formatting, diagnostics, type hover and debugging integration.
Installation
Windows: download ghi_v1.0.0_windows_setup.exe, or use the matching portable ZIP.
macOS: install with Homebrew (brew tap arm092/ghi https://github.com/arm092/ghi, then brew install arm092/ghi/ghi) or use the matching portable archive. The macOS installer build kit creates a universal .pkg on your Mac using Apple Command Line Tools.
Linux: extract the matching archive and run sh install.sh.
Archives are available for amd64 and arm64. SHA-256 hashes accompany the assets.
Compatibility
Documented valid Ghi 1.0 source remains compatible within 1.x. Incompatible source changes require a major release. Generated Go, object layout and runtime helper names remain implementation details; rebuild the full Ghi project with the selected compiler. This compiler uses the Go 1.26 language branch. Mojave and package APIs retain their independent version contracts.
See the README for the full syntax, examples and source/tool compatibility contract.