Hi, during the compilation on our project, the compiler hangs, seemingly on a deadlock situation. We suspect that it may be related to a namespace dependency cycle. Is it plausible or not?
unlikely. dependency cycles are detected in the resolve stage before it gets to compilation
most common problem is a macro expanding endlessly
the compiler should self-terminate if it makes no progress for 60seconds
That's what happen, it terminates after some time and namespaces say which other ones they were waiting for.
the check what that namespace does
@thheller I found the problem which caused Shadow-CLJS to hang, and that might interest you:
(ns foo.core
(:require [bar_baz :as baz])) ;; typo, "_" instead of "-"
Maybe a "_" in a namespace should trigger a warning.
ah. please open an issue about that so I don't forget.
I keep getting these messages printed into my repl, and can't find much about it searching online
10:47:01.189 [XNIO-1 I/O-1] DEBUG io.undertow.websockets.core.request - UT025003: Decoding WebSocket Frame with opCode 1
The are printed every couple of seconds. Seemingly when ping/pong messages are exchanged over the websocket between shadow and my site in a browser session. Is there any way to hide these? They started showing up recently and I'm unsure what I did to trigger these to appear.looks like you are running shadow-cljs in embedded mode? ie. embedded in your CLJ process started from the REPL or so?
Maybe so? I started my repl with cider-jack-in-cljs
. Maybe I will have different results if I start shadow in a terminal and connect to that through cider
if you start it in embedded mode shadow-cljs inherits your jvm logging setup. so you'd configure that logging via your log4j.properties logback.xml or whatever logging you are using
if you start it separately those logs should not appear
I started my repl with shadow-cljs watch app
and connected manually with cider. I still see the messages, both in my terminal and my connected cider repl.
We do have a logback.xml in this project. I will try to exclude these logs somehow. Do you happen to know what the logger name would be for these messages?
Trying this <logger name="io.undertow.websockets.core.request" level="WARN" />
first
I can never remember how to configure this stuff either but logback.xml is the place to do it 🙂
you can use name="io.undertow"
since you likely don't care about any of the messages it outputs. not just that ns.
I will play around with it. I am not the logback guy at my work. Someone will know how to do it though.
Thank you for your help. I really appreciate how responsive you are in this channel.
happy to help