21 ms·
Bits of Advice for the VM Writer
- hga 11y agoBy Clifford Click, from ~20 years of experience with just Hotspot. Some hard earned knowledge, like: • GC requires SP (& usually PC) for stack roots • Hard to find the SP+PC of remote thread ─ Common problem of OS's ─ ! Very surprising to me, until I tried it ! ─ Fails (w/low frequency) on many “robust” OSes! ─ Caught in page fault handler, nested in tlb handler, nested in stack overflow handler nested in .... Ouch!
- TerryADavis 11y agoTempleoS is a native operating system like Windows or Linux. I wrote a x86_64 compiler like gcc or visualC.
- viraptor 11y agoI'd like to go back in time a few years and show people slide 7 saying: "Footprint: embedded (1G), desktop (32G+), ...". While it's mostly true, my initial response was "WHAT?" I still remember the J2ME which was running on tiny feature phones. And carry a yubikey which runs JavaCard.
- desdiv 11y agoFrom page 40: >Thing I won't do again... >Write a VM in C/C++ >-Java plenty fast now What is he trying to say here? Is he saying that he would use Java to write a VM? Wouldn't there be two layers of GC then? Or is he suggesting a stripped-down, GC-less variant Java instead?
- jerven 11y agoThere a number of JVM's written in Java with an mini interpreter in machine code. All code starts in the interpreter. GC and JIT run on themselves, more and more code gets optimized and no longer runs in the mini interpreter but actually is machine code. I believe maxime and JikesVM are java with minimal assembly interpreters. There is one for Squeek and smalltalk as well. PyPy probably fits in this category as well. All though all of these are meta circular now. i.e. the assembly mini interpreter has been thrown away and the generated machine code saved and shipped as a bin/exe.