Skip to content

List view

  • The JVM can run actual user programs (not just simplistic ones) with little to no issues. The JVM is effectively complete, even if slow.

    No due date
  • There must be support for more advanced inheritance, such as polymorphism/dynamic dispatch. There should also be minimal threading support and exception handling.

    No due date
  • At this stage, the JVM must support including more than one class file and handle linking between the two. As well, there must be support for basic classes and heap management (like Garbage Collection).

    No due date
  • Java Virtual Machine should be at a stage where a simple user program, in a single class file, is functional. This means full support for all primitive types, strings, conditionals, loops, etc. As well, it should be able to call other methods within the same class and access/update global variables. Lastly, lexical scoping needs support as well. A proper unit testing framework must be established for easier incremental updates in later milestones. Note: This phase is the most challenging and will likely take the longest. Not only will I have to get back into Haskell again, but I need to redesign the entire JVM again to be more monadic, and to allow unit testing integration.

    No due date
    6/6 issues closed