Architecture refactor: plan + phase 0 (dead code + bugs) (#106)
* Add architecture refactor plan Synthesizes a six-part architectural review into phased, gate-validated cleanup work. Targets LLM-maintainability: one home per feature, no god-files, explicit checked contracts, no copy-paste dispatch. No code changes yet — the plan only. * Refactor phase 0: dead code + isolated bugs Pure cleanup ahead of the structural phases (docs/architecture-refactor-plan.md). No behavior change except the two bug fixes, which are covered by a regression row. Dead code (all verified zero-reference or overridden): - core-resolve / core-satisfies? / core-type->str seed stubs + bindings — resolve and satisfies? are interned by install-stateful-fns! (the seed copies were shadowed); type->str was an inert SCI stub with no callers. - find defined twice in 20-coll.clj; the dead copy returned a plain vector (wrong — the live def at :787 returns a real map-entry) with a comment that contradicted it. - mark-hint (passes.clj), phs-to-struct (phm), shape-vals / ns-imports-fn (types) — unreferenced. - redundant local pad2 in javatime (module-level one already in scope). Bugs: - File.toURL stored :url but every :jolt/url method reads :spec, so a URL from (.toURL file) returned nil from all its methods. Now stores :spec (+ spec row). - pl-rest had a no-op (if (plist? r) r r); collapsed to r. - :map-shapes? was missing from the deps-image cache key — two runs differing only in map-shapes could reuse each other's image. Also dropped read-quote's unused pos param. Full gate green. --------- Co-authored-by: Yogthos <yogthos@gmail.com>
This commit is contained in:
parent
88b7d13401
commit
d1f73f1740
11 changed files with 286 additions and 38 deletions
|
|
@ -343,10 +343,6 @@
|
|||
;; qualified-/simple- keyword?/symbol? moved above qualified-ident? (forward
|
||||
;; references are analysis errors now — jolt-2o7.3).
|
||||
|
||||
;; find: the map entry [k v] when k is present (nil values included), nil
|
||||
;; otherwise. contains? gives vectors-by-index for free, matching Clojure.
|
||||
(defn find [m k]
|
||||
(when (contains? m k) [k (get m k)]))
|
||||
|
||||
;; realized?: defined on the pending types only (delay/lazy-seq/future read
|
||||
;; Tagged-value predicates. The constructors (atom/volatile!/...) stay in Janet,
|
||||
|
|
|
|||
|
|
@ -833,7 +833,6 @@
|
|||
;; tag a node (any expression, not just a :local) so the back end can specialize
|
||||
;; a lookup whose SUBJECT is that node — this is what makes nested access work:
|
||||
;; (:direction ray) is tagged struct, so (:r (:direction ray)) drops its guard.
|
||||
(defn- mark-hint [node h] (assoc node :hint h))
|
||||
;; tag a lookup subject as a struct, carrying the complete shape when known
|
||||
;; (so the back end bare-indexes) — jolt-t34
|
||||
(defn- mark-struct [node t]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue