|Subject:||"Harmony class library support in JikesRVM"|
|Date:||Apr 6, 2008 3:00:20 am|
My name is Rahul Mehta. I am interested in "Harmony class library support" in JikesRVM project through GSoC. I wrote a proposal with the guidance of Andrew John Hughes, Ian Rogers and Tim Ellison.
I am sending this proposal as plain/txt format for Apache developer's consideration and will be glad if you can comment on this. You can find this on Google web app along with the Detailed Description section.
The project proposal is given below:
Best Regards, Rahul
Presently, JikesRVM is using GNU Classpath libraries  it would be interesting to integrate the Apache Harmony class libraries  into JikesRVM. Not only would this enable a variety in the implementation of core collection classes that would be interesting for research with the JikesRVM. They would also provide a work around for when functionality is missing from GNU Classpath such as missing management APIs and the new row-set APIs in Java 5.
My objective will be to complete the following major tasks. However, I am investigating the other tasks, issues and solutions. I believe these tasks will enhance the JikesRVMs (by integrating with Apache Harmony class library) in terms of functionality and completeness.
I will focus on the following tasks:
 Focus on VM Interfaces as current implementation of VM Interfaces is written in Java (as JikesRVM is written in Java that means the current VM Interfaces are written in Java rather than native code)
 Focus on the implementation of some Kernel java classes (like java.lang.Class)
 Investigate how JikesRVM can be integrated with Harmonys threading and runtime models as Harmony provides its own Thread Manager and runtime modules
How this will work:
Jikes RVM will communicate with Apache Harmony class libraries through a set of kernel java classes (The Kernel Java classes are those classes which are tied to the structure of the VM, or whose structure is known by the VM, like java.lang.Class) and VM Interface* (which contains the VM entry points required by other class library natives) as described in the Harmony Class Library Porting Documentation .
This task will include several class implementation. Possibly, we can use the DRLVM implementations of these classes. Generally, the IBM implementations rely on the presence of (typically) VM specific natives to implement the required Java APIs so we can use them and can provide our own implementation for those classes. 
Consideration on Key areas:
 Implementation of Kernel java classes  Implementation of VM Interface in native code  Investigatation about how JikesRVM can be integrated with Apache Harmonys Thread Manager and other runtime modules
 Publish my goals to the JikesRVM community (mailing list) and try to get some feedback and suggestions on my plans. (until mid of May)  Implement the certain classes (Kernel Java Classes and VM Interface) (until July Starting )  Testing of new implementation with the help of the JikesRVM community. (until mid of August)
* The VM Interface forms the boundary between the class libraries and the Jikes Virtual machine, and allows them to interact with each other.
 JikesRVM, http://jikesrvm.org/
 Apache Harmony Class Library, http://harmony.apache.org/subcomponents/classlibrary/index.html
 Harmony Class Library Porting Documentation, http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/doc/kernel/kernel.txt?revision=476395&view=markup
 Virtual Machine Interface, http://mail.openjdk.java.net/pipermail/challenge-discuss/2008-March/000084.html
I am a computer science graduate. At present enrolled with IGNOU, India in Master in Computer Applications program. I have already earned my Master degree in Advanced Computer Science from University Of Manchester in 2007. I obtained one Master degree in Information Technology from Punjabi University, India. Before that, I studied Bachelor in Computer Applications from Meerut University, India. I have good Java programming experience. I have already worked on threading model of JikesRVM in my Master thesis.