This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
ReleasePort's take
Light signalRelease v1.8.0 adds Clojure‑to‑Go AST generation via gogen and introduces UTF‑8 byte‑array interop on the VM, while fixing compiler handling of multiple _ parameters.
Why it matters: Enables seamless integration between Clojure codebases and Go projects; ensures correct Unicode byte handling in runtime interactions when using these new features.
Summary
AI summaryAdded Clojure‑to‑Go AST generation in gogen, introduced shadowing warnings and UTF‑8 byte array interop in the vm, and fixed compiler argument handling for multiple _ parameters.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Adds unchecked arithmetic ops for Clojure parity in core. Adds unchecked arithmetic ops for Clojure parity in core. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Introduces Clojure-to-Go AST codegen library under gogen. Introduces Clojure-to-Go AST codegen library under gogen. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds function literal, switch, and composite-literal support to gogen. Adds function literal, switch, and composite-literal support to gogen. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Promotes overflowing hex literals to BigInt for reader Clojure parity. Promotes overflowing hex literals to BigInt for reader Clojure parity. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Implements unchecked-* coercion family in runtime (long, int, short, byte, char, float, double). Implements unchecked-* coercion family in runtime (long, int, short, byte, char, float, double). Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Warns on def shadowing clojure.core for VM Clojure JVM parity. Warns on def shadowing clojure.core for VM Clojure JVM parity. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds .getBytes interop to vm/string returning UTF-8 byte-array. Adds .getBytes interop to vm/string returning UTF-8 byte-array. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds check ns for property testing functionality. Adds check ns for property testing functionality. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Introduces lazy-seq? predicate and throws on invalid lazy-seq values. Introduces lazy-seq? predicate and throws on invalid lazy-seq values. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds walk/keywordize-keys and walk/stringify-keys utilities. Adds walk/keywordize-keys and walk/stringify-keys utilities. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Preserves laziness via vm.Iter, SeqToSlice, and reflect bridge. Preserves laziness via vm.Iter, SeqToSlice, and reflect bridge. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Migrates Homebrew release distribution to casks. Migrates Homebrew release distribution to casks. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Feature | Medium |
Adds git merge driver for core_compiled.lgb file handling. Adds git merge driver for core_compiled.lgb file handling. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Integrates prek-compatible pre-commit hooks mirroring CI pipelines. Integrates prek-compatible pre-commit hooks mirroring CI pipelines. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Feature | Medium |
Provides example ys-on-let-go demonstrating yamlscript compiled output on let-go. Provides example ys-on-let-go demonstrating yamlscript compiled output on let-go. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Bugfix | Medium |
Allows multiple _ parameters in fn arg lists for compiler. Allows multiple _ parameters in fn arg lists for compiler. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Corrects recurCompiler slot counting to prevent loop+shadow stack overflow. Corrects recurCompiler slot counting to prevent loop+shadow stack overflow. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Ensures warn-on-core-shadow fires only when name is referred in VM. Ensures warn-on-core-shadow fires only when name is referred in VM. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Makes COI service worker pass through server headers and use require-corp. Makes COI service worker pass through server headers and use require-corp. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Ensures RegisterNS auto-refers CoreNS preserving core macros after (in-ns 'foo). Ensures RegisterNS auto-refers CoreNS preserving core macros after (in-ns 'foo). Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Bootstraps stdlib lgb generation from source files. Bootstraps stdlib lgb generation from source files. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Guards COI service worker against reload loops and unregisters redundant instances. Guards COI service worker against reload loops and unregisters redundant instances. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Makes lgbgen output bit-deterministic. Makes lgbgen output bit-deterministic. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Ensures map and mapcat functions are lazy. Ensures map and mapcat functions are lazy. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Normalizes empty Sequable in lazy-seq implementation. Normalizes empty Sequable in lazy-seq implementation. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Supports docstrings and attr-map on defmulti and defprotocol definitions. Supports docstrings and attr-map on defmulti and defprotocol definitions. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Bugfix | Medium |
Improves walk handling of maps using map-entry? predicate. Improves walk handling of maps using map-entry? predicate. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Refactor | Medium |
Updates Brew formula to version v2.0.2 of let-go. Updates Brew formula to version v2.0.2 of let-go. Source: llm_adapter@2026-05-23 Confidence: high |
— |
| Refactor | Medium |
Applies gofmt -s and golangci-lint fixes to existing Go files. Applies gofmt -s and golangci-lint fixes to existing Go files. Source: llm_adapter@2026-05-23 Confidence: low |
— |
| Refactor | Medium |
Improves Makefile and report generator implementations. Improves Makefile and report generator implementations. Source: llm_adapter@2026-05-23 Confidence: low |
— |
Full changelog
Changelog
- ff2ec369a1d9864f06059e78b95b32cd4db1e638 Brew formula update for let-go version v2.0.2 (#31)
- e2e5ffa501ce49091c9a456afa632b56aa873aa5 Fix Homebrew formula PR merge branch (#32)
- d733e032f6ed4c3833e4ba3d276351c8b980070a Migrate Homebrew release to casks
- 3dd9949ac594ddb4fd82c3d5fb29a545f47c35fd Some improvements to Makefile and report generator
- 5a63816d70b22bf42400cddc110de6d4e714c34d chore(tooling): git merge driver for core_compiled.lgb
- 5dc9ad8065a5683ec20ea4f8890cd2a860df376b ci: add prek-compatible pre-commit hooks mirroring CI
- a43d69d5c621836081c1a81f7d3707d6b54455b3 examples: ys-on-let-go — run yamlscript compiled output on let-go (#53)
- 7df80310aeb412801c8dbeabd17e954b79960bf0 feat(core): add unchecked-add/-subtract/-multiply/-negate/-inc/-dec/-divide-int for Clojure parity
- de06636bcdbf13a7efaae3835e4dcc02a6b8b492 feat(gogen): Clojure-to-Go AST codegen library
- 1abc5cb9512e1a442a1e4b983299f1baff22a7ee feat(gogen): add func-lit, switch, composite-lit
- 02b1b4f0a6fa2bd36c2735159ca477811077200d feat(reader): promote overflowing hex literals to BigInt — Clojure parity
- de4668a440d1a9a288c772cc7626215222102e56 feat(rt): unchecked-* coercion family — long/int/short/byte/char/float/double
- fcdbdea339376058204be2f9d6bc295eda256abd feat(vm): warn on def shadowing clojure.core — Clojure JVM parity
- 96bebc61c8abd85cf1bdb5be437f24a8dece3e4d feat(vm/string): add .getBytes interop — returns UTF-8 byte-array
- e3dcf110f8053a81cb90f0b8353f198d287ca403 feat: add check ns for property testing
- a1824d44d577794ae15e4f10ff1e3b421441a22d feat: add lazy-seq? predicate; throw on lazy-seq of non-seq value
- 693cd4da2fd39e55262ed22a9ba8dd9cd89bcd48 feat: add walk/keywordize-keys and walk/stringify-keys
- 9ef4cc2ec02ad73071961600455660e736cfd6f0 feat: preserve laziness via vm.Iter + SeqToSlice + reflect bridge
- 18fc2da84026638fc1e574a951a66aeb0317f2f7 fix(compiler): allow multiple _ parameters in fn arg lists
- b8d0ff2b27d93dd082855ebb4a183b324b45644e fix(compiler): recurCompiler must count slots, not distinct names — fixes loop+shadow stack overflow
- 1ca8567e9feb304752c1c858cbb87346007451f5 fix(vm): warn-on-core-shadow only fires when name is referred in
- 2c97d2e6f989d767737459e999d5ba11c5dfcf73 fix: COI service worker passes through server headers, uses require-corp
- 711f2bc03e25c1df361c6be507a57547ab8e1f12 fix: RegisterNS auto-refers CoreNS so (in-ns 'foo) preserves core macros
- 33ee8e7088fdc3fc5d3d9575ee482e44bc137b50 fix: bootstrap stdlib lgb generation from source
- fa6d96b5d940605c634bf42815cc8e66b90fea10 fix: guard COI service worker against reload loops, unregister when redundant
- 6f1f2760bbdb27cf51ee4a47f7efda0fa1157f0a fix: make lgbgen output bit-deterministic
- 8442bbc3316a085b7a80971273cfdbdabf72c58b fix: make map and mapcat lazy
- 38011c62e1e87cd4dd6ad11b3b408f187ce48370 fix: normalize empty Sequable in lazy-seq
- e32debd5ed5a453a816c2a0b1fa49b0f26e8cdbb fix: support docstrings and attr-map on defmulti and defprotocol
- 325a73b40548d524adf1b9282354c31eda1fe5b4 fix: walk handles maps via map-entry? predicate
- d0c0d76bf3e22b5a2ae0917fcbb614271f4250d0 style: apply gofmt -s and golangci-lint fixes to existing files
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Track I made a Clojure-like language in Go, boots in 7ms
Get notified when new releases ship.
Sign up freeAbout I made a Clojure-like language in Go, boots in 7ms
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]