So nice to find this, I was almost thinking about using Clasp. #65
Replies: 1 comment 2 replies
-
If you need something today, clasp may be your best choice. jank isn't ready for use just yet, but I aim to have a rough-but-workable version distributed to folks in a few months.
You're right about this. With the JVM, everything is an Object, so any of Clojure's collections can old any value you can throw at it. C++ has no notion of this, so we need to explicitly type-erase things, which involves an allocation and extra code when you put it in and take it out of the jank system.
The main work here started at CERN, when they built Cling (a JIT C++ compiler). Right now, jank uses Cling behind the scenes, to make all of the REPL JIT goodness come to life. But all of this is getting upstreamed into LLVM and the JIT ecosystem in LLVM is growing very quickly (a PR for JIT reoptimization just landed in LLVM in the past week!). There are still some blocker bugs on the LLVM side which prevent jank from switching away from Cling to use the new LLVM version, but it'll be a big win once we can. If you do have C++ and/or Clojure experience and you're looking to lend a hand, let me know! Otherwise, hang tight and watch for my monthly blog posts. 🙂 |
Beta Was this translation helpful? Give feedback.
-
but java's type system is much more straightforward than cpp, I can imagine that cpp interop would not be easy. Thank god we have LLVM now. Otherwise the alignment between JVM, x86, Arm and other machine codes would be impossible without a big commercial engineering team.
Beta Was this translation helpful? Give feedback.
All reactions