jolt/src/jolt
Yogthos a6f0f8a6fe core: move last/butlast to the Clojure overlay
Continue the kernel shrink. last/butlast become canonical Clojure defs
(pure first/next/loop/recur) in the core.clj overlay, dropping two
realize-for-iteration uses from the Janet kernel.

second was the obvious next candidate but can't move: the self-hosted
compiler front-end (analyzer.clj) calls it, and the compiler has to
compile the overlay, so anything it uses must already exist as a Janet
primitive. Documented that as a third clause of the safe-to-move rule.

Suite green, clojure-test-suite battery holds 3913 pass / 58 clean,
binary builds and runs the embedded overlay.
2026-06-06 12:08:00 -04:00
..
clojure destructuring compliance, deps.edn comments, clojure.java.io shim 2026-06-06 01:01:04 -04:00
jolt fix: pr-str/str of a var, and nREPL namespace switching 2026-06-05 22:05:45 -04:00
aot.janet aot: marshal compiled namespaces to bytecode images 2026-06-06 02:57:32 -04:00
api.janet core: start moving clojure.core to Clojure (overlay loaded at init) 2026-06-06 11:45:31 -04:00
async.janet feat: core.async Phase 3 — channel transducers + dropping/sliding buffers 2026-06-05 15:40:24 -04:00
backend.janet self-host: make it the only compile path; drop the bootstrap as a selectable path 2026-06-06 11:34:02 -04:00
compiler.janet self-host: analyzer compiles to fast bytecode (fib(30) 0.52s) 2026-06-06 10:25:05 -04:00
config.janet feat: build-time mutable/immutable collection toggle + fix list mutation 2026-06-04 18:15:48 -04:00
core.janet core: move last/butlast to the Clojure overlay 2026-06-06 12:08:00 -04:00
deps.janet destructuring compliance, deps.edn comments, clojure.java.io shim 2026-06-06 01:01:04 -04:00
deps_cli.janet deps phases 3-4: uberscript bundling + conformance harness 2026-06-05 23:36:40 -04:00
evaluator.janet self-host: compile the analyzer (full-suite parity, fast); fix interp multi-arity 2026-06-06 09:59:28 -04:00
host_iface.janet self-host: make it the only compile path; drop the bootstrap as a selectable path 2026-06-06 11:34:02 -04:00
loader.janet loader: drop write-only compiled-form cache and its unused helpers 2026-06-06 11:40:27 -04:00
main.janet self-host: make it the only compile path; drop the bootstrap as a selectable path 2026-06-06 11:34:02 -04:00
phm.janet fix: transient invokable lookup, assoc! odd args, use-after-persistent! invalidation 2026-06-05 09:29:36 -04:00
plist.janet feat: persistent singly-linked lists with O(1) conj/cons prepend 2026-06-04 19:20:27 -04:00
pv.janet feat: structural-sharing persistent vectors (immutable build) + mutable toggle 2026-06-04 18:56:55 -04:00
reader.janet support type hints; make metadata coherent 2026-06-06 00:36:10 -04:00
regex.janet feat: full regex engine (Path A) — parser->AST->PEG grammar with continuation-passing backtracking + position-based group captures; capturing groups [whole g1...], greedy/lazy backtracking through groups, lookahead, (?i) flag, anchors/\b, $N replace; re-find/matches/seq + string split/replace 2026-06-04 16:24:02 -04:00
stdlib_embed.janet self-host: scaffold portable jolt-core + host/core architecture 2026-06-06 05:44:12 -04:00
types.janet loader: drop write-only compiled-form cache and its unused helpers 2026-06-06 11:40:27 -04:00