Chez inc7: namespace :as aliases on the Chez-hosted analyzer
(require '[clojure.string :as s]) then s/foo crashed "Unknown class s": the Chez analyzer resolved a qualified symbol's ns literally, and there was no alias table (ns.ss jolt-ns-aliases was a stub, require a no-op). Add an alias table + chez-register-spec! (parses [ns :as a]) in ns.ss; hc-resolve-cell now resolves a qualified ns through it; compile-eval pre-registers a form's require/use :as aliases before analysis (analysis precedes the runtime require, so the runtime require staying a no-op is fine). The batched gate runner clears the alias table between cases. Zero-Janet corpus parity 2159 -> 2240, 0 divergences. spine-test 35/35.
This commit is contained in:
parent
8b86174b91
commit
011e5d6337
5 changed files with 57 additions and 6 deletions
|
|
@ -130,7 +130,9 @@
|
|||
(sns (symbol-t-ns sym))
|
||||
(qualified (and sns (not (jolt-nil? sns)) (not (null? sns)) sns)))
|
||||
(if qualified
|
||||
(var-cell-lookup qualified nm)
|
||||
;; a qualified ns may be a require :as alias (s/split -> clojure.string/split)
|
||||
(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)
|
||||
(var-cell-lookup "clojure.core" nm)))))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue