This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-06-06
Channels
- # announcements (1)
- # beginners (147)
- # boot (9)
- # calva (28)
- # cider (3)
- # circleci (18)
- # cljdoc (54)
- # cljs-dev (55)
- # cljsrn (22)
- # clojure (179)
- # clojure-canada (9)
- # clojure-dev (74)
- # clojure-europe (1)
- # clojure-italy (15)
- # clojure-nl (7)
- # clojure-spec (30)
- # clojure-uk (55)
- # clojurescript (65)
- # core-async (15)
- # cursive (12)
- # datomic (16)
- # events (4)
- # fulcro (25)
- # graalvm (3)
- # joker (2)
- # kaocha (15)
- # keechma (94)
- # off-topic (12)
- # qlkit (2)
- # re-frame (15)
- # reagent (11)
- # reitit (29)
- # remote-jobs (15)
- # rewrite-clj (16)
- # shadow-cljs (73)
- # spacemacs (144)
- # sql (3)
- # tools-deps (11)
- # unrepl (19)
- # vim (35)
Is there a way to upgrade a running socket server twice with an unrepl blob? I upgrade once, then close the connection then connect and upgrade again (with a changed blob). It seems like the second upgrade doesn’t have an effect and I always have to restart the process.
Is your blob shaded? From what I can tell here is the scenario that bugs you: you send a first blob which creates impl namespaces for unrepl. Then you tweak the blob and resend it (over a fresh conn). However in the blob there’s code to prevent recreating an existing ns, so most of the new blob is ognored because the ns diddn’t change.
It’s intended behaviour to avoid concurrent connections with the same blob to interefer with each other.
@andrea712 Could this ^^ explain the behavior you encounter?
and that behaviour would happen also using un-shaded blobs right? I’m mostly using unshaded ones when debugging so I can re-eval functions in unrepl nsspaces
my trouble is currently when the first upgrade fails after emitting the :unrepl/hello
but before emitting the first prompt. In that case all unrepl (unshaded) nss are evaluated correctly and all successive connection+upgrade with a changed blob has no effect
if -init-done
is already set to a promise (well a derefable) then eval becomes a no-op for the whole processing of the blob