Releases: assapir/quilon
Release list
Quilon VS Code Extension 0.9.2
What's Changed
- chore(vscode): prepare extension for first Marketplace publish by @assapir in #99
- ci: scope Release trigger to compiler tags, not vscode-v* by @assapir in #131
- One atomic ensure_runtime_lib, and a check on the registry's blind side by @assapir in #132
- Fix #98: register the JIT's thread with the collector (the flaky SIGABRT) by @assapir in #134
- Concurrency runtime step 2: non-blocking TCP socket I/O on the reactor by @assapir in #133
- Perf: share a record type's declaration instead of copying it into every Type (#123 item 4) by @assapir in #135
- docs: move LANGUAGE.md into docs/ and fix all references by @assapir in #137
- Fix: a top-level binding that has to be computed is a clear error, not a corrupt module by @assapir in #139
- Perf: don't emit functions unreachable from the entry point (#123 item 5) by @assapir in #141
- docs: set language tagline in README by @assapir in #140
- Concurrency runtime — the @sleep leaf IO primitive (pause) by @assapir in #145
- Fix:
quilon build --debugmodule-verification failure on@-primitive programs by @assapir in #148 - README: add a short "Principles" section (DRAFT — parked for review) by @assapir in #147
- Deferred values + @readStdin: the value-returning half of colorless implicit futures by @assapir in #149
- Failing assertions report the caller's file:line:column (#65) by @assapir in #152
- docs: one md per corelib module (docs/corelib/*.md), indexed from LANGUAGE.md by @assapir in #155
- feat(sum): named record as a sum-variant payload (M4) by @assapir in #156
- Fail-loud runtime failures report where they happened (#153) by @assapir in #158
- CI shows benchmark deltas against the previous run (#162) by @assapir in #163
- core.net @tcpRequest socket primitive: deferred-Text request exchange by @assapir in #159
- Built-in Map and Set collections (pipe-fence [|K => V|] / [|T|]) by @assapir in #160
- Spell out abbreviated AST node/field names by @assapir in #161
- Docs: say it once, plainly (concision, corelib rename, usage-first) by @assapir in #165
- docs: ROADMAP corelib rename + status refresh by @assapir in #167
- core.net: @tcpRequest returns a fail-soft deferred Result, plus response cap & arity match by @assapir in #169
- The compiler's own definitions are overload members, not reserved names by @assapir in #170
- Quilon source files are
.qnby @assapir in #174 - Release 0.9.2 "Hegemon" by @assapir in #176
Full Changelog: vscode-v0.9.1...vscode-v0.9.2
What's Changed
- Map/Set: persistent remove by @assapir in #171
- docs: operators + precedence in LANGUAGE.md (#179) by @assapir in #180
- Operator overloading moves into the type by @assapir in #178
- quilon build binaries are self-contained: statically link the Boehm GC by @assapir in #181
- Debug info: name the entry frame
^and step into corelib functions by @assapir in #186 - Map/Set: user-defined key types (% hash hook + ==) by @assapir in #189
- CI: build and test on macOS and Arch Linux; make the AOT link line portable by @assapir in #185
- Entry-point env delivered as a
[|Text => Text|]Map by @assapir in #197 - First-class higher-order functions by @assapir in #196
- Debugging: locate the compiler, and record absolute source paths (#200) by @assapir in #201
Full Changelog: v0.9.2...vscode-v0.9.2
Quilon v0.9.2 "Hegemon"
What's Changed
- Remove "Phase N" framing from debugging docs and comments by @assapir in #113
- Fix #14: an overload member's signature is fixed at its definition by @assapir in #112
- String interpolation / format strings (Fixes #101) by @assapir in #108
- Source-level debugging: DWARF local variables and types by @assapir in #109
- Refactor: split generator.rs into per-area modules + one builder-error helper by @assapir in #115
- Refactor: split checker.rs, delete the dead scaffolding, de-reserve if/while by @assapir in #117
- Uniform Result layout: any payload crosses a generic
(r :: Result)by @assapir in #116 - Refactor: split ast_parser.rs; a functional update may name its type by @assapir in #119
- Docs: colorless-concurrency model + reprioritized roadmap (parallelism → web) by @assapir in #122
- Refactor: one shared test harness; compile the crate once by @assapir in #121
- Perf: a compile-speed benchmark, published by CI by @assapir in #124
- Release codenames: switch theme to the Enderverse; 0.9.2 = "Hegemon" by @assapir in #126
- Perf: type-check once — the front end hands its table to codegen by @assapir in #127
- Refactor: split quilon-rt into focused modules (mem/io/text/process) by @assapir in #125
- Perf: a second benchmark family — generated-code speed, command latency, memory by @assapir in #128
- Concurrency runtime step 1: single-threaded fiber + reactor substrate by @assapir in #129
- Refactor: one registry for the runtime intrinsics, and a link gate that fails deterministically by @assapir in #130
- chore(vscode): prepare extension for first Marketplace publish by @assapir in #99
- ci: scope Release trigger to compiler tags, not vscode-v* by @assapir in #131
- One atomic ensure_runtime_lib, and a check on the registry's blind side by @assapir in #132
- Fix #98: register the JIT's thread with the collector (the flaky SIGABRT) by @assapir in #134
- Concurrency runtime step 2: non-blocking TCP socket I/O on the reactor by @assapir in #133
- Perf: share a record type's declaration instead of copying it into every Type (#123 item 4) by @assapir in #135
- docs: move LANGUAGE.md into docs/ and fix all references by @assapir in #137
- Fix: a top-level binding that has to be computed is a clear error, not a corrupt module by @assapir in #139
- Perf: don't emit functions unreachable from the entry point (#123 item 5) by @assapir in #141
- docs: set language tagline in README by @assapir in #140
- Concurrency runtime — the @sleep leaf IO primitive (pause) by @assapir in #145
- Fix:
quilon build --debugmodule-verification failure on@-primitive programs by @assapir in #148 - README: add a short "Principles" section (DRAFT — parked for review) by @assapir in #147
- Deferred values + @readStdin: the value-returning half of colorless implicit futures by @assapir in #149
- Failing assertions report the caller's file:line:column (#65) by @assapir in #152
- docs: one md per corelib module (docs/corelib/*.md), indexed from LANGUAGE.md by @assapir in #155
- feat(sum): named record as a sum-variant payload (M4) by @assapir in #156
- Fail-loud runtime failures report where they happened (#153) by @assapir in #158
- CI shows benchmark deltas against the previous run (#162) by @assapir in #163
- core.net @tcpRequest socket primitive: deferred-Text request exchange by @assapir in #159
- Built-in Map and Set collections (pipe-fence [|K => V|] / [|T|]) by @assapir in #160
- Spell out abbreviated AST node/field names by @assapir in #161
- Docs: say it once, plainly (concision, corelib rename, usage-first) by @assapir in #165
- docs: ROADMAP corelib rename + status refresh by @assapir in #167
- core.net: @tcpRequest returns a fail-soft deferred Result, plus response cap & arity match by @assapir in #169
- The compiler's own definitions are overload members, not reserved names by @assapir in #170
- Quilon source files are
.qnby @assapir in #174 - Release 0.9.2 "Hegemon" by @assapir in #176
Full Changelog: v0.9.1...v0.9.2
Quilon VS Code Extension 0.9.1
The Quilon VS Code extension brings first-class editor support for .ql files.
What's included
- Syntax highlighting for Quilon's symbol-based syntax (
^,<<,>>,|>, pattern matching, and more). - Inline diagnostics — lexer, parser, and type-checker errors surfaced directly in the editor as you work.
- Run / Check / Debug CodeLens — one-click actions above your entry point to run, type-check, or debug the current program.
- CodeLLDB debug integration — set breakpoints, step through Quilon programs, and inspect state, with custom value formatters for Quilon's runtime types.
Install
Download quilon-0.9.1.vsix from this release, then:
code --install-extension quilon-0.9.1.vsix
Or, from within VS Code: open the Extensions view, click the "…" menu, and choose "Install from VSIX…", then select the downloaded file.
Marketplace listing coming soon.
Quilon v0.9.1 "Towel"
What's Changed
- Replace
mutkeyword with:=operator (mutable bind/assign) by @assapir in #21 - VS Code extension: syntax highlighting + editor tasks by @assapir in #22
- M1: Better human errors (file:line:col + source context) by @assapir in #23
- M1: VS Code extension → TypeScript + publishing pipeline by @assapir in #24
- M1: Unit type
$by @assapir in #25 - M2: In-place field writes + setter methods (
:=records) by @assapir in #26 - M1: VS Code extension —
$highlighting + inline diagnostics by @assapir in #27 - M2: User-defined sum types (
/separator) by @assapir in #28 - Switch VS Code extension to pnpm by @assapir in #29
- Extension: Run/Check CodeLens above
^entry point by @assapir in #30 - Fix extension grammar: multi-char operators (
=>,->, …) highlight as one token by @assapir in #31 - M2: Explicit ad-hoc overloading (operators + Text comparison) by @assapir in #32
- M3: Ranges (infix
<-, inclusive,4<-1descends) by @assapir in #34 - M3: Text-in-composite codegen (type-oracle side-table) by @assapir in #35
- M3: Closures (
=by-value /:=by-reference capture) by @assapir in #36 - M3: Guaranteed self-tail-call optimization (loop lowering) by @assapir in #37
- M3: Array methods (map/filter/reduce/each/find/at) by @assapir in #40
- Fix #38: deterministically place libquilon_rt.a for
quilon buildby @assapir in #41 - M3:
^entry point receives args:[]Text and env:[][]Text by @assapir in #39 - M3: Remove the
forloop (iterate via array methods + recursion) by @assapir in #42 - M3:
<-spread operator (array spread + record update) by @assapir in #43 - Fix #44: JIT/AOT argv parity (
quilon runargs mirror native) by @assapir in #46 - docs: durable ROADMAP + ORCHESTRATION (plan + multi-agent process) by @assapir in #47
- Concrete Result payload typing (Ok/NotOk bind usable values) by @assapir in #53
- Array concatenation via
+([]T + []T → []T, append, prepend) by @assapir in #51 - Fix #33: block-closing
>highlights as block punctuation, not error by @assapir in #55 - docs: M7 optimization-levels + example/code-hygiene conventions by @assapir in #59
- Update all dependencies to latest by @assapir in #61
- core.test module (assert / assertEq / assertNotEq / assertOk / assertNotOk) by @assapir in #63
- docs: Design principles (LANGUAGE) + M7 hover-docs (ROADMAP) by @assapir in #62
- Text methods: split/trim/trimStart/trimEnd/replace/contains/indexOf/slice/toUpper/toLower by @assapir in #52
- core.cli: getEnv / hasFlag / getOpt (pure-Quilon argv/env helpers) by @assapir in #66
- Fix #68: per-function codegen state leaked across function emissions (silent miscompilation) by @assapir in #79
- Fix #70: reject refutable sub-patterns in constructor patterns (silent wrong-arm matches) by @assapir in #80
- Fix #71: make && and || short-circuit as documented by @assapir in #81
- Fix #73: implement % (modulo) in codegen by @assapir in #89
- Embed the runtime archive (gzip) in the quilon binary so
quilon buildworks from a distributed binary by @assapir in #90 - Fix exponential argument re-inference in check_call (checker hung on ~25-deep pipelines) by @assapir in #86
- Make all examples self-asserting; simplify examples gate (#56) by @assapir in #91
- Line-first
(/[/{begins a new statement (fix cross-line call/index/constructor fusion) by @assapir in #92 - Checked array indexing: invalid arr[i] aborts with a clear runtime error by @assapir in #84
- Add Classpath-style runtime-library exception to quilon-rt by @assapir in #94
- Fix: array/range literals in tail-recursive loops overflow the stack (#67) by @assapir in #95
- Fix #76: bound parser recursion depth (deep nesting fails loud, no stack overflow) by @assapir in #96
- Embed "Built with Quilon" watermark in native binaries by @assapir in #97
- Source-level debugging (Phase 1): DWARF line info +
quilon build --debugby @assapir in #102 - Validate & prune Known Limitations by @assapir in #107
- Fix #12/#52: source positions carry file identity, so a module's types stay its own by @assapir in #105
- Fix watermark follow-ups: false strip claim, issue refs, test/polish cleanups by @assapir in #110
- Prepare 0.9.1 release by @assapir in #103
Full Changelog: v0.9.0...v0.9.1
Quilon VS Code extension 0.9.1 (preview .vsix)
Downloadable .vsix for local install — NOT published to the Marketplace. Install with: code --install-extension quilon-0.9.1.vsix
v0.9.0
Quilon v0.9.0 — "Stable basics"
A stable, verified core of the Quilon language — not yet
feature-complete. Programs run via quilon run (in-process LLVM
JIT) or compile to native executables via quilon build.
Highlights: ^ entry point (implicit exit-0), <</>> modules,
|> first-argument-injection pipe, for n <- collection => body
loops, the built-in Text type, core.io (print/eprint/write),
sum types with pattern matching, methods on records, and conservative
(Boehm) GC. Built against LLVM 22.
Known limitations: no generics yet (so Text/non-numeric values
inside records, arrays, or Ok/NotOk payloads are unsupported — numeric
payloads work), no closures / while loops / user-defined sum types,
dynamic libgc, placeholder argv. See CHANGELOG.md for the full list.
The attached quilon binary is a dynamically-linked Linux x86-64 build
(requires libgc at runtime).
What's Changed
- Add CLAUDE.md and ignore Claude Code worktrees by @assapir in #1
- CI: build, test, fmt, clippy workflow by @assapir in #2
- Foundation: <</^/>> tokens, String→Text, entry-point >>→^, module/AST scaffolding by @assapir in #3
- Runtime intrinsics, core IO (print), Boehm GC (B4) by @assapir in #8
- Typed sum-type payloads (tag + sized union) by @assapir in #7
- Methods on named records: codegen + static dispatch by @assapir in #5
- JIT execution: quilon run + run-test harness by @assapir in #4
- Module system: << imports, >> exports, loader (B1) by @assapir in #6
- Fix: resolve imports in
quilon run(integration follow-up) by @assapir in #9 - Strict CI (deny warnings) + tree-wide warnings cleanup by @assapir in #10
- Text built-in type ({ptr,len}): + concat, .size (bytes), .length (graphemes) by @assapir in #11
- Refactor: extract shared CLI front-end (read/lex/parse/resolve/typecheck) by @assapir in #12
- Prune unused dependencies by @assapir in #13
- Pipe operator :> (first-arg injection) + IO redesign: write/print/eprint, drop println by @assapir in #14
- Phase D: curate examples + examples-compile gate by @assapir in #16
- Native AOT: package libquilon_rt static lib so compiled binaries link by @assapir in #17
- Implicit exit-0 for ^ when the body is not a Num by @assapir in #18
- quilon build: Rust-native AOT (TargetMachine object emit + linker), both-linker gate, drop aot.sh by @assapir in #19
- Release 0.9.0 housekeeping: LLVM 22, checkout@v5, CHANGELOG, release workflow by @assapir in #20
- Phase D: align & de-duplicate docs (LANGUAGE/README/CLAUDE) by @assapir in #15
New Contributors
Full Changelog: https://github.com/assapir/quilon/commits/v0.9.0