chlorine-clover

About Chlorine for Atom and Clover for VS Code: https://atom.io/packages/chlorine and https://marketplace.visualstudio.com/items?itemName=mauricioszabo.clover
seancorfield 2020-02-15T01:10:51.091300Z

Just tripped over a change of behavior that I hope is unintentional:

(comment
  (def seo (component/start (build-system 9310 :http-kit)))
  (clojure.core.cache.wrapped/seed (-> seo :application :caches :i18n) {})
  (component/stop seo))
On 0.4.2? 0.4.3, if your cursor was right before the ( on each of those three lines, Evaluate Block would evaluate the expression that followed; as of 0.4.5 it evaluates the comment block instead (and returns nil)

seancorfield 2020-02-15T01:12:29.092600Z

The REPL connection also seems really unstable in this latest version. I keep hitting errors inside unrepl code, weird nil pointers, and it seems to even be corrupting my main REPL at the command-line.

seancorfield 2020-02-15T01:13:23.093Z

I'm going to turn off the Experimental Features and see if it's better...

seancorfield 2020-02-15T01:17:58.094Z

OK, with Experimental Features turned off, it seems to be more stable -- a sequence of commands that blew something in unrepl worked just fine this time.

seancorfield 2020-02-15T01:18:15.094500Z

So what am I missing with EF turned off? (just Clojure -- I don't do cljs)

mauricio.szabo 2020-02-15T01:44:37.095600Z

There were some instability issues with the block detection. I think I was able to find a way to keep the old behavior.

mauricio.szabo 2020-02-15T01:46:14.097100Z

@seancorfield, did you upgrade your Clojure version? These last 3 versions did nothing (or almost nothing) on Clojure side...

mauricio.szabo 2020-02-15T01:46:33.097700Z

I'll do a diff here on code between versions to see if there's something wrong...

mauricio.szabo 2020-02-15T01:47:22.098500Z

(also, since 0.4.0, there's nothing on Clojure side in experimental features...)

seancorfield 2020-02-15T01:48:33.100Z

Nothing's changed on my side. This is the same work setup I've been using for ages.

mauricio.szabo 2020-02-15T01:49:15.101400Z

That's really strange. Do you have any examples on these unrepl errors?

seancorfield 2020-02-15T01:49:17.101600Z

If I see the weird behavior again, I'll try to repro more carefully (and I'll keep EF off for now -- good to know nothing there affects Clojure).

seancorfield 2020-02-15T01:49:51.102100Z

Execution error (IllegalStateException) at unrepl.core/non-eliding-write (REPL:31).
Attempting to call unbound fn: #'unrepl.core/write
user=> (pst)
IllegalStateException Attempting to call unbound fn: #'unrepl.core/write
	clojure.lang.Var$Unbound.throwArity (Var.java:45)
	unrepl.core/non-eliding-write (NO_SOURCE_FILE:31)
	unrepl.core/non-eliding-write (NO_SOURCE_FILE:27)
	unrepl.repl/3rcwMcc9rCLOH4gMQfLo21mMbCs/tagging-writer/fn--13607 (NO_SOURCE_FILE:503)
	unrepl.repl/3rcwMcc9rCLOH4gMQfLo21mMbCs/tagging-writer/fn--13603 (NO_SOURCE_FILE:498)
	unrepl.repl$3rcwMcc9rCLOH4gMQfLo21mMbCs.proxy$<http://java.io|java.io>.Writer$ff19274a.write (:-1)
	<http://java.io|java.io>.BufferedWriter.flushBuffer (BufferedWriter.java:120)
	<http://java.io|java.io>.BufferedWriter.flush (BufferedWriter.java:256)
	clojure.core/flush (core.clj:3711)
	clojure.core/prn (core.clj:3721)
	clojure.core/prn (core.clj:3714)
	clojure.core/apply (core.clj:665)

seancorfield 2020-02-15T01:50:18.102900Z

That was in my regular REPL after eval'ing some code via Chlorine into a Socket REPL started from that regular REPL.

mauricio.szabo 2020-02-15T01:53:03.105Z

I'll see if there's any change on the UNREPL repository, some fix or new version. In the meantime I'll try to debug here

mauricio.szabo 2020-02-15T02:06:27.109500Z

I asked about Clojure version because I saw some strange behavior of the REPL on Clojure 1.10.1 (some functions disappearing from clojure.core namespace) but I wasn't able to reproduce most of the time...

mauricio.szabo 2020-02-15T02:07:52.111300Z

Also, I just remembered that I changed the version of unrepl blob, I'll check if it can be an issue...

mauricio.szabo 2020-02-15T02:10:52.114400Z

@seancorfield just one last question - these nil pointers are errors while evaluating Clojure core, or issues like you evaluate something and it just returns nil and not the result of the code?

seancorfield 2020-02-15T02:37:17.115700Z

I evaluated something that should return non-`nil` (and normally was doing so) and instead it displayed nil in red followed by an exception from somewhere inside the unrepl code -- that was inline in Atom (the above was in the command-line REPL).

seancorfield 2020-02-15T02:37:50.116400Z

As for Clojure 1.10.1, I've been using that ever since it appeared, with no issues until recently...

mauricio.szabo 2020-02-15T18:05:23.118800Z

Ok, I'll look at it too :). I'll also see if I can get a version that doesn't use UNREPL (it will ease support for CLR and some other clojure flavors) so there are less "moving parts" that can fail

seancorfield 2020-02-15T19:31:19.119300Z

I would love a version that doesn't need to inject unrepl into my running process!