Files
bara-lang/PLAN.md
T
dimgigov d7e5697f3a fix: 230/233 (98.7%) — reader :default preference, cond/new/definterface, runtime stubs, seq overloads
- Reader: prefer :default over :clj in reader conditionals
- Emitter: add cond, definterface, new special forms
- Emitter: ns handler registers namespace aliases from :require
- Emitter: when body always discarded (fixes type mismatch with else)
- Emitter: try/catch maps clojure.lang.ExceptionInfo → ExInfo, scope catch vars
- Emitter: def inside proc uses var (not {.global.}), removed debug output
- Runtime: cljRandomUuid, cljSystemGetProperty, cljVresetB, cljRestartAgent
- Runtime: cljRequire, cljEvalStub, cljResolve no-op stubs
- Runtime: Boolean/Object/Integer/Long/Float/Double constructors
- Runtime: seq overloads for cljAssoc, cljDissoc, cljGet, cljExInfo, cljTransduce
- Unit tests: 78/80 (was 77/80)
- 3 remaining: not_eq (cross-namespace), add_watch/remove_watch (def hoisting)
2026-05-11 03:36:53 +03:00

1014 B

Clojure/Nim — Test Suite Compliance Plan

Current Status: 230/233 (98.7%)

Component Pass Total %
clojure.string 8 8 100%
clojure.core 222 225 98.7%
Total 230 233 98.7%

Unit Tests: 78/80 pass (97.5%)

  • emit symbol — returns cljSymbol(...) instead of raw name
  • emit mangled symbol — same issue

3 Remaining Compliance Failures

# Test Error Root Cause
1 not_eq undeclared 'eq_SLASH_tests' Cross-namespace: eq/tests fn from clojure.core-test.eq not loaded
2 add_watch undeclared 'testvar_a' (def testvar-a 0) inside deftest body — Nim requires var decl before use in closures
3 remove_watch undeclared 'watchable' Same — (def watchable 0) inside deftest body, referenced in closures

All 3 require deeper architectural changes:

  • Multi-file compilation or inline required namespaces
  • Top-level def hoisting across closure boundaries