Is your feature request related to a problem? Please describe.
Several core functions newly added in Clojure 1.11 and 1.12 are not available in SCI:
(-> (ns-publics 'clojure.core)
(->> (group-by (comp :added meta val)))
(select-keys ["1.11" "1.12"])
(update-vals #(mapv key %)))
; =>
{"1.11" [abs NaN? infinite?
random-uuid
parse-boolean parse-double parse-long parse-uuid
update-keys update-vals
iteration
seq-to-map-for-destructuring]
"1.12" [partitionv partitionv-all splitv-at
stream-into! stream-reduce! stream-seq! stream-transduce!
*repl*]}
I encountered this while testing out the SCI-backed macroexpansion feature in clj-kondo, in particular missing the parse-long and partitionv core functions.
Describe the solution you'd like
Apart from the stream-* functions (JVM-specific and out-of-scope), the remaining ones all look like useful candidates for inclusion, I believe it's a matter of registering them via copy-core-var in sci.impl.namespaces? Not sure if / how the semantics of *repl* should be handled.
Note that seq-to-map-for-destructuring is already present with a polyfilled impl and random-uuid is already present in a cljs branch.
Describe alternatives you've considered
It's not clear if SCI explicitly targets a minimum Clojure version - If the app depends on an older version, I think copy-core-var on a non-existent var would be a load-time error. There is existing version-gating machinery in place, should be straightforward to extend to >=1.11.0, >=1.12.0 etc to conditionally register them.
Additional context
2025 State of Clojure survey results:

Is your feature request related to a problem? Please describe.
Several core functions newly added in Clojure 1.11 and 1.12 are not available in SCI:
I encountered this while testing out the SCI-backed macroexpansion feature in clj-kondo, in particular missing the
parse-longandpartitionvcore functions.Describe the solution you'd like
Apart from the stream-* functions (JVM-specific and out-of-scope), the remaining ones all look like useful candidates for inclusion, I believe it's a matter of registering them via
copy-core-varin sci.impl.namespaces? Not sure if / how the semantics of*repl*should be handled.Note that
seq-to-map-for-destructuringis already present with a polyfilled impl andrandom-uuidis already present in a cljs branch.Describe alternatives you've considered
It's not clear if SCI explicitly targets a minimum Clojure version - If the app depends on an older version, I think
copy-core-varon a non-existent var would be a load-time error. There is existing version-gating machinery in place, should be straightforward to extend to>=1.11.0,>=1.12.0etc to conditionally register them.Additional context

2025 State of Clojure survey results: