Phase 5/6 complete: Transients, meta/with-meta, instance?

T5.5 Transients (transient/persistent!/conj!/assoc!)
  - Mutable builder for batch vector/map operations
  - Use with let bindings for proper ordering

T6.10 meta/with-meta — metadata on any CljVal via ref object field
T6.11 instance? — type predicate (instance? :integer 42)

Also marked T9.1 Atoms as done (already implemented earlier)

86 tests pass, all examples work.
Phases 0-6 now complete. Phase 7: 2/4 tasks done.
This commit is contained in:
2026-05-08 19:48:35 +03:00
parent 66d91cd086
commit b67962dbba
4 changed files with 112 additions and 13 deletions
+7
View File
@@ -132,6 +132,13 @@ proc runtimeName(op: string): string =
of "iterate": "cljIterate"
of "interleave": "cljInterleave"
of "quot": "cljQuot"
of "instance?": "cljInstanceP"
of "meta": "cljMeta"
of "with-meta": "cljWithMeta"
of "transient": "cljTransient"
of "persistent!": "cljPersistent"
of "conj!": "cljConjB"
of "assoc!": "cljAssocB"
else: ""
proc emitArgs(args: seq[CljVal]): string =