This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-06-21
Channels
- # announcements (9)
- # beginners (222)
- # boot (11)
- # calva (40)
- # cider (1)
- # clj-kondo (10)
- # cljs-dev (1)
- # cljsrn (8)
- # clojars (4)
- # clojure (50)
- # clojure-dev (4)
- # clojure-ecuador (1)
- # clojure-europe (4)
- # clojure-italy (3)
- # clojure-madison (2)
- # clojure-nl (26)
- # clojure-spec (86)
- # clojure-uk (34)
- # clojurescript (11)
- # clr (1)
- # cursive (46)
- # datomic (19)
- # emacs (4)
- # events (1)
- # fulcro (22)
- # graalvm (4)
- # graphql (2)
- # jobs-discuss (40)
- # leiningen (10)
- # luminus (6)
- # nrepl (7)
- # off-topic (18)
- # onyx (6)
- # overtone (1)
- # pedestal (2)
- # planck (1)
- # re-frame (5)
- # reagent (3)
- # reitit (8)
- # rewrite-clj (2)
- # shadow-cljs (139)
- # sql (4)
- # tools-deps (42)
Hi everyone, I made a patch for that "unbalanced monitors" issue that works a tiny bit differently than the existing one. When I build clojure with that patch, and use a non-AOT'ed clojure.spec.alpha, the binary compiles successfully. When I run the binary, it fails on "cannot find clojure.core.server__init" https://clojure.atlassian.net/projects/CLJ/issues/CLJ-1472?filter=allopenissues I pasted the patch in there ^ along with what I'm calling native image with. Any assistance would be helpful
I suspect that the new RT.init() differences in 1.10.1 vs what's in 1.10.0 are the difference, but haven't tested
before:
(defmacro locking
[x & body]
`(let [lockee# ~x]
(try
(monitor-enter lockee#)
[email protected]
(finally
(monitor-exit lockee#)))))
after:
(defmacro locking
[x & body]
`(let [lockee# ~x]
(monitor-enter lockee#)
(^:reentrant-finally try
[email protected]
(finally
(monitor-exit lockee#)))))
I ended up teaching the compiler how to emit try
with a special flag on it differently ^:reentrant-finally