Please log in to watch this conference skillscast.
Metascala is a tiny metacircular Java Virtual Machine (JVM) written in the Scala programming language. Metascala is barely 3000 lines of Scala, and is complete enough that it is able to interpret itself metacircularly. Being written in Scala and compiled to Java bytecode, the Metascala JVM requires a host JVM in order to run.
The goal of Metascala is to create a platform to experiment with the JVM: a 3000 line JVM written in Scala is probably much more approachable than the 1,000,000 lines of C/C++ which make up HotSpot, the standard implementation, and more amenable to implementing fun features like continuations, isolates or value classes. The 3000 lines of code gives you:
- The bytecode interpreter, together with all the run-time data structures
- A stack-machine to SSA register-machine bytecode translator
A custom heap, complete with a stop-the-world, copying garbage collector
Implementations of parts of the JVM's native interface
Although it is far from a complete implementation, Metascala already provides the ability to run untrusted bytecode securely (albeit slowly), since every operation which could potentially cause harm (including memory allocations and CPU usage) is virtualized and can be controlled. Ongoing work includes tightening of the security guarantees, improving compatibility and increasing performance.
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm from Skills Matter.
YOU MAY ALSO LIKE:
- Bootstrapping the Scala.js Ecosystem (SkillsCast recorded in December 2014)
- Real World Kotlin Development Workshop (in London on 22nd - 23rd October 2019)
- Lightbend Akka for Scala - Professional (in London on 11th - 12th November 2019)
- Clojure eXchange 2019 (in London on 2nd - 3rd December 2019)
- Scala eXchange London 2019 (in London on 12th - 13th December 2019)
- Code Kata: Yilin Wei - Optics with Monocle (in London on 22nd October 2019)
- Don’t keep it to yourself - openness and honesty in the workplace (in London on 30th October 2019)
- Keynote: (Programming Languages) in Agda = Programming (Languages in Agda) (SkillsCast recorded in October 2019)
- Keynote: Haskell is a Great Host (SkillsCast recorded in October 2019)