If you have circular dependencies between namespaces, arallel-build is enabled and :optimizations is something other than :none, the compiler won't show an error message about the circular dependencies and the compilation never finishes.
Reproduction: https://github.com/miikka/cljs-circular-deps-repro
Looking at the code, I think that this happens because the parallel builder threads wait for their dependencies to be built before they proceed. With circular dependencies, this never happens. I suspect that commit 9ad6d5d61c introduced this problem, as it disabled the circularity-checking code that was run before the parallel compilation.
ClojureScript 1.9.562
example reproducing the issue
Was also reported in the original issue tracking parallel compilation with circular dependencies https://dev.clojure.org/jira/browse/CLJS-1539?focusedCommentId=45275&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-45275
I also ran into this problem with `:optimizations :none` on 1.9.946.
We probably have enough helpers in `module_graph.cljc` to write a simple dependency check on the inputs before we start parallel building.