jolt/test/spec
Yogthos a24e9bfba0 test(spec): state, multimethods, protocols — fix reify, get-method, hierarchies
Add spec suites for stateful refs (atoms/volatiles/delays/promises), multimethods
(dispatch + hierarchies), and protocols/types/records. Bugs caught and fixed:
- reify with multiple methods registered only the first (stepped i by 2 over
  one-element specs); now collects every method spec
- get-method/methods/remove-method evaluated their arg to the dispatch fn, but a
  multimethod's methods live on its var — now resolve the var (get-method and
  methods are special forms; remove-method fixed). get-method/methods added.
- no global hierarchy: 2-arg derive modified a throwaway, isa? was hardcoded
  false, parents missing, ancestors/descendants returned arrays (so contains?
  failed), and dispatch ignored derive. Now a global hierarchy backs the 1/2-arg
  derive/isa?/parents/ancestors/descendants (returning sets) and multimethod
  dispatch falls back to it.

Corrected a phase5 port assertion that encoded the old isa? bug.
conformance 218/218, jpm test green.
2026-06-05 00:24:18 -04:00
..
control-flow-spec.janet test(spec): control-flow, functions, destructuring — fix loop destructuring 2026-06-05 00:16:15 -04:00
destructuring-spec.janet test(spec): control-flow, functions, destructuring — fix loop destructuring 2026-06-05 00:16:15 -04:00
functions-spec.janet test(spec): control-flow, functions, destructuring — fix loop destructuring 2026-06-05 00:16:15 -04:00
lists-spec.janet test(spec): collections contract (sequences, vectors, lists, maps, sets) 2026-06-05 00:08:37 -04:00
maps-spec.janet test(spec): collections contract (sequences, vectors, lists, maps, sets) 2026-06-05 00:08:37 -04:00
multimethods-spec.janet test(spec): state, multimethods, protocols — fix reify, get-method, hierarchies 2026-06-05 00:24:18 -04:00
numbers-spec.janet test(spec): numbers, strings, predicates — fix variadic <, seq?, index-of 2026-06-05 00:13:19 -04:00
predicates-spec.janet test(spec): numbers, strings, predicates — fix variadic <, seq?, index-of 2026-06-05 00:13:19 -04:00
protocols-spec.janet test(spec): state, multimethods, protocols — fix reify, get-method, hierarchies 2026-06-05 00:24:18 -04:00
sequences-spec.janet test(spec): collections contract (sequences, vectors, lists, maps, sets) 2026-06-05 00:08:37 -04:00
sets-spec.janet test(spec): collections contract (sequences, vectors, lists, maps, sets) 2026-06-05 00:08:37 -04:00
state-spec.janet test(spec): state, multimethods, protocols — fix reify, get-method, hierarchies 2026-06-05 00:24:18 -04:00
strings-spec.janet test(spec): numbers, strings, predicates — fix variadic <, seq?, index-of 2026-06-05 00:13:19 -04:00
vectors-spec.janet test(spec): collections contract (sequences, vectors, lists, maps, sets) 2026-06-05 00:08:37 -04:00