Skip to content

chore(main): release morrow 0.2.0 - #2

Open
niklas-heer wants to merge 1 commit into
mainfrom
release-please--branches--main--components--morrow
Open

niklas-heer wants to merge 1 commit into
mainfrom
release-please--branches--main--components--morrow

Conversation

@niklas-heer

Copy link
Copy Markdown
Collaborator

🤖 I have created a release beep boop

0.2.0 (2026-09-15)

⚠ BREAKING CHANGES

  • adopt .mr source files throughout the toolchain
  • rename workspace packages and CLI to morrow
  • rust: infer private returns and define runtime boundary failures
  • runtime: Directory listing callers must handle or propagate the Result. This unreleased migration must not ship as a backward-compatible patch or minor release.
  • runtime: Result type representation changed from packed int64 to heap-allocated struct.

Features

  • actors: execute bounded typed native continuations (330d895)
  • add 🌿 branding and emoji file extension support (1526ce2)
  • add actor-owned heaps and an offline WebAssembly preview (696a1a4)
  • add an authenticated system dashboard (f76fd57)
  • add automation scripts for Ralph Loop (cfa24a6)
  • add complete Fern language design specification (763868f)
  • add deterministic resilience simulations and a richer WASM demo (3be4025)
  • add plain text demo (no color codes for nushell compatibility) (a04cc37)
  • add Ralph Loop autonomous development system (990b2f9)
  • add ralph-demo.sh to demonstrate the Ralph Loop workflow (9071be7)
  • adopt .mr source files throughout the toolchain (ca4d1bc)
  • backend: integrate Cranelift through shared typed lowering (d5fdb36)
  • benchmarks: add Fern vs C vs Python benchmark suite (a9cefad)
  • bootstrap: enforce native checker diagnostic parity in CI (14eab30)
  • bootstrap: execute native quality workflows with bounded argv (ff73c1f)
  • brand: add the Morrow sunrise logo (bd1a5e0)
  • build: ship the Rust compiler as the default fern (746ede4)
  • build: use embedded QBE backend instead of external binary (1109be5)
  • checker: add let statement type checking with inference (0b0865e)
  • checker: add match expression type checking (1da24bf)
  • checker: add Ok/Err value constructors and improve error locations (df131da)
  • checker: add source location to type error messages (5a08ff0)
  • checker: add try operator (?) type checking (3d4ea49)
  • checker: add type checking for calls, if, and blocks (8fd3991)
  • checker: add type checking for STMT_FN, STMT_TYPE_DEF, EXPR_LIST_COMP, EXPR_INTERP_STRING (ccd3a83)
  • checker: implement constructor pattern binding for Option and Result (c9a1813)
  • checker: implement generic type instantiation with unification (3a5e872)
  • checker: implement type checker for expressions (e150877)
  • checker: implement type checking for bind, with, lambda, for, index, and pipe (3956cb2)
  • checker: implement type checking for dot, range, and map expressions (cc414ae)
  • checker: prove bounded recursive Result builder contracts (f973cff)
  • checker: prove recursive Result child traversal (af2fd0a)
  • checker: prove Result handling across reachable paths (ff5e012)
  • check: prove mutual structural Result handlers (d276214)
  • cli: add -o/--output flag for build command (efcdcb8)
  • cli: add bounded lex and parse inspection commands (92ed8bc)
  • cli: add colored error messages (f43e248)
  • cli: add run, lex, parse commands and improve help (3fc00a3)
  • cli: check canonical formatting without modifying source files (e32b41e)
  • cli: document emoji file extension support (.🌿) (a08e0e2)
  • cli: open documentation after atomic HTML publication (7d74c90)
  • cli: preserve output controls and literal run arguments (5ca4996)
  • cluster: connect fixed room owners through authenticated peers (472d30c)
  • codegen: add defer statement code generation (2549b18)
  • codegen: add for loop code generation (96f1b45)
  • codegen: add runtime integration for Result, List, and ? operator (f4911ac)
  • codegen: add with expression code generation (d96347e)
  • codegen: implement pipe operator for Tui builder pattern (0406018)
  • codegen: implement proper pointer type handling for functions (e1eaa5e)
  • codegen: implement QBE code generation (Milestone 4) (0e9b265)
  • codegen: implement string interpolation (11ce99a)
  • compiler: evaluate safe Rust frontend with typed IR (565068c)
  • compiler: implement fern build command with full compilation pipeline (7cff339)
  • complete Milestone 0 - Project Setup (7552cb3)
  • complete the Rust workspace migration (ed80f6e)
  • diagnostics: suggest nearest names and list missing match cases (8d9609c)
  • doc: generate HexDocs-style documentation sites from @moduledoc/@doc (0edf09d)
  • editor: add Tree-sitter grammar and Zed extension with indentation support (daf522d)
  • editor: generate and verify indentation-aware parser artifacts (c545bac)
  • editor: navigate source labels and verify labeled-call grammar (836439e)
  • editor: parse unions and typed narrowing in native and wasm grammars (f3430c5)
  • editor: stage reproducible Zed packages and discover the Rust language server (aa5fa0e)
  • editor: verify control and collection syntax in native and wasm parsers (354a677)
  • examples: add string interpolation example and test target (dbec273)
  • examples: add TUI demo showcasing Panel, Table, Style (a257320)
  • execute durable Fern applications across native actors and WebAssembly (4024923)
  • file: add directory listing functions (57f90d1)
  • format: validate and format bounded source directories (aa5c8a7)
  • io: make print/println polymorphic (Int, String, Bool) (726311c)
  • json: accept bounded inline union decoder targets (05c4d27)
  • json: derive bounded typed codecs for records and containers (20f3cb0)
  • json: derive tagged sum codecs with finite schemas (e941786)
  • json: derive transparent newtype codecs with editor support (5b02ec6)
  • json: retain conditional codecs through generic specialization (4ce8689)
  • json: select disjoint union codecs before decoding (bbde904)
  • json: validate finite recursive codec graphs (8396ea6)
  • lang: add built-in module system (String, List, File) (879f2fc)
  • lang: add range iteration and System module type support (eea0c23)
  • lang: add System module for CLI argument access (bb1b404)
  • lang: add System.exec, getenv/setenv and Regex module (3d0a35e)
  • lang: allow omitting return type for main() (65feb19)
  • language: add traits, comptime, FFI and resumable actors (13ba895)
  • language: preserve source labels and written argument evaluation order (7136f13)
  • language: require stable labels for Boolean and repeated parameter types (0d18e3a)
  • lexer,parser: implement derive clause on type definitions (e725520)
  • lexer,parser: implement float literal lexing and parsing (0b68167)
  • lexer,parser: implement inclusive range operator (..=) (d760e08)
  • lexer,parser: implement lambda/anonymous function expressions (2249811)
  • lexer,parser: implement loop constructs (8dad7a8)
  • lexer,parser: implement postfix unless for return statements (77802d8)
  • lexer,parser: implement record update syntax ({ base | field: value }) (dafe27a)
  • lexer,parser: implement string interpolation (1d608bb)
  • lexer,parser: implement where clauses on function definitions (57f94ff)
  • lexer: add block comment support (/* */) (0277001)
  • lexer: add Python-style indentation tracking (4652111)
  • lexer: add Unicode and emoji identifier support (dcb3bb7)
  • lexer: handle string escape sequences (22eb129)
  • lexer: implement core lexer (TDD - GREEN phase) (f643454)
  • lexer: implement hex, binary, and octal number literals (d860d20)
  • list: add 'in' operator and List.any/List.all functions (daf30ca)
  • lsp: complete source labels in unfinished calls (88437ff)
  • lsp: expose canonical document formatting (aa20baf)
  • lsp: implement Language Server Protocol with diagnostics and hover (bc8edd0)
  • modules: add Tui.* nested module namespace support (3647bc1)
  • packaging: add verified relocatable Rust previews (73430ee)
  • parser: add dedent tracking for proper block termination (4074344)
  • parser: add indentation support to control structures (f2353dc)
  • parser: add tuple type support in type annotations (34590d9)
  • parser: complete executable source migration parity (eb17095)
  • parser: implement ? operator for Result propagation (Decision 11) (196428b)
  • parser: implement <- bind operator parsing (5d1a089)
  • parser: implement block expression parsing (d31a1c8)
  • parser: implement condition-only match (match: without value) (589fdac)
  • parser: implement constructor patterns and unified parse_pattern (83bd1c1)
  • parser: implement defer statement parsing (c7911f7)
  • parser: implement dot access expressions (f4381e9)
  • parser: implement function definition parsing (14ca62e)
  • parser: implement if expression parsing (TDD - GREEN phase) (3e725f3)
  • parser: implement indentation-based function body parsing (834357a)
  • parser: implement index access expression parsing (7f9dbb7)
  • parser: implement labeled function arguments (83665c4)
  • parser: implement let-else pattern for early unwrapping (15ce681)
  • parser: implement list comprehensions (d3fd32a)
  • parser: implement list literal parsing (b6a8014)
  • parser: implement map literal parsing (%{ key: value }) (562e331)
  • parser: implement match arm guards (pattern if condition -> body) (8f92b98)
  • parser: implement match expression parsing (46c4723)
  • parser: implement module and import declaration parsing (307f2be)
  • parser: implement module declaration parsing (d268896)
  • parser: implement modulo (%) and power (**) operator parsing (2c0a014)
  • parser: implement multi-clause function definitions (33c86e2)
  • parser: implement newtype declaration parsing (28e85f0)
  • parser: implement optional type annotations for let statements (b9928f6)
  • parser: implement postfix if/unless on expression statements (f7d389a)
  • parser: implement postfix return guards (return x if condition) (cd1daa1)
  • parser: implement range expression parsing (478e07c)
  • parser: implement recursive descent parser (TDD - GREEN phase) (2dbf451)
  • parser: implement rest patterns in destructuring (91edeac)
  • parser: implement spawn, send, and receive expression parsing (80180d7)
  • parser: implement trait and impl block parsing (96d0528)
  • parser: implement tuple field access (.0, .1) (e302fd4)
  • parser: implement tuple literal parsing (2adad9f)
  • parser: implement tuple/constructor destructuring in let bindings (a52f270)
  • parser: implement type annotation parsing (12208d8)
  • parser: implement type definition parsing (658fb3b)
  • parser: implement where clause on trait definitions (480f39f)
  • parser: implement with expression parsing (b744b75)
  • print structured values via Show, add list utilities and checked arithmetic (f5ad4b5)
  • protocol: standardize measured protobuf browser and peer transport (32003e4)
  • repl: add interactive REPL with line editing and history (c9cc878)
  • roadmap: add FernSim deterministic actor simulation testing (2013225)
  • runtime: add bounded immutable JSON values (e2ae7e1)
  • runtime: add bounded process capture and fallible stderr (d93fab4)
  • runtime: add comprehensive List functions (590ae03)
  • runtime: add comprehensive String functions (061a934)
  • runtime: add Fern runtime library (ef6ccfa)
  • runtime: add fern_str_lines() function (d95ea51)
  • runtime: add GC header for Boehm GC integration (3ad35f8)
  • runtime: add List.contains functions for membership testing (fa2bdc7)
  • runtime: add Result and Option type functions (85f4abf)
  • runtime: report directory listing failures as Results (5cb8bbc)
  • rust: add immutable maps and record updates (c63e5da)
  • rust: add lazy iteration and typed with error handlers (0609ad2)
  • rust: add numeric operators, rich literals and runtime fault cleanup (7ce808f)
  • rust: add sequence patterns and composable block expressions (b9da324)
  • rust: add source definitions and scoped editor completion (52e29dc)
  • rust: add typed collections matching and Result propagation (2845197)
  • rust: add typed function clauses and eliminate direct self-tail calls (056495e)
  • rust: compile typed applications and add interactive tooling (f356328)
  • rust: evaluate immutable JSON values in the REPL (a1d4730)
  • rust: execute checked native documentation examples (ce4175c)
  • rust: execute source-owned unit tests with checked entries (ff25a4d)
  • rust: expand transparent type aliases before checking (f18f548)
  • rust: expose typed immutable JSON values and native adapters (e7ba0c3)
  • rust: generate checked inferred documentation signatures (0528e7f)
  • rust: generate searchable directory documentation (8c991f6)
  • rust: generate source documentation with the parser (b030a88)
  • rust: implement distinct newtypes with unboxed native representation (2acef36)
  • rust: implement finite unions and typed narrowing (4bba6a4)
  • rust: infer complete private function signatures (af4daa3)
  • rust: infer private parameter types from clause patterns (edb8a7e)
  • rust: infer private returns and define runtime boundary failures (85f5d54)
  • rust: lift closures and execute typed higher-order calls (51bc1ac)
  • rust: preserve early exits and function-owned deferred cleanup (4383a20)
  • rust: recover checked completion for incomplete member access (5fe011f)
  • rust: resolve delayed private signature shapes (930aec6)
  • rust: separate module type and value namespaces (a6fb7b2)
  • rust: show checked types and documentation in editor hover (ea793a5)
  • scripts: add Fern style checker scripts (11cc15c)
  • scripts: enhance check_style.fn with build/test verification (b644462)
  • shard room workers and sustain native actor lifecycles (f80f55a)
  • show resident and peak server memory in the dashboard (a15d4d8)
  • sql: add bounded connection lifecycle and explicit close (a4b436f)
  • stdlib: add built-in string and list functions (8eddaa6)
  • stdlib: add file I/O functions to runtime (20dcd5c)
  • stdlib: add non-faulting List.at/first/last/take/drop and Int.parse (717b379)
  • stdlib: add runtime library with print/println functions (2294a4d)
  • stdlib: register additional built-in functions (293d73c)
  • stdlib: sort structured elements through Ord, quote shown strings, print generics via Show (0b23ec6)
  • string: add index_of, char_at, and join to String module (ec5db9e)
  • string: add string_append_cstr for concatenating with C strings (2293c65)
  • string: classify Unicode decimal text with pinned bounded tables (0ca35cd)
  • style: add doc comment and tagged union validation (2eda7c2)
  • style: add FERN_STYLE checker and Makefile targets (4bde372)
  • style: add git hygiene and improve style checker (99c723f)
  • style: add uv support and rich TUI to style checker (eae5038)
  • system: add cwd, chdir, hostname, user, home functions (0a2f5d9)
  • test: run @doc examples via fern test --doc (0db0e53)
  • tooling: complete Rust CLI REPL and LSP compatibility (bd2ba5c)
  • tooling: make the native quality checker the default (1fd56dd)
  • tui: add editable prompts trees logs and cursor controls (db5c434)
  • tui: add Panel and Table modules for terminal UI (c8abb2c)
  • tui: add Progress and Spinner modules (Phase 2) (29b6324)
  • tui: add Prompt module for user input (Phase 3) (c5b01b4)
  • tui: add Status badges, Live module, and color palette (665f61b)
  • tui: add Term and Style modules for terminal UI (cfe0d20)
  • tui: rename Prompt module to Tui.Prompt (4fecc75)
  • type: implement type representation and type environment (31176bf)
  • types: make print/println return Unit and support () expressions (6a49bb0)

Bug Fixes

  • actors: enforce lifecycle invariants and reject unsupported execution (848882a)
  • actors: promote expired timers at cooperative boundaries (2d8c5fb)
  • actors: stop descendants before fallible exit notifications (8ffffbb)
  • arena: prevent memory corruption in large allocations (edca02a)
  • ast: add missing stdint.h include for Linux CI (1aec627)
  • ast: remove extra semicolons from VEC_TYPE macros and simplify expr_call (e9e7b5e)
  • backend: preserve NaN bits in QBE transport (a54a32f)
  • bootstrap: match Unicode decimal prefixes in command arguments (ca1d386)
  • bootstrap: preserve immutable checker state across frontends (2080884)
  • bootstrap: preserve private caches and portable native checks (10c19a3)
  • checker: use unify for let statement type checking (537053f)
  • checkpoint: release writer locks across inherited descriptors (9b7d3a0)
  • ci: add missing stdint.h include to test_arena.c (98489fd)
  • ci: add POSIX defines to runtime and libgc to lint job (0a61141)
  • ci: install Boehm GC dependency for build (2732076)
  • cli: support installed compilers and safe native build paths (d8e2e6b)
  • codegen: handle early return inside nested if blocks (64a117c)
  • codegen: handle pointer return types from built-in functions (ef18785)
  • codegen: improve type handling for tuples and string interpolation (a886a41)
  • codegen: preserve string bytes and semantic print types (7615074)
  • codegen: track pointer types for correct QBE type widths (6876dbc)
  • codegen: use correct QBE type for list element push (e4c940b)
  • codegen: use pointer types for list elements and Result unwrap (c1a4346)
  • correct budget understanding - Max Plan provides UNLIMITED usage (dcb2ecb)
  • editor: parse native numeric literal spellings (742a21d)
  • editor: pin typed JSON grammar in the Zed package (08e03cc)
  • editor: pin verified numeric grammar in the Zed package (8194e35)
  • editor: pin Zed to verified label and recovery grammar (e1b8624)
  • editor: pin Zed to verified newtype derivation grammar (e81e13b)
  • editor: recover declarations after malformed inline control headers (6d4efbb)
  • errors: add POSIX_C_SOURCE for fileno() in strict C11 (27db62b)
  • isolate supervised children from inherited file descriptors (741eb25)
  • lexer: handle literal braces in strings correctly (1384b7e)
  • lexer: ignore indentation inside brackets/parens/braces (20bc3b7)
  • lexer: restore complete state after speculative reads (b29ece0)
  • lexer: save/restore all state in lexer_peek (20e400b)
  • linenoise: add POSIX_C_SOURCE for strdup/fileno/fchmod (d234fbb)
  • linenoise: add strings.h and BSD defines for strcasecmp (3d3be14)
  • make ralph-iteration.sh portable (remove head -n -1) (2174c31)
  • make ralph-test.sh portable (use sed instead of head -n -1) (ec3d328)
  • native: bound literal linker and capture frame decoding (d9f13cb)
  • native: preserve literal GC library directory metadata (1ebc16d)
  • parser: add TOKEN_WITH to can_start_block_expr (35dc65d)
  • parser: allow match expressions inside for loops (00c0c9c)
  • parser: parse None as constructor pattern for Option matching (6a11459)
  • parser: preserve multiline match and conditional scopes (f12e65c)
  • parser: prevent postfix if from consuming if keywords after dedent (9ac13e0)
  • parser: support inline if expressions in let bindings (6298638)
  • parser: support multi-line match arms without commas (51c71d2)
  • parser: track newlines to prevent tuple-as-call-args bug (86542f3)
  • qbe: add POSIX_C_SOURCE for fmemopen() in strict C99 (a31d56d)
  • qbe: respect Apple arm64 reserved registers (9ba5330)
  • regex: retain absent optional capture slots (1a7945d)
  • release: validate artifact metadata and extract one version (b8d8dd0)
  • runtime: align Option representation between codegen and runtime (fecc68b)
  • runtime: execute argument vectors without shell reconstruction (c4d3295)
  • runtime: use heap-allocated Option to support 64-bit pointers (87abf8a)
  • runtime: use heap-allocated Result to support 64-bit values (c9e2e72)
  • runtime: validate bounded file text and report late IO failures (8122df6)
  • rust: preserve resolved module identities through checking (29d5576)
  • rust: validate generic bodies and propagate intrinsic constraints (5fd1840)
  • style: add FERN_STYLE exceptions and fix void return detection (99071ca)
  • style: handle multi-rule FERN_STYLE allow comments (899166e)
  • style: handle static void and variadic params in checker (7105d5f)
  • test: avoid freshly written executable races in capture fixtures (fc440a9)
  • test: expose POSIX declarations for strict Linux builds (3012681)
  • test: retain native child identity through capture cleanup (e96205a)
  • tui: Panel ignores empty string titles (82735cd)
  • tui: Panel renders multi-line content correctly (f020b20)

Performance Improvements

  • compiler: optimize bounded native list callbacks (48ca830)
  • compiler: optimize constant arithmetic and integer tail loops (b6bdabb)
  • runtime: reuse native callback GC frames (7f53818)

Code Refactoring

  • rename workspace packages and CLI to morrow (fc094c8)

This PR was generated with Release Please. See documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant