Skip to content

buhman/jvm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

221ec16 · Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Jan 15, 2025
Jan 15, 2025
Jan 21, 2025
Jan 5, 2025
Jan 20, 2025
Jan 22, 2025
Jan 12, 2025
Jan 2, 2025
Dec 25, 2024
Dec 28, 2024
Jan 22, 2025
Jan 3, 2025
Dec 26, 2024
Jan 7, 2025
Jan 21, 2025
Jan 22, 2025
Jan 22, 2025
Jan 22, 2025
Dec 27, 2024

Repository files navigation

JVM

This is a fully independent JVM implementation that can be either "hosted" by an operating system, or "unhosted" without an operating system.

An "unhosted" demo for Sega Dreamcast was submitted as a part of the Dream Disc '24 competition: https://purist.itch.io/dreamcast-jvm

Current status

The current JVM implementation is fairly complete, and will correctly interpret a wide range of Java code correctly.

However, the following JVM features are not (yet) supported:

  • invokedynamic (Java ≥9: Java lambdas, Java string concatenation, etc...)
  • jsr/ret (Java ≤1.5: I have failed to independently reproduce the circumstances under which javac emits these instructions)
  • synchronized methods (Java threads are also not implemented)
  • runtime type checks (instanceof/checkedcast) on zero-length arrays of references
  • interface fields