ikvmnet / ikvm

A Java Virtual Machine and Bytecode-to-IL Converter for .NET
Other
1.24k stars 116 forks source link

Pack200 native implemention #370

Closed wasabii closed 1 year ago

wasabii commented 1 year ago

In an effort to get Pack200 working for #364, this PR implements P2P references for ClangProjects, implements libverify #368, libjvm #366, libjava #367 and libunpack.

wasabii commented 1 year ago

libjvm is basically hotspot. It will largely consist of hand-written functions that are not part of OpenJDK, but instead short trampolines that simply call into .NET code, and manipulate IKVM structures. This should be good in the short term, as long as libjvm is loaded up at IKVM startup: as long as .NET is already running.

However, long term, libjvm should more properly implement the actual libjvm API: the ability to link against it to actually host a full VM. This would potentially allow Java applications which make use of libjvm.so, etc, directly, to instead link against the IKVM VM, spawn .NET, etc.

To do this, libjvm is going to need to have .NET Core and Framework hosting code, to spawn up the CLR.

wasabii commented 1 year ago

fixes #364 #366 #367 #368