clojure-emacs / squiggly-clojure

Flycheck checker for Clojure, using eastwood and core.typed.
GNU General Public License v3.0
204 stars 25 forks source link

Feature Request: Optionally use a separate JVM for linting. #41

Open EricGebhart opened 8 years ago

EricGebhart commented 8 years ago

I was thinking that my problem #40 could possibly not be as much of a problem if flycheck clojure used a second jvm just for it's purposes. Things seem to work reasonably well in #40 if it weren't for the fact that eastwood corrupts my JVM. And it makes no promises that it won't. So who knows what else could happen that might not result in such an obvious failure. As obvious as it is now, it took me a few days to understand that it wasn't my code or something else.

Cider has had nice connection management working for a while. So I'm wondering how hard would it be to create a second JVM and use that for all of the code checking. It should probably be optional since some people might not want to be running two JVMs.

Obviously the load would have to happen twice. But otherwise, using cider's connections should be fairly straight forward. It seems like this could be an easy win given eastwood's experimental status for repl calls and it would also be faster since the working jvm wouldn't be waiting on the code checks.

If I can help in any way, I'm willing. I might be able to make a pull request, but I can't promise that. I've got other things breathing down my neck.

pnf commented 8 years ago

That's definitely something I've thought about. Of course this won't stop corruption within the linting VM, as you're still using Eastwood in this nonstandard persistent fashion, and it might actually be harder to debug, so you'll be tempted to add restart logic, the ultimate manifestation of which would be to run a new VM for every lint cycle. At some point, it will seem easiest just to repeatedly invoke the lein command, thereby achieving maximum isolation, using Eastwood in the way that's actually supported, and reducing the flycheck plugin to the standard variety that just knows how to parse stdout.

On Jun 23, 2016, at 12:57 AM, Eric Gebhart notifications@github.com wrote:

I was thinking that my problem #40 could possibly not be as much of a problem if flycheck clojure used a second jvm just for it's purposes. Things seem to work reasonably well in #40 if it weren't for the fact that eastwood corrupts my JVM. And it makes no promises that it won't. So who knows what else could happen that might not result in such an obvious failure. As obvious as it is now, it took me a few days to understand that it wasn't my code or something else.

Cider has had nice connection management working for a while. So I'm wondering how hard would it be to create a second JVM and use that for all of the code checking. It should probably be optional since some people might not want to be running two JVMs.

Obviously the load would have to happen twice. But otherwise, using cider's connections should be fairly straight forward. It seems like this could be an easy win given eastwood's experimental status for repl calls and it would also be faster since the working jvm wouldn't be waiting on the code checks.

If I can help in any way, I'm willing. I might be able to make a pull request, but I can't promise that. I've got other things breathing down my neck.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

EricGebhart commented 8 years ago

It's true that could be the path, but it could possibly work reasonably well, and even if the linter jvm becomes corrupt it probably doesn't matter since it reloads every time anyway.

You've thought it about a lot more than I have. I just thought of it last night. If it's easy enough to add a dedicated JVM as an option, then it could be an easy experiment.

MalloZup commented 5 years ago

autogenerated with https://github.com/MalloZup/doghub: issue inactive since 450 days. Please update the issue or close it

EricGebhart commented 5 years ago

Any chance this might happen?

pnf commented 5 years ago

I could ask you the same thing... To use your phrase, I've also got other things breathing down my neck, and my day job doesn't involve clojure, so there's a bit of overhead for me in getting back into the fray. I'd love to work on this, but to be completely honest I can't imagine spending much time on it in the next few months.

EricGebhart commented 5 years ago

There's no reason to be upset about it. Maybe I can take a look. It is nice using it within emacs when it doesn't cause problems like it does with cascalog. Or maybe there is a better way to use it from emacs. That would give the same benefit as with squiggly. Envoyé depuis mon téléphone Huawei-------- Message original --------Objet : Re: [clojure-emacs/squiggly-clojure] Feature Request: Optionally use a separate JVM for linting. (#41)De : Peter Fraenkel À : clojure-emacs/squiggly-clojure Cc : Eric Gebhart ,Author I could ask you the same thing... To use your phrase, I've also got other things breathing down my neck, and my day job doesn't involve clojure, so there's a bit of overhead for me in getting back into the fray. I'd love to work on this, but to be completely honest I can't imagine spending much time on it in the next few months.

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.

pnf commented 5 years ago

No, it is upsetting! I really wish I could find time to work on this, because it would be fun, and because it's really great for my ego that there are people actually using this little bit of code I wrote back when I had spare time. Full-time employment is a total drag sometimes.

EricGebhart commented 5 years ago

Ok. Yea, I agree. I totally understand. I didnt mean to touch a nerve. I got an email telling me to comment or close it. I still think it could be a really nice option. I'm doing some clojure now. Maybe I can look, but I've got to learn it before I have a chance to do anything with it. There are too many things to learn and do. -------- Message original --------Objet : Re: [clojure-emacs/squiggly-clojure] Feature Request: Optionally use a separate JVM for linting. (#41)De : Peter Fraenkel À : clojure-emacs/squiggly-clojure Cc : Eric Gebhart ,Author No, it is upsetting! I really wish I could find time to work on this, because it would be fun, and because it's really great for my ego that there are people actually using this little bit of code I wrote back when I had spare time. Full-time employment is a total drag sometimes.

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.