dirac + cljs-repl max call stack exceeded?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
- Tipo di issue
- Bug
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- clojure
- Ambito
- developer-experience, devtools
Direzione di ricerca
Riprodurre il problema dal branch collegato gen-cljs dirac-start-browser-repl-max-call-stack-exceeded, iniziando dalla riga 40 di build.boot e dal task di sviluppo di Boot. Eseguire boot dev, boot repl -c, quindi (start-repl), ricaricare localhost:3000 e ispezionare lo stack di bootstrap di clojure.browser.repl. Il lavoro è completato quando si è determinato se l’integrazione di Dirac causa la ricorsione e si è ripristinata la valutazione funzionante di ClojureScript in CIDER/Emacs.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Do feel free to shoot this down if this is not an issue with dirac, rather some of the other dependencies, a combination, or a too complex setup to dig into 😄
In an attempt to see how good of a cljs stack I could come up with, I was trying out dirac in combination with a few other tools along with boot; dirac, boot-cljs-devtools, boot-cljs-repl, boot-cljs, boot-http, boot-reload
This branch holds a repro https://github.com/torgeir/gen-cljs/tree/dirac-start-browser-repl-max-call-stack-exceeded.
What I'm seeing is by running boot dev (after adding (dirac)) to fire everything up, and connecting to it in another terminal window with boot repl -c - it connects nicely
➜ gen git:(dirac-start-browser-repl-max-call-stack-exceeded) boot repl -c
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
REPL-y 0.3.7, nREPL 0.2.13
Clojure 1.9.0
Java HotSpot(TM) 64-Bit Server VM 9+181
Exit: Control+D or (exit) or (quit)
Commands: (user/help)
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Find by Name: (find-name "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Examples from clojuredocs.org: [clojuredocs or cdoc]
(user/clojuredocs name-here)
(user/clojuredocs "ns-here" "name-here")
boot.user=>
but running (start-repl)
boot.user=> (start-repl)
<< started Weasel server on ws://127.0.0.1:63421 >>
<< waiting for client to connect ... Connection is ws://localhost:63421
Writing boot_cljs_repl.cljs...
and reloading the web page at http://localhost:3000 in chrome canary
connected! >>
#object[RangeError RangeError: Maximum call stack size exceeded]
RangeError: Maximum call stack size exceeded
at cljs$core$_EQ_ (http://localhost:3000/js/gen.out/cljs/core.js:4484:42)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:273:19)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
To quit, type: :cljs/quit
cljs.user=>
The repl still seems to be working
cljs.user=> (+ 1 2)
3
but the dirac console also complains
VM824:1 Dirac encountered an internal eval problem (:dirac.implant.eval/eval-exception).
RangeError: Maximum call stack size exceeded
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:272:33)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
at Object.clojure.browser.repl.bootstrap.goog.require [as require__] (http://localhost:3000/js/gen.out/clojure/browser/repl.js:295:16)
While evaluating:
goog.provide('cljs.user');
goog.require('cljs.core');
goog.require('cljs.repl');
goog.require('cljs.pprint');
//# sourceURL=repl://dirac-repl/dirac/228de5b1-1/init.js
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbDpcL1wvZGlyYWMtcmVwbFwvZGlyYWNcLzIyOGRlNWIxLTFcL2luaXQuanMiLCJzb3VyY2VzIjpbImluaXQuY2xqcyJdLCJsaW5lQ291bnQiOjcsIm1hcHBpbmdzIjoiQUFBQSIsIm5hbWVzIjpbXSwic291cmNlc0NvbnRlbnQiOlsiKG5zIGNsanMudXNlciAoOnJlcXVpcmUgW2NsanMucmVwbCA6cmVmZXItbWFjcm9zIFtzb3VyY2UgZG9jIGZpbmQtZG9jIGFwcm9wb3MgZGlyIHBzdF1dIFtjbGpzLnBwcmludCA6cmVmZXIgW3BwcmludF0gOnJlZmVyLW1hY3JvcyBbcHBdXSkpIl19
Is this a problem? I don't know. The issue I am having with it is that my emacs instance is no longer able to run cider-connect followed by (start-repl) and have a working repl inside emacs to evaluate cljs code on the go.
I am running boot with the following ~/.boot/profile.boot in place to have things working inside emacs.
(def v-tools-nrepl "0.2.13")
(def v-cider-nrepl "0.17.0-SNAPSHOT")
(def v-refactor-nrepl "2.4.0-SNAPSHOT")
(deftask cider "CIDER profile"
[]
(require 'boot.repl)
(swap! @(resolve 'boot.repl/*default-dependencies*)
concat `[[org.clojure/tools.nrepl ~v-tools-nrepl]
[cider/cider-nrepl ~v-cider-nrepl]
[~'refactor-nrepl ~v-refactor-nrepl]
])
(swap! @(resolve 'boot.repl/*default-middleware*)
concat '[cider.nrepl/cider-middleware
refactor-nrepl.middleware/wrap-refactor
])
identity)
Without (dirac) in place in the boot dev task, substituting the boot dev mentioned above with boot cider dev and running cider-connect followed by (start-repl) seems to be working nicely and allows me to eval cljs from the emacs instance.
Edit:
With these versions of boot and clojure, on java 9
cat ~/.boot/boot.properties
#http://boot-clj.com
#Fri Jan 26 21:08:58 CET 2018
BOOT_VERSION=2.8.0-SNAPSHOT
BOOT_CLOJURE_VERSION=1.9.0
BOOT_CLOJURE_NAME=org.clojure/clojure
- Lingua principale
- Clojure
- Stelle
- 775
- Fork
- 29
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di binaryage/dirac
-
ns/as-alias not supported Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 30/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
Does dirac need a proxy ? Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
Tutte le issue di binaryage/dirac
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
clojure-emacs/cider#4203 ·
-
.Team/QueryingPlatform Priority:P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
clj-commons/antq#329 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100