Live data from Hacker News

The Jank Language: LLVM Hosted Clojure

jank-lang.org

41–50 of 83 posts

Re: The Jank Language: LLVM Hosted Clojure

#41

I'll be curious to see what the performance comparisons of typical Clojure programs will be. Persistent data structures tend to benefit a lot from highly optimised garbage collectors like those packaged with the JVM. And Clojure's highly dynamic style probably benefits a lot from JIT techniques too. Still, it's a fascinating project, which I will watch closely.

jank is currently using immer for persistent data structures: https://github.com/arximboldi/immer

Very much inspired by Clojure, with a lot of time put into benchmarking and profiling.

It's too early for me to share numbers on jank vs Clojure itself, especially due to the rewrite, but my earlier jank versions were definitely competitive with AOT compiled Clojure jars.

Re: The Jank Language: LLVM Hosted Clojure

#42
post #39

Interesting project! I have been wondering why there isn’t a LISP on top of LLVM yet (except Common Lisp port, Clasp). Good that someone started to work on this.

Jank looks like a project to check in on its status a few times a year, exciting possibilities.

For your thinking about Clasp and alternatives for Common Lisp: I don’t think there is a gap to be filled with Common Lisp deployment. For free, build SBCL from source enabling heap saves compression. Then creating SBCL Common Lisp apps produces a fairly small app size, easy to build and distribute. Or, pay for something like LispWorks and creating compact standalone applications is perhaps even easier.

Re: The Jank Language: LLVM Hosted Clojure

#43
Yes, naming things is hard, but, "jank"? Yikes.

"Jank" describes undesirable, problematic, glitchy UX. I genuinely thought that the title was denigrating Clojure on LLVM. Maybe it's intended to be funny or ironic, and if it catches on it won't matter, but it sure seems like a footgun.

Re: The Jank Language: LLVM Hosted Clojure

#44
Unless I'm reading it wrong, it sounds from the license[1] like programs made with Jank that you want to distribute must have their source available. If the intention is that distributions of the _Jank compiler itself_ are the only things that need source available, I think it'd be good to spell that out.

[1]: https://github.com/jeaye/jank/blob/main/LICENSE

Re: The Jank Language: LLVM Hosted Clojure

#45

Yes, naming things is hard, but, "jank"? Yikes. "Jank" describes undesirable, problematic, glitchy UX. I genuinely thought that the title was denigrating Clojure on LLVM. Maybe it's intended to be funny or ironic, and if it catches on it won't matter, but it sure seems like a footgun.

... which is a shame, bc the linked landing page does a great job of explaining what jank-lang is, and it looks really cool.

Re: The Jank Language: LLVM Hosted Clojure

#46

If they could pull off easy integration with the C and C++ world that would be an absolute killer feature. They are basically trying to make my new dream language. The only thing I am worried about is compile time. It seems many projects using LLVM have trouble with that. See Julia with its LLVM JIT, though they did manage to improve it somewhat. I guess it is simply to early to tell, lets hope for the best.

Compile times will be slower than Clojure's, for sure. That also means run-time speed will be affected, due to JIT compilation time. This will not affect AOT compiled run-time speed, though. I don't have numbers yet, but you're right that compiling C++ with LLVM could be much faster. :)

Re: The Jank Language: LLVM Hosted Clojure

#48
post #44

Unless I'm reading it wrong, it sounds from the license[1] like programs made with Jank that you want to distribute must have their source available. If the intention is that distributions of the _Jank compiler itself_ are the only things that need source available, I think it'd be good to spell that out. [1]: https://github.com/jeaye/jank/blob/main/LICENSE

This applies to the compiler itself, in the same way that GCC is under the GPL but that doesn't mean all programs you compile with it are also under the GPL.

Re: The Jank Language: LLVM Hosted Clojure

#49
post #48
post #44

Unless I'm reading it wrong, it sounds from the license[1] like programs made with Jank that you want to distribute must have their source available. If the intention is that distributions of the _Jank compiler itself_ are the only things that need source available, I think it'd be good to spell that out. [1]: https://github.com/jeaye/jank/blob/main/LICENSE

This applies to the compiler itself, in the same way that GCC is under the GPL but that doesn't mean all programs you compile with it are also under the GPL.

Thanks! That seems totally reasonable to me.

I do feel like this needs to be explicit in the license, especially if jank includes a runtime that is distributed along with your programs.

Looks like a great project to follow!

Re: The Jank Language: LLVM Hosted Clojure

#50
post #47

The only reason Clojure is viable for production use is because it relies on the really good JVM GCs. How will Jank try to solve the the GC problem?

The question is answered in Clojurian Slack:

"Reference counting is the current design. This is something I'll be digging more into, but I really don't think a GC would be ideal."

Post reply on HN