dundalek/closh

[QUESTION] Why Clojurescript and not JVM?

Closed this issue ยท 14 comments

Why Clojurescript and not JVM?

I come from js and node background so it is easier for me to hack on. Plus lumo is awesome and it does a lot of heavy-lifting. Basically when I saw lumo I got the idea I could just hack the REPL a bit and got the prototype working.

I think with the new clj tool and clj.main Clojure proper gets more hackable too. It would be a cool exercise to abstract the code and implement platform specific code for JVM support. I would like to have that eventually down the road.

JVM is faster, but has a lot slower startup time. Waiting 10 seconds for your shell to start up every time would be a no-go for me.
Otherwise I would also like to see a JVM version.

I am hoping that in the future it could be compiled to native code with Graal which should make the startup time be less than a second.

Anyway, the JVM port is in progress in the master branch. It is mostly done, there are just a few issues that need to be ironed out before a release.

this is exciting. when will this be out?

I don't want to give any promises, but it will hopefully be done in a month or so.

Just FYI here are remaining issues that need to be completed for the JVM integration so that it can be released for v0.3:

  • Fix remaining failing unit tests regarding file redirection
  • Fix cding to non-existing directory which ends in infinite loop
  • Handle SIGINT properly
    • For example when a process runs (like sleep 10) and ctrl+c is pressed then shell quits.
    • Make sure it also interrupts properly when running in process thread, e.g. (Thread/sleep 10000) and pressing crtl+c
  • Bonus: Port the autojump integration
  • Fix glob expansion when switching directories

would it also be possible to have nrepl support?

@zcaudate What would be the use case for having nrepl?

@dundalek: I'd be looking at it as a replacement for lein

it'd be essentially like having both the shell and the repl in one.

@zcaudate I see, it should be possible to include nrepl middleware to start an nrepl server. Could you create a separate issue so we can track it there?

I think this can be closed as there is a JVM version now..? ๐ŸŽ‰ #87

I'm already playing with it => #92

I agree. Unfortunately more blocking issues were discovered. There are separate issues opened, I label them with bug and jvm tags.