Yogthos
|
0e08f65016
|
Phases 15-16: SCI bootstrap, Janet interop, eval, lazy-cat, CLJS ported tests
- SCI bootstrap complete: all 9 SCI source files load (317 forms, 0 failures)
- prefer-method/remove-method/remove-all-methods promoted to special forms
- eval special form (interpreter + compiler) with eval-test.janet
- lazy-cat macro with structural equality tests in lazy-test.janet
- Janet-native interop via . special form on tables/structs:
field access (. obj :key), method calls (. obj method args...)
fn* form compilation support, .- reader sugar
interop-test.janet with 7 test sections (14 assertions)
- New core bindings: with-meta, var-dynamic?, load-string
- ^:dynamic def handler, core-str nil handling, core-meta for with-meta
- 7 new CLJS ported test files: cljs-port-6 through -10, cljs-core-test, cljs-collections-test
- test-sci-runtime.janet verifies SCI namespaces/types/Var/IBox/IVar
- 317/317 tests pass, 0 failing scripts, 440+ assertions across 31 test files
- README updated with Janet interop documentation
|
2026-06-03 23:44:49 -04:00 |
|
Yogthos
|
f97e6191db
|
Phase 14: Extend CLJS ported tests — 9 new sections, 26 new assertions
- cljs-port-2.janet expanded (sections 12-21, was 12-15):
atoms, special forms, macros, constructors, printing, apply,
equality across types, higher-order fns, seq edge cases,
atoms extended (deref/reset!/swap!)
- cljs-port-5.janet created (sections 22-24):
destructuring (seq + map :keys), metadata (dynamic vars),
function composition (complement, constantly)
- 26 new assertions across 9 sections, all pass
- 316 ok, 1 fail (pre-existing, unchanged)
|
2026-06-03 13:40:03 -04:00 |
|
Yogthos
|
879d41c255
|
Phase 12: CLJS ported tests — 4 files, 27 sections, ~120 assertions
- cljs-port-1a.janet (sections 1-6): core math, predicates, comparison,
vectors, maps, sets — all pass (54 assertions)
- cljs-port-1b.janet (sections 7-11): seq operations, printing, apply,
higher-order fns — all pass (25 assertions, str nil skipped)
- cljs-port-2.janet (sections 12-15): atoms, special forms, macros,
constructors — all pass (20 assertions)
- cljs-port-3.janet (sections 16-22): destructuring, set ops, reader
literals, syntax-quote, walk (skipped), clojure.string, clojure.set
— 16 assertions pass, walk skipped (needs IFn protocol)
- cljs-port-4.janet (sections 23-27): deftype/defrecord, multimethods,
protocols, var system, range/into/concat — all pass (15 assertions)
Paren-counting boundary persists in single-file format, split into
separate files is the workaround. 316/317 total (1 pre-existing).
|
2026-06-03 12:46:26 -04:00 |
|
Yogthos
|
1c1100e2f0
|
CLJS test port: 85 assertions across 12 sections, all passing
Part 1 (test/cljs-port-1.janet) — 65 assertions, 6 sections:
- 1: core math (10): +, -, *, /, inc, dec, quot, rem, mod, max, min
- 2: predicates (13): nil?, not, some?, string?, number?, fn?,
keyword?, map?, zero?, pos?, neg?, even?, odd?
- 3: comparison (9): =, not=, = multi, not=, <, >, <=, >=
- 4: vectors (5): nth, conj, first, rest, count
- 5: maps (8): get, assoc, dissoc, contains?, count, keys
- 6: sets (5): set?, conj, disj, count, = order-independent
Part 2 (test/cljs-port-2.janet) — 20 assertions, 6 sections:
- 7: seq ops (8): seq, map, filter, reduce, take, drop, reverse, every?
- 8: atoms (3): deref, swap!, atom?
- 9: special forms (6): let, if, do, loop/recur, try/catch
- 10: macros (5): defn, when, and, or, fn
- 11: higher-order (3): comp, partial, identity
- 12: constructors (4): vector count, hash-map count, hash-set count, zipmap
315 ok, 2 fail (pre-existing, unchanged)
|
2026-06-03 11:17:08 -04:00 |
|