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 | - | ||