-
Notifications
You must be signed in to change notification settings - Fork 1
Jacobin Overview
Jacobin is a project to write a JVM in Swift
The intent is to develop a JVM that is fairly capable: running classes and JARs correctly and quickly. It aims to support all the features of Java SE 11 except for: the JIT, FFI (foreign function interface, which Oracles is rewriting entirely), and the security manager (which Oracle recently proposed to remove entirely from the JDK).
Because part of the motivation for this project is educational, the source code is heavily commented and should be useful to those interested in examining the mechanisms and operations of the JDK.
One question that might arise is: why use Swift? Swift has several properties that make it a good choice: it is very strict on enforcing types and clean memory allocations (only Rust is more stringent that I'm aware of), it compiles to native code (Mac, Linux, Windows), it's fast, it has built-in memory management (which means that we don't need to implement garbage collection), and it enjoys a thriving ecosystem with good tools and plenty of folks to answer questions. It is also regularly updated.
Thanks to JetBrains for the open-source project license to two great tools: IntelliJ and CLion (with the Swift plugin)!
Thanks to the Oracle Java team for excellent JVM documentation. (Is there any major software platform of any kind that is documented in such detail and whose documentation is updated with every release?)
Thanks for many detailed and thoughtful articles and two books on the JVM workings by Benjamin Evans (@kittylyst) Few people write as clearly on deeply technical topics as Ben.
Thanks to GitHub for hosting this project and making so many good tools available at no cost.
Finally, thanks to you for coming by! There will be software soon for you to try out. Want to encourage this project? Click on the star. It's the equivalent of a no-money version of Patreon. ;-)
