From c3cf305d3bdd0eee86117d3aa3404f6efde63336 Mon Sep 17 00:00:00 2001 From: Ademar Gonzalez Date: Sun, 23 Aug 2026 10:50:00 -0400 Subject: [PATCH] Announce 0.6.0 on the website A news page in the docs shell -- the editor release: the language server, recovering diagnostics, environment introspection, sessions, the Math and Time packages, and the show breaking change, with a pointer to ADR 0009 -- plus a hero pill on the front page linking to it. --- website/assets/site.css | 23 ++++ website/index.html | 6 + website/news/ironkernel-0.6.0.html | 173 +++++++++++++++++++++++++++++ 3 files changed, 202 insertions(+) create mode 100644 website/news/ironkernel-0.6.0.html diff --git a/website/assets/site.css b/website/assets/site.css index 10412c6..192e94b 100644 --- a/website/assets/site.css +++ b/website/assets/site.css @@ -155,6 +155,29 @@ img { color: var(--copper); } +.hero-news { + margin: 0 0 1.4rem; + font-size: 0.95rem; +} +.hero-news a { + display: inline-block; + padding: 0.45rem 1rem; + border: 1px solid var(--line); + border-radius: 999px; + background: var(--bg-2); + color: var(--mute); + text-decoration: none; + transition: border-color 0.2s ease, color 0.2s ease; +} +.hero-news a:hover { + border-color: var(--copper); + color: var(--ink); +} +.hero-news strong { + color: var(--copper-hot); + font-weight: 600; +} + .hero-lead { max-width: 34rem; margin: 0 0 2rem; diff --git a/website/index.html b/website/index.html index 889abc2..a62de61 100644 --- a/website/index.html +++ b/website/index.html @@ -30,6 +30,12 @@
+

+ New · IronKernel 0.6.0 — the editor release: a language server, + recovering diagnostics, and sessions → +

IronKernel

A Kernel programming language for the CLR — where combiners and environments are first-class, diff --git a/website/news/ironkernel-0.6.0.html b/website/news/ironkernel-0.6.0.html new file mode 100644 index 0000000..a7d27ed --- /dev/null +++ b/website/news/ironkernel-0.6.0.html @@ -0,0 +1,173 @@ + + + + + + IronKernel 0.6.0 — the editor release + + + + + +

+ +
+ + +
+

IronKernel 0.6.0 — the editor release

+

+ 2026-08-23. This release turns the runtime’s own machinery outward into tooling: + a language server that resolves instead of guessing, diagnostics that survive + a half-typed buffer, environments you can finally see, and a persistent evaluation session. + The design is recorded in + ADR 0009 — editor tooling grows from the runtime outward, + and every piece below is a phase of it. +

+ +

A language server in the runtime

+

+ ik lsp starts a Language Server Protocol server inside the IronKernel + binary — the same parser, analyzer, and bootstrapped environment your programs use. The + distinction that defines Kernel finally shows up correctly in your editor: operatives and + applicatives are colored by resolving the binding, not by matching a name + list. Define your own operative and it gets the operative color at every use site: +

+
+

semantic tokens know what twice is

+
(define twice (vau (x) e (eval x e) (eval x e)))
+(twice (print "again"))  ; twice colors as an operative — it is one
+
+

+ Hover shows a combiner’s contract — (+ number number …) → number — pure, certified — + completion offers what is actually in scope (your buffer’s defines included), and diagnostics + arrive on every keystroke. The VS Code extension starts the server automatically in trusted + workspaces; any editor that speaks LSP can do the same. +

+ +

Diagnostics that recover

+

+ ik check --json emits machine-readable diagnostics with exact source spans — a + versioned contract shared by the language server and anything else you build. And the reader + now recovers: a broken form no longer swallows the rest of the file. Every + broken region reports its own error, the forms that parse still produce trees, and the form + you are actively typing is completed with its unclosed brackets so completion and highlighting + keep working mid-edit. +

+
+

every region, not just the first

+
$ ik check broken.ikr
+Check error: broken.ikr:1:1: Parse error: …
+Check error: broken.ikr:3:1: Parse error: …
+
+ +

The environment, visible

+

+ Three new applicatives — extensions alongside clr-opens, available under every + profile — make environments inspectable from Kernel: +

+
+

enumeration, not authority

+
(environment-local-symbols e)          ; the frame's own bindings, sorted
+(environment-symbols e)                ; everything visible from e
+(environment-capabilities e)           ; e.g. (host-io (generated-clr "safe"))
+
+

+ They return names and information, never parent environments as values — the + environment type stays encapsulated, so visibility does not become mutation authority. + On top of them: tab completion in the REPL, an environment view + in VS Code (capabilities, your buffer’s frame, and every frame beneath it, contracts as + tooltips), and a profile status bar that shows the active capability profile — + and flags when it overrides the project’s own <IronKernelProfile>. +

+ +

Sessions

+

+ ik session is a persistent evaluation session over framed JSON-RPC: definitions + persist between evals, everything the program prints travels in the response, and errors are + structured data — message, rendered diagnostic, and spans — instead of text folded into + stdout. In VS Code, Eval Selection in Session gives you a REPL that lives + inside your editing session. The debug adapter will ride this protocol; the ADR records + exactly what it still needs. +

+ +

Two new packages

+

+ IronKernel.Math + brings statistics, combinatorics, and number theory — exact wherever the mathematics allows: + means as ratios, isqrt and factorial at any size, primes and + factorizations. + IronKernel.Time + brings dates and durations over System.DateTime/System.TimeSpan, + with UTC-disciplined instants the arithmetic tower adds and subtracts directly. +

+ +

One breaking change

+

+ show now renders a value to a string instead of printing it — + what its name always promised. It is pure, needs no host authority, and works under every + profile. Code that used bare (show x) to print should say what it means: +

+
+

rendering and printing are two jobs

+
(show (list 1 2))          ; ⇒ "(1 2)" — a string, nothing printed
+(print (show (list 1 2))) ; prints (1 2) — the idiom that used to be an arity error
+
+ +

Get it

+

+ Self-contained binaries for Linux, Windows, and macOS (arm64 and x64) — plus the + ik tool and SDK packages — are attached to the + v0.6.0 release. + The VS Code extension builds on every push; grab the VSIX from CI and install it with + Extensions: Install from VSIX… — see the + getting-started guide for runtime discovery. +

+ +

+ ← Back to ironkernel.org +

+
+
+ +
+
+ IronKernel — Apache 2.0 + Docs · GitHub +
+
+ + +