clojure.core/*print-meta* was missing, so (binding [*print-meta* true] …) failed
to compile ("var of non-var"). Add it (default false, like the JVM); corpus
covers binding it.
30 lines
1.5 KiB
Scheme
30 lines
1.5 KiB
Scheme
;; 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)
|