Skip to content

Releases: assapir/quilon

Quilon VS Code Extension 0.9.2

Choose a tag to compare

@github-actions github-actions released this 24 Aug 14:08
f66ad0f

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 --debug module-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 .qn by @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"

Choose a tag to compare

@github-actions github-actions released this 24 Aug 14:07
d544046

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 --debug module-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 .qn by @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

Choose a tag to compare

@assapir assapir released this 16 Aug 12:26
0bff9a5

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"

Choose a tag to compare

@github-actions github-actions released this 14 Aug 15:38
ccc8865

What's Changed

  • Replace mut keyword 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<-1 descends) 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 build by @assapir in #41
  • M3: ^ entry point receives args:[]Text and env:[][]Text by @assapir in #39
  • M3: Remove the for loop (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 run args 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 build works 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 --debug by @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)

Choose a tag to compare

@assapir assapir released this 10 Aug 10:21

Downloadable .vsix for local install — NOT published to the Marketplace. Install with: code --install-extension quilon-0.9.1.vsix

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 21:01
902ebc6

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