Skip to content

v0.1.0

tagged this 25 Jul 19:28
Breaking:
- Renderer.render and friends throw (ADR 0001); call sites need `try`
- Template.binaryOperation takes an Operator, not a String
- SetterSignature.parameterName is optional (bare `set { }`)
- typed closure parameters emit their colon: `{ (x: Int) in }`

Added: Template.cast, Template.syntax, MatchPattern with guardCase/ifCase,
Operator/Precedence/Associativity, RenderError, renderExtensionDecl.

Fixed: precedence-aware parenthesisation, keyword escaping, the leaf fast
path bypassing the parse gate, a round trip inside the emitter, and 24
example files that had not compiled since render began throwing.

Performance vs a hand-rolled baseline that hoists loop invariants and
emits matching trivia, min over 3 runs in one process:
  case-path      0.67-0.69x
  generate       0.74x
  case-factory   1.00-1.02x

Three earlier claims are withdrawn in the CHANGELOG rather than edited
away: a memory figure that never reached users, ratios measured against
an unhoisted baseline, and a case-factory number that was session noise.
Assets 2
Loading