Cognition (Devin AI) to Acquire Windsurf (cognition.ai)
295 points by alazsengul 3h ago 232 comments
Replicube: 3D shader puzzle game, online demo (replicube.xyz)
50 points by inktype 3d ago 9 comments
SQLite async connection pool for high-performance (github.com)
18 points by slaily 3d ago 8 comments
Running Clojure in WASM with GraalVM
203 roman01la 39 4/27/2025, 7:50:07 AM romanliutikov.com ↗
https://labs.leaningtech.com/blog/cheerpj-4.0
And yes, it can run Minecraft :-)
https://browsercraft.cheerpj.com/
I used it to make a program that logs all activity happening on the Pioneer CDJs. The best reverse engineering of the Pioneer protocols is a Java project, but I wanted to write the rest of my application in Go.
GraalVM plus a GitHub action spits out native binaries that I can exec and interact with over stdio from Go.
If/when the WASM backend supports UDP networking and threads I'd love to run it as WASM instead of a binary.
- https://github.com/nzoschke/vizlink
- https://github.com/nzoschke/vizlink/blob/main/.github/workfl...
GraalVM is so amazing technically, but gets so little love by HN.
This post references the ability to compile programs via native images to WASM as an output format.
https://www.oracle.com/downloads/licenses/graal-free-license...
Everyone else in the world probably does not see this as "straight forward".
So Step 0, be a lawyer.
https://blogs.oracle.com/java/post/free-java-license
Any company using Java should be willing to read and understand Oracle's terms, whether they use third party OpenJDK distributions or Oracle's builds.
If you're leaving significant performance gains on the table because you can't read, that's on you.
In the projects where that isn't required, usually we have licence validation tooling on the CI/CD pipeline, that breaks the build if the legal wishes aren't fulfilled.
Since you want to build completely from source, you start by installing OpenJDK. Then you clone the Labs JDK repo [0] and build it just like how you would build any other OpenJDK. Once you have the Labs JDK, you don't need the OpenJDK anymore, since that's only necessary to build the Labs JDK. If you use a normal OpenJDK instead of Labs JDK for Graal, the Graal build will most likely tell you something about "too old JVMCI" and fail. Don't do that.
Next you clone mx [1] and graal [2] into some folder and add the mx folder to PATH. You also need Python and Ninja installed, and maybe something else which I can't remember anymore (but you'd quickly figure it out if the build fails). Once you have that, you go to graal/vm and run the relevant "mx build" command. You specify the path to the Labs JDK via the "--java-home" CLI option and you have to decide which components to include by adding them to the build command line. I can't remember what exactly happens with just "mx build" but chances are this only gives you a bare GraalVM without anything else, which means also no SubstrateVM ("native-image"). By adding projects on the command line, you can include whatever languages/features are available. And that's it. After some time (depending on how beefy your computer is), you get the final GraalVM distribution in some folder, with a nice symlink to find it.
It's not exactly documented in a good way, but you can figure it out from the CI scripts which are in the git repos of Graal and Labs JDK. The "mx build" command is where you decide which languages and features to include; if you want to include languages from external repositories, you have to clone them next to the graal and mx folder and add the relevant projects to the mx build command.
[0] https://github.com/graalvm/labs-openjdk
[1] https://github.com/graalvm/mx
[2] https://github.com/oracle/graal
That’s much better than I expected! Very impressive work here. It actually looks viable for certain applications.
GraalVM is excellent technology, but when it comes to targeting Wasm, I believe the core language compilers will always have an edge.
https://youtu.be/nnDo0i6NbsI?si=XSqgSVoV6ISBWg2n&t=185
https://webassembly.org/