cherry 2024-04-20

When updating malli dependencies, Cherry got updated from 0c4e0d1de534a4cf910ed7079638dbcfec8ec8b7 to 3f78c7e03e1b940c0cbc05e8c5bc76f8295055cb, breaking the sci-tests. Seems like the namespace aliases don’t work as expected. Using this config:

(defn -default-sci-options []
  {:preset :termination-safe
   :aliases {'str 'clojure.string
             'm 'malli.core}
   :namespaces {'malli.core {'properties properties
                             'type type
                             'children children
                             'entries entries}}})
any ideas what has changed and how to mitigate?

interesting...

can you log an issue with SCI? I'll take a look on Monday

preferably a SCI-only repro if possible

I’ll do that

@ikitommi alright, I'll wait for the issue

@ikitommi is it about this failing test? https://github.com/metosin/malli/actions/runs/8764828329/job/24055235948 I don't see how this is related to SCI though

it's probably a cherry issue, I'll take a look later today

it’s just using SCI under Cherry.

SCI under cherry?

I'm confused

the failing code uses m/eval, e.g.

(m/eval "(m/properties [int? {:district 9}])")
doesn’t work anymore with cherry.

yes, but how does that relate to SCI?

I'll take a look regardless, doesn't matter

thanks! m/eval uses SCI to evaluate the code, to be honest, I have no idea how that works with cherry.

it only uses SCI if you enable SCI. If you enable cherry, m/eval evaluates through cherry only:

(defn eval
  ([code] (eval code nil))
  ([code _opts]
   (cond (or (symbol? code)
             (seq? code))
         (cherry/eval-form code cherry-opts)
         (string? code)
         (cherry/eval-string code cherry-opts)
         :else code)))

(set! malli.core/eval eval)

That code is in malli.cherry

👌 1

I'll take a look right now

should be fixed with cherry main branch now, sorry for the inconvenience