prefer-method/remove-method/remove-all-methods/get-method/methods become overlay macros over ctx-capturing *-setup fns (a multimethod's method table lives on its VAR, so the name passes quoted — the defmulti/defmethod shape). instance? likewise (class names don't evaluate to values); satisfies? is a plain ctx-capturing fn (evaluated args). locking and defonce become overlay macros — locking now also evaluates the monitor expr (the old arm skipped it and any body form past the first); defonce keeps the existing-root check. read-string and macroexpand-1 are ctx-capturing fns. Removed all eleven from the evaluator special arms + special-symbol?, host_iface special-names, and compiler uncompilable-heads. evaluator-test's locking/instance? cases use init now (overlay macros need the full env). Surfaced pre-existing (filed): multimethod dispatch records prefer-method preferences on the var but never consults them in ambiguous isa dispatch. Gate: conformance 296x3 (+11 tier-6c cases), fallback-zero 73/3, fixpoint, self-host, sci, staged, suite 4049>=4034, all specs+unit. |
||
|---|---|---|
| .. | ||
| clojure/core | ||
| jolt | ||