Skip to content

Releases: mega12345mega/Minecraft-JVM

v0.3.0

30 Aug 07:20
e194e8c

Choose a tag to compare

  • Added inheritance and polymorphism
  • Added static field support
  • Added <clinit> support
  • Added instanceof support (doesn't yet support arrays)
  • Added -sysout flag to view compilation progress and total time
  • Added mcj:shutdown, which runs mcj:setup and then removes running (instead use mcj:terminate, which already exists, to view the current state of the heap, stack, etc.)
  • Made mcj:setup clear out extra data used for old macro calls
  • Fixed namespace:main incorrectly setting up the entrypoint for maxCommandChainLength detection, which also prevented it from calling other entrypoints
  • Moved the examples into their own namespaces
  • Renamed constructor_ to init_ when using -expandedPaths
  • Fixed handling of null Strings
  • Improved String support for ints and booleans
  • Moved fields on the heap into a fields compound
  • Added storage mcj:data classes, which includes values for static fields and vtables (and more)
  • Added field~<name> and included fields in class~
  • Added const~<name>, where <name> can be:
    • global/namespace
    • global/main_class
    • global/expanded_paths
    • class/path
    • class/name
    • class/is_main
    • method/path
    • method/param_count
    • method/is_main
    • method/is_static
    • method/is_native
    • method/is_void

v0.2.0

22 Aug 07:07
da4a23b

Choose a tag to compare

  • Changed $(~METHOD_PATH~)/<path> into $(~<path>), with additional $(method~<name><descriptor>[/<path>]) and $(class~package/Class$Nested~<name><descriptor>[/path]) path generators to accommodate path hashing
  • Added path hashing, which greatly shortens function names (use -expandedPaths for full file paths or @MCJExpandPath for a specific class)
  • Made @MCJImplFor apply to all references, even outside the class
  • The API now generates into the mcj namespace rather than your namespace
  • Added @MCJEntrypoint, which allows more entrypoints than just namespace:main
  • Added an EventManager along with a tick event
  • Added detection for when maxCommandChainLength is hit, which terminates Minecraft JVM
  • Made the terminate function display what entrypoint was called
  • When the Minecraft JVM is forcefully terminated (including maxCommandChainLimit), all entrypoints (including the tick event) will not run unless they call mcj:setup to prevent a corrupted state causing problems
  • Other misc additions to the API
  • Refactored code into PathProviders
  • Example code

v0.1.1

19 Aug 08:49
ae97864

Choose a tag to compare

Fixed StringBuilder missing append(int) and append(boolean)

v0.1.0

19 Aug 04:35
6d66a4e

Choose a tag to compare

Added integer +-*/%, added to the API, fixed lots of bugs

v0.0.1

16 Aug 04:46
bdeb983

Choose a tag to compare

Proof of concept