bootstrap: SCI core deps loading with 284/304 forms passing

reader: #?@ empty splice fix (nil→@[]), #? nil→:jolt/skip, map reader handles #_/#?@ in K/V
evaluator: unwrap-meta-name helper, deftype interns ->Name too, dot-suffix fix
core: comment/prefer-method stubs, *unchecked-math*/*clojure-version* dynamic vars
This commit is contained in:
Yogthos 2026-06-01 23:24:13 -04:00
parent cdcf569506
commit b20536d1e3
31 changed files with 1348 additions and 65 deletions

26
test-defprotocol.janet Normal file
View file

@ -0,0 +1,26 @@
(use ./src/jolt/evaluator)
(use ./src/jolt/types)
(use ./src/jolt/reader)
(use ./src/jolt/api)
(def ctx (init))
# Test simple defprotocol expansion
(def proto-name {:jolt/type :symbol :ns nil :name "IBox"})
(def sig1 @[{:jolt/type :symbol :ns nil :name "setVal"} {:jolt/type :symbol :ns nil :name "_this"} {:jolt/type :symbol :ns nil :name "_v"}])
(def sig2 @[{:jolt/type :symbol :ns nil :name "getVal"} {:jolt/type :symbol :ns nil :name "_this"}])
# Call core-defprotocol directly
(use ./src/jolt/core)
(def expanded (core-defprotocol proto-name sig1 sig2))
(print "expanded: " (string expanded))
# Try to eval it
(def [ok err] (protect (eval-form ctx @{} expanded)))
(if ok
(do
(print "eval OK!")
(let [ns (ctx-find-ns ctx (ctx-current-ns ctx))]
(printf "IBox: %q\n" (ns-find ns "IBox"))
(printf "setVal: %q\n" (ns-find ns "setVal"))))
(printf "eval FAIL: %q\n" err))