Language design
The full specification of Makoto, chapter by chapter.
Consolidated draft, based on the design sessions with Claude and Gemini
Name: Makoto (誠, “sincerity/truth”), chosen to name the language’s philosophy: explicitness, honest names, and not-hiding (no null, no implicit zero-value, no coloring). CLI
makoto(aliasmk); source.mko(UI.mkoui); manifestsmk.project/mk.mod/mk.sum.
- 1. Overview and philosophy
- 2. Type system
- 3. Concurrency model
- 4. Channels and inter-process communication
- 5. Memory management
- 6. Mutability and argument passing
- 7. Error handling
- 8. Resilience: supervisors, links and monitors
- 9. Interfaces
- 10. Generics and comptime
- 11. Generators (yields)
- 12. IO and async
- 13. Dispatch by type (formerly overloading)
- 14. Syntax and conventions
- 15. Module system
- 16. Strings
- 17. FFI with C
- 18. Inline assembly
- 19. Observability
- 20. Compiler extensions
- 21. Verification
- 22. Tools
- 23. ABI
- 24. What is still open
- 25. Rejected decisions
- 26. Suggested roadmap: start with the runtime
- 27. Syntax tour (the language on one page)
- 28. Reference