Skip to content

Commit ace6a04

Browse files
ericdalloeca
andcommitted
Bump plumcp to 0.2.0-beta3, remove upstream-fixed workarounds
- Remove flushing-stdio-transport wrapper (flush bug fixed in beta3) - Replace manual initialized? atom with wrap-initialized-check - Exclude plumcp .cljc sources from uberjar to fix AOT classloader bug where DynamicClassLoader re-evaluates defprotocol, creating incompatible interface classes vs AppClassLoader-loaded AOT reify classes 🤖 Generated with [eca](https://eca.dev) Co-Authored-By: eca <noreply@eca.dev>
1 parent b8a930e commit ace6a04

4 files changed

Lines changed: 61 additions & 454 deletions

File tree

build.clj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,16 @@
3333
:src-dirs src-dirs
3434
:java-opts ["-server"]
3535
:class-dir class-dir})
36+
;; Remove plumcp protocol source from the uberjar. When both .cljc source
37+
;; and .class files coexist, Clojure may re-evaluate defprotocol from
38+
;; source under DynamicClassLoader, creating a new interface class that's
39+
;; incompatible with AOT-compiled reify classes loaded by AppClassLoader
40+
;; (different classloaders = different classes).
3641
(b/uber {:class-dir class-dir
3742
:uber-file file
3843
:main 'eca.main
39-
:basis basis})))
44+
:basis basis
45+
:exclude ["plumcp/.*\\.cljc"]})))
4046

4147
(defn ^:private bin
4248
"Create an executable `eca` script out of UBER-FILE jar with

0 commit comments

Comments
 (0)