This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-03-29
Channels
- # announcements (1)
- # biff (5)
- # calva (10)
- # cljdoc (4)
- # clojure (17)
- # clojure-europe (15)
- # clojure-norway (38)
- # clojurescript (53)
- # community-development (1)
- # cursive (2)
- # datomic (14)
- # fulcro (11)
- # funcool (1)
- # hyperfiddle (7)
- # introduce-yourself (2)
- # jobs-discuss (17)
- # missionary (7)
- # releases (4)
- # shadow-cljs (30)
- # slack-help (6)
- # specter (5)
- # squint (22)
We've recently started to intermittently seeing hundreds of build warnings wrt. interpreting. Running lein clean
to remove the target
directory seems to fix this for a while. I suspect we've updated some dependency or added some npm library which might trigger this, but this is just a guess. Any idea what the real cause might be?
WARNING: interpreting by default at #'cljs.analyzer/*cljs-file*:125:1
attrs64469
Inferred tag was: #{any}
EDIT: This has nothing to do with shadow-cljs
, the warning is generated by rum
.I don't know what that is. not an error message I have ever seen before, or being produced by shadow-cljs
We're still using a rather old version of shadow-cljs, 2.20.7, but this seems to occur with newer versions at all
oh, interesting
In that case I need to direct my investigations elsewhere, thanks!
(partially) solved just in case someone else ever needs this: the warning is coming from rum
(https://github.com/tonsky/rum/blob/005a2f067178808f92dc796f2c867cc152793279/src/daiquiri/compiler.clj#L23). I was too focused on the build tool to think about anything else 🙂
seems like that is missing a @
so that you actually see what file it is complaining about?
as in (println (str "WARNING: interpreting by default at " @(requiring-resolve 'cljs.analyzer/*cljs-file*) ":" line ":" column))
yeah, looks like it. Not much point in printing out the var a hundred times
or better yet (println (str "WARNING: interpreting by default at " (:file env) ":" line ":" column))
Hello! I think I found a bug in shadow-cljs. I was deploying my app and when I checked out the built version, I got a message that something is not found. I checked out about infers and it seemed like there is no inference problem at my side. I found out the real reason, here's a diff:
- (.registerElement ElementFactory.Instance widget-name (fn [] (Model.)))
+ (.registerElement (.-Instance ElementFactory) widget-name (fn [] (Model.)))
- (.registerQuestion ReactQuestionFactory.Instance widget-name render-fn)))
+ (.registerQuestion (.-Instance ReactQuestionFactory) widget-name render-fn)))
It seems like ReactQuestionFactory.Instance
is not treated as (.-Instance ReactQuestionFactory)
and so that info is thrown away.but yes, this is known to lose the js
hint, pretty sure its not shadow-cljs though. I think thats part of the cljs.analyzer code
Ah okay, maybe it's possible for shadow-cljs to produce a warning when it encounters something like this? It did work on dev, so I didn't pay much attention to that little fragment.
And why wouldn't it be valid? If it runs it should count as valid or is there something I am missing?
so it's an accident that my former code worked?
yeah, to be honest it is weird how I even ended up with that symbol in code in the first place but thanks for the quick reply
so not something I can easily address in shadow-cljs. at least I think so. as I said I have not looked into this
oh yeah, I just remembered about js/console.log
which is a common thing to do in cljs. Obviously this kind of issue wouldn't arise because it's a builtin function but it does seem like there is nothing problematic with dots in symbols