;; dynamic-var-defaults.ss — default values for the handful of clojure.core dynamic ;; vars that aren't emitted into the prelude (*clojure-version*, *assert*, …). Plain ;; constant def-var!s; *ns* (a namespace object) needs a value type with ;; get-see-through and map?=false and is tracked separately. The binding-stack ;; machinery (binding / var-set / thread-bound?) lives in dyn-binding.ss. Loaded ;; from rt.ss after the value model + def-var!. ;; *clojure-version* — a map {:major 1 :minor 11 :incremental 0 :qualifier nil}. (def-var! "clojure.core" "*clojure-version*" (jolt-hash-map (keyword #f "major") 1 (keyword #f "minor") 11 (keyword #f "incremental") 0 (keyword #f "qualifier") jolt-nil)) ;; *unchecked-math* — jolt does no unchecked-math elision; the var reads false. (def-var! "clojure.core" "*unchecked-math*" #f) ;; *warn-on-reflection* — jolt has no reflection, so the var reads false; (set! ;; *warn-on-reflection* …) resolves and updates it (a no-op effect). (def-var! "clojure.core" "*warn-on-reflection*" #f) ;; *assert* — gates `assert`; settable/bindable (malli.assert toggles it). Default ;; true, like the JVM. (def-var! "clojure.core" "*assert*" #t) ;; *print-readably* — bound by pr-family / with-out-str-style code; default true. (def-var! "clojure.core" "*print-readably*" #t) ;; *print-meta* — when true, pr prints metadata with a ^ prefix; default false. (def-var! "clojure.core" "*print-meta*" #f)