Unified · Split
| @@ -0,0 +1,53 @@ | ||
| 1 | +This project is intended to run Java 7 apps natively in inferno, | |
| 2 | +by converting class files to dis and linking them at runtime. | |
| 3 | + | |
| 4 | +Currently working features: | |
| 5 | + - not many of them really, see problem list below | |
| 6 | + - although jvm runtime loader and linker is supposed to | |
| 7 | + work with java 1.4 classes (there was no chance to get | |
| 8 | + those sources, as java released only 1.5 ones and later) | |
| 9 | + sources are needed to provide native part of the JCL | |
| 10 | + | |
| 11 | +TODO: | |
| 12 | + - reworkd j2d to support modern exception handling in dis | |
| 13 | + - implement support for new bytecode instructions: | |
| 14 | + - DONE - ldc, ldc2, ldcw_2, ldc2_w: those will accept | |
| 15 | + more argument types, see http://docs.oracle.com/ | |
| 16 | + javase/specs/jvms/se7/html/jvms-4.html#jvms-4.10.1.9.ldc | |
| 17 | + since class file version 49.0 | |
| 18 | + - invokedynamic, completely new since 49.0 | |
| 19 | + - prepare the pkg dir that would contain all the JCL classes | |
| 20 | + from the OpenJDK (as they come with GPL license), compiled and | |
| 21 | + translated into dis | |
| 22 | + - implement proper makefiles to compile JCL and native classes | |
| 23 | + - more to come later... | |
| 24 | + | |
| 25 | +Current tasks: | |
| 26 | + - correct exception handling in dis code | |
| 27 | + - just translate the addresses and write them directly | |
| 28 | + to dis 'handlers' section at the end | |
| 29 | + - support for new const types (CONSTANT_MethodHandle, | |
| 30 | + CONSTANT_MethodType, CONSTANT_InvokeDynamic): | |
| 31 | + -DONE- internal structures (java.m) | |
| 32 | + -DONE- loading from class files (loader.b) | |
| 33 | + - verification (loader.b) | |
| 34 | + - debug output (loader.b) | |
| 35 | + - support for new instruction behaviuor | |
| 36 | + - DONE - ldc, ldc_w (new argument types): | |
| 37 | + - DONE - loading and verification (javadas.b) | |
| 38 | + - DONE - simulation (simjvm.b) | |
| 39 | + - DONE - translation (xlate.b) | |
| 40 | + - DONE - runtime support (classloader.b) - NOT COMPLETELY TESTED | |
| 41 | + - note: the ldc since 50.0 supports Class refs loading for | |
| 42 | + classes, so we need a way to obtain that class from the loader | |
| 43 | + and push it to the stack | |
| 44 | + - invokedynamic | |
| 45 | + - loading from class files | |
| 46 | + - verification | |
| 47 | + - translation | |
| 48 | + - runtime support (?) | |
| 49 | + | |
| 50 | +Unimplemented or not fully implemented native classes: | |
| 51 | + - java/lang/Class - some reflection functions | |
| 52 | + - sun/misc/Unsafe - currently completely unimplemented | |
| 53 | + - | |