BetterThanTomorrow / calva

Clojure & ClojureScript Interactive Programming for VS Code
https://marketplace.visualstudio.com/items?itemName=betterthantomorrow.calva
Other
1.59k stars 212 forks source link

ClojureScript compiler warnings spam output.calva-repl #2291

Open dustingetz opened 11 months ago

dustingetz commented 11 months ago

Issue: below buffer paste shows there are 100 lines of cljs warnings followed by 65 lines of clj:user:> and it seems like more warnings seem to result in more calva repl prompts.

This is from the "deps.edn + shadow-cljs" builtin boot sequence, triggered from calva project jack in.

; This is the Calva evaluation results output window.
; TIPS: The keyboard shortcut `ctrl+alt+o o` shows and focuses this window
;   when connected to a REPL session.
; Please see https://calva.io/output/ for more info.
; Happy coding! ♥️

; Jacking in...
; Connecting using "deps.edn + shadow-cljs" project type.
; You can make Calva auto-select this.
;   - See https://calva.io/connect-sequences/
; 
; Starting Jack-in Terminal: pushd /Users/dustin/src/hf/electric-datomic-viewer ; clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version,"1.0.0"},cider/cider-nrepl {:mvn/version,"0.28.5"}}}' -M:dev -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware shadow.cljs.devtools.server.nrepl/middleware]" ; popd
; Using host:port localhost:54490 ...
; Hooking up nREPL sessions ...
; Connected session: clj
; TIPS:
;   - You can edit the contents here. Use it as a REPL if you like.
;   - `alt+enter` evaluates the current top level form.
;   - `ctrl+enter` evaluates the current form.
;   - `alt+up` and `alt+down` traverse up and down the REPL command history
;      when the cursor is after the last contents at the prompt
;   - Clojure lines in stack traces are peekable and clickable.
; Evaluating code from settings: 'calva.autoEvaluateCode.onConnect.clj'
(when-let [requires (resolve 'clojure.main/repl-requires)] (clojure.core/apply clojure.core/require @requires))
nil
clj꞉user꞉>  ; Use `alt+enter` to evaluate
clj꞉user꞉> 
; Creating cljs repl session...
; Connecting cljs repl: deps.edn + shadow-cljs...
;   The Calva Connection Log might have more connection progress information.
; Starting cljs repl for: deps.edn + shadow-cljs...
; [:dev] Configuring build.
; [:dev] Compiling ...
; [:dev] Build completed. (226 files, 2 compiled, 6 warnings, 5.01s)
; Cljs builds started
; 
; ------ WARNING #1 - :undeclared-ns ---------------------------------------------
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/app/config.cljc:3:19
; --------------------------------------------------------------------------------
;    1 | (ns app.config)
;    2 | 
;    3 | (def app-version (System/getProperty "HYPERFIDDLE_ELECTRIC_SERVER_VERSION"))
; -------------------------^------------------------------------------------------
;  No such namespace: System, could not locate System.cljs, System.cljc, or JavaScript source providing "System"
; --------------------------------------------------------------------------------
;    4 | (def datomic-conn)
;    5 | (def electric-server-config {:host "0.0.0.0", :port 8080, :resources-path "public"})
;    6 | 
; --------------------------------------------------------------------------------
; 
; ------ WARNING #2 - :undeclared-var --------------------------------------------
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/app/config.cljc:3:19
; --------------------------------------------------------------------------------
;    1 | (ns app.config)
;    2 | 
;    3 | (def app-version (System/getProperty "HYPERFIDDLE_ELECTRIC_SERVER_VERSION"))
; -------------------------^------------------------------------------------------
;  Use of undeclared Var System/getProperty
; --------------------------------------------------------------------------------
; Please start your ClojureScript app so that Calva can connect to its REPL...
;    4 | (def datomic-conn)
;    5 | (def electric-server-config {:host "0.0.0.0", :port 8080, :resources-path "public"})
;    6 | 
; --------------------------------------------------------------------------------
; 
; ------ WARNING #3 - :infer-warning ---------------------------------------------
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; --------------------------------------------------------------------------------
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; ---------^----------------------------------------------------------------------
;  Cannot infer target type in expression (. e -hyperfiddle_history_route)
; --------------------------------------------------------------------------------
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; --------------------------------------------------------------------------------
; 
; ------ WARNING #4 - :infer-warning ---------------------------------------------
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; --------------------------------------------------------------------------------
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; ---------^----------------------------------------------------------------------
;  Cannot infer target type in expression (. e -hyperfiddle_history_route_external_nav)
; --------------------------------------------------------------------------------
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; --------------------------------------------------------------------------------
; 
; ------ WARNING #5 - :infer-warning ---------------------------------------------
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; --------------------------------------------------------------------------------
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; ---------^----------------------------------------------------------------------
;  Cannot infer target type in expression (. history -!stack)
; --------------------------------------------------------------------------------
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; --------------------------------------------------------------------------------
; 
; ------ WARNING #6 - :infer-warning ---------------------------------------------
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; --------------------------------------------------------------------------------
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; ---------^----------------------------------------------------------------------
;  Cannot infer target type in expression (. history -!position)
; --------------------------------------------------------------------------------
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; --------------------------------------------------------------------------------
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
clj꞉user꞉> 
; Waiting for Shadow CLJS runtimes, start your CLJS app...
; Waiting for Shadow CLJS runtimes, start your CLJS app...
; Waiting for Shadow CLJS runtimes, start your CLJS app...
; Waiting for Shadow CLJS runtimes, start your CLJS app...
; Waiting for Shadow CLJS runtimes, start your CLJS app...
; nREPL Connection was closed
dustingetz commented 11 months ago
; Jacking in...
; Connecting using "deps.edn" project type.
; You can make Calva auto-select this.
;   - See https://calva.io/connect-sequences/
; 
; Starting Jack-in Terminal: pushd /Users/dustin/src/hf/electric-datomic-viewer ; clojure -Sdeps '{:deps {nrepl/nrepl {:mvn/version,"1.0.0"},cider/cider-nrepl {:mvn/version,"0.28.5"}}}' -M:dev -m nrepl.cmdline --middleware "[cider.nrepl/cider-middleware]" ; popd
; Using host:port localhost:54563 ...
; Hooking up nREPL sessions ...
; Connected session: clj
; TIPS:
;   - You can edit the contents here. Use it as a REPL if you like.
;   - `alt+enter` evaluates the current top level form.
;   - `ctrl+enter` evaluates the current form.
;   - `alt+up` and `alt+down` traverse up and down the REPL command history
;      when the cursor is after the last contents at the prompt
;   - Clojure lines in stack traces are peekable and clickable.
; Evaluating code from settings: 'calva.autoEvaluateCode.onConnect.clj'
(when-let [requires (resolve 'clojure.main/repl-requires)] (clojure.core/apply clojure.core/require @requires))
nil
clj꞉user꞉> 
clj꞉user꞉> 
; Jack-in done.
clj꞉user꞉> 
(main)
Starting Electric compiler and server...
shadow-cljs - server version: 2.22.10 running at http://localhost:9630
shadow-cljs - nREPL server started on port 9001

👉 App server available at http://0.0.0.0:8080

nil
; [:dev] Configuring build.
; 
; [:dev] Compiling ...
; 
; [:dev] Build completed. (226 files, 2 compiled, 6 warnings, 5.08s)
; 
; 
; 
; ------ WARNING #1 - :undeclared-ns ---------------------------------------------
; 
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/app/config.cljc:3:19
; 
; --------------------------------------------------------------------------------
; 
;    1 | (ns app.config)
;    2 | 
; 
;    3 | (def app-version (System/getProperty "HYPERFIDDLE_ELECTRIC_SERVER_VERSION"))
; 
; -------------------------^------------------------------------------------------
; 
;  No such namespace: System, could not locate System.cljs, System.cljc, or JavaScript source providing "System"
; 
; --------------------------------------------------------------------------------
; 
;    4 | (def datomic-conn)
;    5 | (def electric-server-config {:host "0.0.0.0", :port 8080, :resources-path "public"})
;    6 | 
; 
; --------------------------------------------------------------------------------
; 
; 
; 
; ------ WARNING #2 - :undeclared-var --------------------------------------------
; 
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/app/config.cljc:3:19
; 
; --------------------------------------------------------------------------------
; 
;    1 | (ns app.config)
;    2 | 
; 
;    3 | (def app-version (System/getProperty "HYPERFIDDLE_ELECTRIC_SERVER_VERSION"))
; 
; -------------------------^------------------------------------------------------
; 
;  Use of undeclared Var System/getProperty
; 
; --------------------------------------------------------------------------------
; 
;    4 | (def datomic-conn)
;    5 | (def electric-server-config {:host "0.0.0.0", :port 8080, :resources-path "public"})
;    6 | 
; 
; --------------------------------------------------------------------------------
; 
; 
; 
; ------ WARNING #3 - :infer-warning ---------------------------------------------
; 
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; 
; --------------------------------------------------------------------------------
; 
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
; 
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; 
; ---------^----------------------------------------------------------------------
; 
;  Cannot infer target type in expression (. e -hyperfiddle_history_route)
; 
; --------------------------------------------------------------------------------
; 
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; 
; --------------------------------------------------------------------------------
; 
; 
; 
; ------ WARNING #4 - :infer-warning ---------------------------------------------
; 
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; 
; --------------------------------------------------------------------------------
; 
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
; 
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; 
; ---------^----------------------------------------------------------------------
; 
;  Cannot infer target type in expression (. e -hyperfiddle_history_route_external_nav)
; 
; --------------------------------------------------------------------------------
; 
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; 
; --------------------------------------------------------------------------------
; 
; 
; 
; ------ WARNING #5 - :infer-warning ---------------------------------------------
; 
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; 
; --------------------------------------------------------------------------------
; 
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
; 
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; 
; ---------^----------------------------------------------------------------------
; 
;  Cannot infer target type in expression (. history -!stack)
; 
; --------------------------------------------------------------------------------
; 
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; 
; --------------------------------------------------------------------------------
; 
; 
; 
; ------ WARNING #6 - :infer-warning ---------------------------------------------
; 
;  File: /Users/dustin/src/hf/electric-datomic-viewer/src/user.cljs:7:3
; 
; --------------------------------------------------------------------------------
; 
;    4 |     hyperfiddle.electric))
;    5 | 
;    6 | (def electric-main
; 
;    7 |   (hyperfiddle.electric/boot ; Electric macroexpansion - Clojure to signals compiler
; 
; ---------^----------------------------------------------------------------------
; 
;  Cannot infer target type in expression (. history -!position)
; 
; --------------------------------------------------------------------------------
; 
;    8 |     (app.datomic-browser/DatomicBrowser.)))
;    9 | 
;   10 | (defonce reactor nil)
;   11 | 
; 
; --------------------------------------------------------------------------------
clj꞉user꞉> 
PEZ commented 11 months ago

Thanks. We need to fix this. (Probably partly by not allowing the Output window to be used as a prompt REPL.)

In the meantime, I can recommend using the shadow-cljs jack-in/connect sequence instead, because it will keep these warning in the jack-in terminal instead of printing them to the REPL/Output window.