Fork me on GitHub
#hoplon
<
2020-03-20
>
phronmophobic22:03:30

is hoplon’s javelin supported in clj on the jvm?

flyboarder22:03:54

there is a clj version but it’s kinda experimental

phronmophobic22:03:34

that’s perfect. I’m currently experimenting! is there specific branch I should work with?

phronmophobic22:03:50

i noticed that. I was trying to work through the readme with > (ns membrane-javelin.core > (:require [javelin.core-clj :refer [cell cell= defc defc=]]) > (:gen-class)) > > > (defc a 42) ;; cell containing the number 42 > (defc b ’(+ 1 2)) ;; cell containing the list (+ 1 2) > (defc c (+ 1 2)) ;; cell containing the number 3 > (defc d {:x @a}) ;; cell containing the map {:x 42} > > (defc= e {:x a}) ;; cell with formula {:x a}, updated when a changes > (defc= f (+ a 1)) ;; cell with formula (+ a 1), updated when a changes > (defc= g (+ a ~(inc @a))) ;; cell with formula (+ a 43), updated when a changes > (defc= h [e f g]) ;; cell with formula [e f g], updated when e, f, or g change

phronmophobic22:03:34

I’m getting class clojure.lang.Atom cannot be cast to class java.lang.Number at (defc= f (+ a 1))

phronmophobic22:03:48

presumably, defc= isn’t noticing that a is a previously defined cell? not sure if the macro is supposed to take care of that for you

flyboarder22:03:06

i dont think any of the macros work in clj

👍 4
phronmophobic00:03:42

what’s the ideal behavior for cell= to determine which symbols should be treated as referring to cells? seems like it’s just ignoring locals, clojure core symbols, and special symbols?

phronmophobic00:03:02

there’s a number of ways that could produce unexpected results

phronmophobic00:03:34

I was thinking of doing something that tries to resolve the symbol in the current namespace to check if it’s a cell and if it’s a local variable from a let, then having it do the check at runtime

jjttjj01:03:22

@U7RJTCH6J https://github.com/hoplon/javelin/pull/40 I've got this PR (not mine) working on the JVM

jjttjj01:03:35

and there's a pretty good description there

phronmophobic01:03:34

awesome! i’ll check it out

jjttjj01:03:58

wait that's the wrong link

jjttjj01:03:37

Fixed it, off by one error 🙂