Chez inc7: :refer support — Chez analyzer reaches parity with the oracle
(require '[clojure.string :refer [blank?]]) then an unqualified blank? now resolves. chez-register-spec! registers :refer names (in addition to :as) into a refer table; hc-resolve-cell's unqualified branch consults it before clojure.core. Zero-Janet corpus parity 2293 -> 2295 = the Janet-hosted oracle's exact pass count. The self-hosted Chez compiler (read -> analyze -> emit -> eval, no Janet) now compiles every corpus case the Janet-hosted compiler does, with 0 divergences. Remaining failures are shared runtime breadth (host interop, futures, runtime eval) deferred to Phase 4 / jolt-r8ku. Floor 2295.
This commit is contained in:
parent
28bb950efe
commit
24ef2b8d4b
4 changed files with 26 additions and 8 deletions
|
|
@ -134,6 +134,9 @@
|
|||
(let ((target (or (chez-resolve-alias (chez-actx-cns ctx) qualified) qualified)))
|
||||
(var-cell-lookup target nm))
|
||||
(or (var-cell-lookup (chez-actx-cns ctx) nm)
|
||||
;; a :refer'd name resolves to its source ns
|
||||
(let ((ref (chez-resolve-refer (chez-actx-cns ctx) nm)))
|
||||
(and ref (var-cell-lookup ref nm)))
|
||||
(var-cell-lookup "clojure.core" nm)))))
|
||||
|
||||
;; Runtime macros (jolt-r9lm, inc6b): a defmacro is emitted into the prelude as a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue