Geno/Application notes
Blog
Releases, design decisions and engineering detail from the Geno project. Each post stands on its own; read them in any order.
| No. | Title | Topic | Date |
|---|---|---|---|
| 007 | Geno 0.5.0: main now speaks in exit codesGeno 0.5.0 makes main() -> Int your process exit status, adds named constructor arguments, and runs an Async value at most once. Here is what changed and how to migrate. | Release | 2026-10-14 |
| 006 | The playground runs the real compilerMost language playgrounds send your code to a server. Geno's runs the actual CLI inside your browser tab, with Python compiled to WebAssembly and a 600 KB bundle of the toolchain. | Tooling | 2026-10-14 |
| 005 | Examples are the specificationOrdinary Geno functions must carry at least one example clause, and geno test runs them all. Why we made examples mandatory, and what that buys you when a model writes the code. | Design | 2026-10-14 |
| 004 | Why Geno writes end funcBraces and indentation work well for people with editors. Generated code needs boundaries that survive truncation, reformatting and streaming, so every Geno block closes by name. | Design | 2026-10-14 |
| 003 | Fail closed: how capabilities workA Geno program cannot read a file, open a socket or start a process unless the command that runs it says so. Here is how capability gating works on each surface, including where it does not protect you. | Security | 2026-10-14 |
| 002 | What we measure, and what we don't claim yetGeno's compiled Python lands at a median 1.60x the time of hand-written Python across 53 measured problems. Whether models write more correct code in Geno is a question we have not answered publicly, and here is why. | Research | 2026-10-14 |
| 001 | Geno, written in GenoThe repository includes a lexer, parser, type checker and interpreter for Geno, written in about 8,400 lines of Geno. What it covers, what it does not, and why we keep it honest with a parity check. | Engineering | 2026-10-14 |
Subscribe with RSS, or watch GitHub releases.