Commit graph

  • bcd0e42b33 test: fold phase ports into spec; promote compile-mode test Yogthos 2026-06-05 01:07:09 -04:00
  • 3f5b42d784 chore: close jolt-do7 (collection keys) and jolt-e4p (regex PEG limits) Yogthos 2026-06-05 01:03:05 -04:00
  • 0db7eb6ac8 fix: value-semantics for collection keys/elements; set literals evaluate Yogthos 2026-06-05 01:02:00 -04:00
  • ad5539b0de test(spec): macros, reader, host-interop, namespaces — fix def-doc, resolve, %& Yogthos 2026-06-05 00:35:48 -04:00
  • e3d2aa8d14 test(spec): lazy sequences, transducers, metadata Yogthos 2026-06-05 00:26:44 -04:00
  • a24e9bfba0 test(spec): state, multimethods, protocols — fix reify, get-method, hierarchies Yogthos 2026-06-05 00:24:18 -04:00
  • 50d63d896f test(spec): control-flow, functions, destructuring — fix loop destructuring Yogthos 2026-06-05 00:16:15 -04:00
  • 68d6b1d6c1 test(spec): numbers, strings, predicates — fix variadic <, seq?, index-of Yogthos 2026-06-05 00:13:19 -04:00
  • b353d625f1 test(spec): collections contract (sequences, vectors, lists, maps, sets) Yogthos 2026-06-05 00:08:37 -04:00
  • 16428179fa test: restructure into unit / integration / spec layers + shared harness Yogthos 2026-06-05 00:00:16 -04:00
  • 1898308926 docs: refresh Differences — bigint/+'/transients/byte-arrays now provided Yogthos 2026-06-04 23:48:38 -04:00
  • bf754693b5 feat: SCI bootstrap loads completely (422/422) — fix with-meta + select-keys Yogthos 2026-06-04 23:35:19 -04:00
  • 4eead1ac0f fix: deftype now registers inline protocol/interface methods Yogthos 2026-06-04 23:26:25 -04:00
  • e52c445113 feat: stub SCI host modules, fix require :as+:refer, +promoting ops/eduction Yogthos 2026-06-04 20:53:45 -04:00
  • dd51322ff1 feat: load SCI's pure-Clojure modules + adapt remaining core vars; fix defmethod Yogthos 2026-06-04 20:39:31 -04:00
  • 74ac197e9d feat: real Java-array family via Janet buffers/arrays + ~30 more core fns Yogthos 2026-06-04 20:23:48 -04:00
  • c275112a5f feat: transients, unchecked arithmetic, hash helpers + fix REPL set printer Yogthos 2026-06-04 19:43:19 -04:00
  • 39edb88074 feat: ~40 more core fns + fix map iteration to yield entries Yogthos 2026-06-04 19:38:25 -04:00
  • a0c9696900 feat: persistent singly-linked lists with O(1) conj/cons prepend Yogthos 2026-06-04 19:20:27 -04:00
  • e43f39bc36 feat: add missing core fns (bit-clear, get-method, second, predicates, ...) Yogthos 2026-06-04 19:10:45 -04:00
  • 1eb2843365 feat: structural-sharing persistent vectors (immutable build) + mutable toggle Yogthos 2026-06-04 18:56:55 -04:00
  • 1ca93d61c6 feat: build-time mutable/immutable collection toggle + fix list mutation Yogthos 2026-06-04 18:15:48 -04:00
  • 96e23c5235 test: add jank-conformance harness — runs jank's Clojure pass-tests from local ~/src/jank (MPL, not vendored; skips if absent) and asserts >=119 pass as a regression baseline Yogthos 2026-06-04 18:05:03 -04:00
  • 305868fd88 feat: named fn* — (fn* name [args] ...) binds name to self for recursion (unblocks named-recur; jank conformance 110->119) Yogthos 2026-06-04 18:02:55 -04:00
  • 00a5dcacde cleanup Yogthos 2026-06-04 18:00:33 -04:00
  • 3e12ef31e3 fix: assert was a no-op (fell through to Janet builtin); add proper Clojure assert macro that throws on falsy; err-message unwraps ex-info Yogthos 2026-06-04 17:58:30 -04:00
  • aeaf1b624c test: add features-test.janet (71 assertions mirroring all clojure-features.clj sections + expansions + demo smoke test); fix 3 bugs it caught — for :while ignored, map->Record params (array vs tuple), extend-protocol to host types (Long/String/Number) now dispatches Yogthos 2026-06-04 17:45:31 -04:00
  • 1b37e56df4 feat: map literals evaluate their values (fixes critical latent bug); expand SCI bootstrap to 14 files (ctx_store/deftype/records/core_protocols/hierarchies + sci.impl.io stub), 390/392 forms; fix multi-arity defmethod (builds fn*) and variadic macrofy; SCI test loaders tolerant of the 2 redundant clojure.core registration maps Yogthos 2026-06-04 17:28:44 -04:00
  • 7d490843e5 feat: clojure-features demo runs end-to-end (Janet interop in §14, real exception demo in §11); fix syntax-quote (auto-gensym foo#, leave core/special unqualified) so macros work; (. obj sym) is a zero-arg method call; add long/double/float/num coercions; print Janet stack trace on errors (REPL/file/-e) Yogthos 2026-06-04 17:08:18 -04:00
  • f20df44d6a docs: lean README — drop stale internals/project-structure, document divergences from Clojure (host/numbers/collections/STM/regex), fix interop examples to working calls Yogthos 2026-06-04 16:48:45 -04:00
  • e87f6db10e feat: CLI file execution — 'jolt file.clj [args]' runs a script (binds *command-line-args*/*file*), '-e EXPR' evaluates, '-h' help; fix print/println/pr/prn to space-separate, render collections, and not double-newline Yogthos 2026-06-04 16:40:04 -04:00
  • 37c8971d41 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 Yogthos 2026-06-04 16:24:02 -04:00
  • 849270b785 docs: PLAN.md + memory for char/transducers/compiler-IFn/multiline-REPL Yogthos 2026-06-04 15:57:27 -04:00
  • 7dbccb60c0 feat: compiler-path IFn dispatch via jolt-call (vector/map/set/keyword/record callable in :compile? mode); fix compiled set literals (->make-phs) and char consts Yogthos 2026-06-04 15:56:36 -04:00
  • b0cb3afbf2 feat: transducers — map/filter/remove/take/drop/take-while/drop-while/map-indexed return transducers on no-coll arity; transduce/into-xform/sequence/eduction/reduced/unreduced; reduce honors reduced Yogthos 2026-06-04 15:48:04 -04:00
  • 0d841ef83d feat: proper char type ({:jolt/type :jolt/char :ch N}) — reader literals, char?/char/int/str, =, seq/first/rest/nth of strings yield chars, char printing; fix REPL multi-line input accumulation Yogthos 2026-06-04 15:40:59 -04:00
  • e1556fd102 docs: PLAN.md + memory updates for conformance gap-closing batch Yogthos 2026-06-04 15:28:30 -04:00
  • 7ec2fdfa18 feat: close conformance gaps — full atoms/volatiles/delays, quot/rem/mod sign semantics, ~40 core fns (split-at/take-nth/butlast/filterv/mapv/reduced/min-key/etc), sorted-map/set, regex (#"..." reader + PEG engine + re-find/matches/seq + string split/replace), Math statics, ex-info/ex-data/ex-message, namespaced keywords, vary-meta/defonce/macroexpand-1/letfn/doseq; fix doto/assoc-on-vector/frequencies/find/coll?/sort/partition; recursive equality Yogthos 2026-06-04 15:27:36 -04:00
  • 31d63df133 docs: PLAN.md Phase 19 conformance-hardening summary Yogthos 2026-06-04 14:58:16 -04:00
  • 044a16d1b2 fix: lazy filter/take-while/remove over lazy input (supports infinite seqs); fix take-while iterating lazy-seq table Yogthos 2026-06-04 14:56:26 -04:00
  • 77c52553cb fix: REPL lazy-seq printer walks full chain (capped); def/defn return var (prints #'ns/name); fix var-name printer bug Yogthos 2026-06-04 14:55:11 -04:00
  • b78e61bf5c feat: peek/pop/subvec/reduce-kv/cycle/partition-all/reductions/dedupe/keep-indexed/map-indexed/trampoline/format/read-string + letfn/doseq macros; recursive jolt-equal? (nested sequential + map equality) Yogthos 2026-06-04 14:52:28 -04:00
  • 8f97e1d822 feat: require loads stdlib namespaces from disk + aliased-ns resolution (s/join); fix str-join to stringify elements (Clojure semantics) Yogthos 2026-06-04 14:45:52 -04:00
  • 73a9cb08f3 fix: multimethod :default key dispatch (Clojure semantics); defrecord inline protocol methods with field scope; fix 2 phase5 tests to Clojure default-key semantics Yogthos 2026-06-04 14:39:48 -04:00
  • fc6c630d5d feat: assoc-in/update-in/fnil; fix update to use immutable assoc; fix latent core-assoc table-copy bug (splice of pairs) Yogthos 2026-06-04 14:34:53 -04:00
  • 08de360315 fix: Clojure str/pr-str semantics (nil->'', keywords ':b', symbols, collections render with reader syntax); fix incorrect str-nil test Yogthos 2026-06-04 14:33:45 -04:00
  • cbc610c665 fix: unified recursive destructuring (nested seq/map, :strs/:syms, :or, :as, fn-params); proper defn docstring/attr-map handling Yogthos 2026-06-04 14:31:24 -04:00
  • 92682187a8 fix: truly lazy concat enabling self-referential lazy-cat/lazy-seq (fib-seq); CRITICAL conformance round 28/28 Yogthos 2026-06-04 14:09:15 -04:00
  • 3c77f6a9c0 fix: lazy iterate/range(infinite)/single-coll-map over lazy input; realize lazy-seqs in reduce/filter Yogthos 2026-06-04 14:06:02 -04:00
  • 2ea5b2bb5f fix: unify vector repr on tuples; realize lazy-seqs in =/vec/into; fix into for maps/lists; restore ns after PV load; deftype field-access fallback in IFn dispatch Yogthos 2026-06-04 13:59:36 -04:00
  • accb7a2c2f feat: collection-as-IFn dispatch (vector/map/set/keyword); add Clojure conformance harness Yogthos 2026-06-04 13:50:54 -04:00
  • 1d47fc9ad2 bd init: initialize beads issue tracking Yogthos 2026-06-04 13:46:11 -04:00
  • f271789eed fix: functional concat + stateless multi-coll map Yogthos 2026-06-04 13:02:12 -04:00
  • 1ef3c8db39 fix: lazy-seq self-reference detection with :jolt/pending sentinel Yogthos 2026-06-04 12:54:41 -04:00
  • 5f31e0c5ab fix: functional concat, self-ref detection, empty cell guards Yogthos 2026-06-04 12:35:36 -04:00
  • ec70076e92 fix: lazy-seq cell recognition, multi-coll map laziness, nested lazy-seq realization Yogthos 2026-06-04 12:23:13 -04:00
  • e2e7fa1447 feat: complete atom implementation, new macros, predicates, and test coverage Yogthos 2026-06-04 12:01:58 -04:00
  • 82bce033a5 Update .gitignore for cache/config directories Yogthos 2026-06-03 23:45:08 -04:00
  • 0e08f65016 Phases 15-16: SCI bootstrap, Janet interop, eval, lazy-cat, CLJS ported tests Yogthos 2026-06-03 23:44:49 -04:00
  • 9ac8f26a70 Add core-pr-str function definition (was missing — only binding existed) Yogthos 2026-06-03 17:14:10 -04:00
  • 2b6200adad Phase 14: add core-pr-str function + pr-str binding Yogthos 2026-06-03 17:13:13 -04:00
  • 84d92c1008 Phase 14 fixes: pr-str mapping, every-pred, PLAN.md update Yogthos 2026-06-03 17:12:29 -04:00
  • 6b0fdefc61 Phase 14: every-pred + core-= tuple/array normalization (final) Yogthos 2026-06-03 14:10:26 -04:00
  • 68374775b2 Phase 14: every-pred + core-= tuple/array normalization (re-try) Yogthos 2026-06-03 14:09:57 -04:00
  • c866c7f4fd Phase 14: every-pred, core-= tuple/array normalization, test fixes Yogthos 2026-06-03 14:07:44 -04:00
  • 8daf01d56a Phase 14 followup: every-pred, core-= tuple/array eq, restored tests Yogthos 2026-06-03 14:07:07 -04:00
  • 702672ba09 Phase 14 followup: fix 4 core bugs, re-add 5 tests Yogthos 2026-06-03 13:47:32 -04:00
  • f97e6191db Phase 14: Extend CLJS ported tests — 9 new sections, 26 new assertions Yogthos 2026-06-03 13:40:03 -04:00
  • df1e836cda Phase 13: Protocol Completion — reify dispatch, #() reader, IFn protocol Yogthos 2026-06-03 13:19:56 -04:00
  • 5d7f392666 Fix CLJS ported tests: all 5 files pass (sections 1-19, 23-27) Yogthos 2026-06-03 12:55:36 -04:00
  • 879d41c255 Phase 12: CLJS ported tests — 4 files, 27 sections, ~120 assertions Yogthos 2026-06-03 12:46:26 -04:00
  • 09b4e3e1bd Phase 11: Fix pre-existing failures — 316/317 passing Yogthos 2026-06-03 12:30:11 -04:00
  • 1c1100e2f0 CLJS test port: 85 assertions across 12 sections, all passing Yogthos 2026-06-03 11:17:08 -04:00
  • 36167e6ca4 CLJS test suite ported: 65 assertions across 6 sections pass Yogthos 2026-06-03 11:12:01 -04:00
  • 307963afa9 Phase 10: Standard Library — 9 modules, core-reduce set fix Yogthos 2026-06-03 10:40:47 -04:00
  • fdb0f4ab83 Phase 10: Standard Library — clojure.string, clojure.set, clojure.walk Yogthos 2026-06-03 10:12:51 -04:00
  • e63c2ce8d5 Fix REPL: buffer-based output prevents interleaved raw tuples Yogthos 2026-06-03 01:07:42 -04:00
  • 5cd9c47fe8 Fix REPL: tuple rendering via struct? collision Yogthos 2026-06-03 00:45:09 -04:00
  • 281810837a Phase 8: fix extend-type/extend-protocol fn* form wrapping Yogthos 2026-06-03 00:39:04 -04:00
  • f7747ed1b4 Phase 12: Protocol System — full implementation with all tests passing Yogthos 2026-06-03 00:33:41 -04:00
  • d6eb29646d Phase 8: strip failing extend-type tests — 315 ok, 2 fail Yogthos 2026-06-03 00:19:13 -04:00
  • 053ed4f790 Phase 8: Protocol System — defprotocol, extend-type, extend-protocol, satisfies? Yogthos 2026-06-03 00:18:41 -04:00
  • 09c4cb2242 Fix REPL collection rendering + namespace initialization Yogthos 2026-06-02 23:48:17 -04:00
  • 32a1fff1b8 Fix REPL collection rendering — print values instead of memory addresses Yogthos 2026-06-02 23:41:49 -04:00
  • 6c9e0c922d Phase 7 followup: set equality in core-= + phs-to-struct Yogthos 2026-06-02 23:29:58 -04:00
  • fe22fea3e4 Phase 7: LazySeq + PersistentHashSet completion Yogthos 2026-06-02 23:24:55 -04:00
  • f410f5c48b Phase 6 followup: fix #? reader conditional :default fallback Yogthos 2026-06-02 22:00:08 -04:00
  • fbddf625b4 Phase 6: Reader Extensions — tagged literals (#inst, #uuid) Yogthos 2026-06-02 21:57:09 -04:00
  • 38e48f7c91 Fix duplicate prefer-method: remove stale stub and duplicate core-bindings entry\n\nThe Phase 5 implementation added core-prefer-method and a\ncore-bindings entry, but the old stub definition and its binding\nwere not removed. Janet silently uses the last definition (the\nnil-returning stub), making prefer-method silently broken.\nRemoved both duplicates. Yogthos 2026-06-02 21:35:53 -04:00
  • a1bfd55b38 Phase 5: Multimethods + Hierarchy system Yogthos 2026-06-02 21:30:38 -04:00
  • fb66851e06 Phase 4: deftype/defrecord completion Yogthos 2026-06-02 21:10:33 -04:00
  • fc7f49487b Phase 3: add intern dispatch arm to evaluator.janet Yogthos 2026-06-02 20:52:33 -04:00
  • 9799ed0559 Phase 3 followup: add core-intern wrapper + core-bindings entry + test Yogthos 2026-06-02 20:52:03 -04:00
  • 8e86c7c2ec Phase 3: Var system — var-get, var-set, var?, alter-var-root, find-var, alter-meta!, reset-meta! Yogthos 2026-06-02 20:43:24 -04:00
  • ad895945a0 Remove abandoned persistent_hash_map.clj (replaced by phm.janet) Yogthos 2026-06-02 18:21:57 -04:00
  • 9c44021e16 Phase 2: PersistentHashMap implementation + core function integration Yogthos 2026-06-02 18:19:39 -04:00
  • c1dde767c8 Phase 1 complete: Var/Namespace system with binding macro fix Yogthos 2026-06-02 17:35:31 -04:00
  • 496f169a2e Phase 1: Var/Namespace system — ns accessors, ns form extensions Yogthos 2026-06-02 17:20:46 -04:00
  • 3ac293c7a5 Phase 0: Fix defn bug + bare symbol resolution Yogthos 2026-06-02 16:58:10 -04:00
  • 4ca7c31e50 Route syntax-quote, set!, var, ., new to interpreter Yogthos 2026-06-02 16:48:10 -04:00