v0.1.0-next
v0.1.0-next
Prerelease
This release is still in development and has not been tagged yet.
This release introduces explicit mutability, a unified function and closure syntax, first-class type hints with is/switch matching, and dedicated keywords for attributes and declarations. Together these changes significantly reshape the language surface from v0.0.1.
Breaking Changes
modulekeyword renamed tomod.letreplaced byconst(immutable) andvar(mutable). Migrate existingletdeclarations toconst.funckeyword renamed tofn. Closures changed fromfunc name { args -> body }and{ args -> body }tofn name(args) { body }andfn(args) { body }.
Implemented Proposals
- ZE-001 Base Language — Core language: declarations, expressions, operators, control flow, modules, imports, literals, and attributes.
- ZE-011 Zirric CLI — Single
zirricbinary withrun,repl,lsp,init,install, task management, and project commands. - ZE-013 Mutability and Constants — Replace
letwithconstandvarfor explicit mutability. Upvalue-based closure captures. - ZE-014 Attribute and Declaration Keywords — Dedicated
attrkeyword and mandatory parentheses for attribute application. - ZE-016 Unified Function and Closure Syntax — Closures use
fn(params) { body }, unifying named and anonymous function syntax. - ZE-017 Type Hints and Type Matching — First-class type hints (
: T,-> T), composite type expressions ([T],[K: V],fn() -> R),istype checking, andswitchtype matching. - ZE-008 Error Handling — Standardized
ResultandAnyResultunion types for failure-aware APIs inprelude/result.zirr. - ZE-009 Option Values — Standard
Optionaltype for values that may be present or absent, defined inprelude/result.zirr. - ZE-018 I/O, Formatting, and OS — New
io,fmt, andosstandard library modules for byte streams, text formatting/printing, and OS interaction (stdout, stdin, stderr, exit, env, args).
Tooling
- Update Tree-Sitter-Zirric to v0.4.0 and update your queries as described in Editor Support.
- Language documentation is now available at zirric.knabel.dev.
- The Zirric Language Server (
zirric lsp) provides diagnostics, go-to-definition, and basic completions for editors.
Check out the full changelog on code.knabel.dev/zirric-lang/zirric.