Phase 4: deftype/defrecord completion

- evaluator.janet: fix set! to handle (.-field obj) shorthand
  Previously only recognized (. obj -field) format
- core.janet: rewrite core-defrecord to emit (deftype ...) instead of
  plain def with array-map constructor
- core.janet: fix core-map? to recognize deftype table instances
  (and returns last truthy, not boolean true — wrap in if)
- core.janet: fix core-count to skip :jolt/deftype key for records
- core.janet: add ->TypeName arrow factory that calls TypeName.
  constructor via Clojure form emission
- 11 new tests: deftype fields/mutation/instance?, defrecord
  construction/map-behavior/fields/factories, record equality
- map->TypeName factory deferred (needs get/symbol resolution fix)
- 317 tests pass, 0 failures
This commit is contained in:
Yogthos 2026-06-02 21:10:33 -04:00
parent fc7f49487b
commit fb66851e06
8 changed files with 204 additions and 284 deletions

View file

@ -1,16 +1,26 @@
{
"jolt-dev": {
"created_by": "agent",
"use_count": 30,
"view_count": 45,
"patch_count": 37,
"last_used_at": "2026-06-02T22:24:09.648320+00:00",
"last_viewed_at": "2026-06-02T22:24:09.636430+00:00",
"last_patched_at": "2026-06-02T22:24:40.254179+00:00",
"use_count": 32,
"view_count": 47,
"patch_count": 40,
"last_used_at": "2026-06-03T00:55:18.036371+00:00",
"last_viewed_at": "2026-06-03T00:55:18.017806+00:00",
"last_patched_at": "2026-06-03T00:55:51.227868+00:00",
"created_at": "2026-06-01T21:26:06.614465+00:00",
"state": "active",
"pinned": false
},
"jpm-build": {
"created_by": "agent",
"use_count": 0,
"view_count": 15,
"patch_count": 0,
"last_viewed_at": "2026-06-02T21:03:17.897587+00:00",
"created_at": "2026-06-01T20:56:39.144222+00:00",
"state": "active",
"pinned": false
},
"jolt-bootstrap": {
"created_by": "agent",
"use_count": 9,
@ -25,24 +35,14 @@
},
"jolt-compiler": {
"created_by": "agent",
"use_count": 4,
"view_count": 8,
"patch_count": 6,
"last_used_at": "2026-06-02T22:24:09.679583+00:00",
"last_viewed_at": "2026-06-02T22:24:09.655249+00:00",
"last_patched_at": "2026-06-02T21:40:55.723354+00:00",
"use_count": 5,
"view_count": 9,
"patch_count": 7,
"last_used_at": "2026-06-03T00:55:56.946140+00:00",
"last_viewed_at": "2026-06-03T00:55:56.935595+00:00",
"last_patched_at": "2026-06-03T00:56:15.725835+00:00",
"created_at": "2026-06-02T17:54:38.690279+00:00",
"state": "active",
"pinned": false
},
"jpm-build": {
"created_by": "agent",
"use_count": 0,
"view_count": 15,
"patch_count": 0,
"last_viewed_at": "2026-06-02T21:03:17.897587+00:00",
"created_at": "2026-06-01T20:56:39.144222+00:00",
"state": "active",
"pinned": false
}
}