Community

Where kaikai happens

The project is young and developed in the open. There is no forum or chat yet: everything happens in the repositories and on the blog.

The code

The language, the libraries and this site live in the GitHub organisation. The compiler repository is kaikailang-org/kaikai: the self-hosted compiler, the runtime, the stdlib and the design documentation are all there.

Issues are open and are the main way to report. A useful report carries the output of kai --version and the smallest program that reproduces the problem; if the compiler accepts something it should not, or rejects something it should not, that minimal case is half the fix.

The book

Effective Programming with kaikai is written alongside the language, in English and Spanish, and can be read online or downloaded as a PDF. It is a living draft: each version is validated against the compiler of the moment, so the examples it carries are the ones that actually run.

Its repository is kaikailang-org/kaikai-book, and corrections to the text are welcome as issues too.

The blog

The design decisions —why algebraic effects, why reference counting instead of a collector, what was tried and discarded— are written up at lnds.net.

Project status

kaikai is pre-1.0 and on the Hanga Roa edition. Within an edition the language surface stays stable, so upgrading means reading the release notes, running kai upgrade, and recompiling. Breaking changes are saved for the crossing into the next edition.

The 1.0 label is postponed on purpose: the goal is for it to arrive when the surface is pinned, not on a date.

Acknowledgments

kaikai owes its shape to languages that answered the same questions first: algebraic effects and their row checking come from the Koka and Effekt line; Perceus reference counting, from the research Koka published; type inference, from the ML tradition; structured concurrency, from the nurseries Trio popularised; the edition model, from Rust's stability manifesto; and the distribution model, from Go.