~/talk

Implementing a Simple JVM in Rust

Talkat Devoxx Belgium 2019 · 2019-11-04..11-08· [rust, compilers-and-language-design]
slides:none on file

Open-source Rust implementation builds a working JVM subset: a bytecode interpreter, classfile parser and loader, constant pool, evaluation stack and heap representation that can load real .class files and execute simple methods. It omits a JIT and implements no GC, relies on an interpreter loop and switch/match dispatch, adds fields, branching, int/double arithmetic, object construction, native method support (eg System.currentTimeMillis) and class bootstrap/CLINIT; tests run via Cargo/crates and the implementation successfully executes small Java programs.

AI-written summary · about

  1. 0:00Intro
  2. 1:12Who am I
  3. 1:45Java Champion
  4. 3:00Goals
  5. 5:29Java Version
  6. 6:01The JVM
  7. 12:49The bytecode
  8. 14:41The class file
  9. 16:06Invoke code
  10. 17:18Model local variables
  11. 18:48Building a first implementation
  12. 19:18A few things about Rust
  13. 19:49Rust project structure
  14. 23:55Non erased generics
  15. 24:17Algebraic data types
  16. 26:35Handling of storage
  17. 27:22Misunderstood assignment semantics
  18. 27:35Examples of perfectly safe Rust programs
  19. 27:53If youve programmed in C
  20. 28:48Lets meet some Rust code
  21. 29:30TDD
  22. 30:31Java byte codes
  23. 31:47Generics
  24. 32:48OptRec
  25. 34:23Exact Method
  26. 34:49Declaration
  27. 35:06Looping
  28. 35:29Vectors
  29. 36:03Advanced
  30. 36:34eval
  31. 36:49icons
  32. 37:12enum
  33. 38:36colon
  34. 39:04files
  35. 39:24Const
  36. 39:47Runtime Checking
  37. 40:21Testing
  38. 43:39FieldHaver
  39. 44:44Go Clean
  40. 45:19Test Cycle
  41. 46:25Top Level
  42. 47:49Runtime Datastore
  43. 48:55Class Name
  44. 49:13Function Pointer
  45. 49:40Fixing ocelots
  46. 49:56Bootstrap
  47. 51:24Whats next
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.