History

Added TODO draft

Dmitry Kabak (userdima committed 13 years ago

Commit 4857ddd1 parent 54574481 file · +53 −0Browse files

Unified · Split

TODO+53−0
@@ -0,0 +1,53 @@
1This project is intended to run Java 7 apps natively in inferno,
2by converting class files to dis and linking them at runtime.
3
4Currently 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
11TODO:
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
25Current 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
50Unimplemented or not fully implemented native classes:
51 - java/lang/Class - some reflection functions
52 - sun/misc/Unsafe - currently completely unimplemented
53 -