I directly use rebel-readline.core/with-line-reader, rebel-readline.jline-api/safe-terminal-writer, etc. and I've observed different random exceptions and warnings logs on starting my REPL. Some examples:
java.lang.IllegalAccessError: whitespace? is not public
whitespace? does not exist
char is not public
No such var: i/inspect
WARNING: logs:
WARNING: tagged-literal? already refers to: #'clojure.core/tagged-literal? in namespace: clojure.tools.reader.impl.utils, being replaced by: #'clojure.tools.reader.impl.utils/tagged-literal?
WARNING: reader-conditional? already refers to: #'clojure.core/reader-conditional? in namespace: clojure.tools.reader.impl.utils, being replaced by: #'clojure.tools.reader.impl.utils/reader-conditional?
...
Investigating the stack traces, looks like they are caused by async require calls in rebel-utils/load-slow-deps! leading to some race condition.
My workaround was to make this helper synchronous:
I directly use
rebel-readline.core/with-line-reader
,rebel-readline.jline-api/safe-terminal-writer
, etc. and I've observed different random exceptions and warnings logs on starting my REPL. Some examples:java.lang.IllegalAccessError: whitespace? is not public
whitespace? does not exist
char is not public
No such var: i/inspect
WARNING:
logs:Investigating the stack traces, looks like they are caused by async
require
calls inrebel-utils/load-slow-deps!
leading to some race condition.My workaround was to make this helper synchronous: