You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by Apache Wiki <wi...@apache.org> on 2008/03/11 15:42:41 UTC
[Harmony Wiki] Update of "Google Summer Of Code 2008 Projects Proposals" by
TimEllison
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification.
The following page has been changed by TimEllison:
http://wiki.apache.org/harmony/Google_Summer_Of_Code_2008_Projects_Proposals
The comment on the change is:
Reformat to required layout including new info
------------------------------------------------------------------------------
#format wiki
#language en
(Please add your proposals in the list)
- == Google Summer Of Code 2008 Projects Proposals ==
- 1. '''Implement the "Compressor" GC proposed by Kermany and Petrank'''.[[BR]]
- The Compressor garbage collector [1] is a compacting GC that leverages virtual memory support in underlying OS. It compacts the heap in two passes. [[BR]]
- [1] Haim Kermany, Erez Petrank: ''The Compressor: concurrent, incremental, and parallel compaction''. PLDI 2006.
+ [[Anchor(harmony-gc-1)]]
+ || '''Subject ID''' || ''harmony-gc-1'' ||
+ || '''Title''' || '''Implement the "Compressor" GC proposed by Kermany and Petrank''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, memory management, GC ||
+ || '''Description''' || The Compressor garbage collector [1] is a compacting GC that leverages virtual memory support in underlying OS. It compacts the heap in two passes. [[BR]] [1] Haim Kermany, Erez Petrank: ''The Compressor: concurrent, incremental, and parallel compaction''. PLDI 2006.||
+ || '''Possible Mentors''' || Xiao-Feng Li (xiaofeng.li (a) gmail com) ||
+ || '''Status''' || Unassigned ||
- 2. '''Implement the "Mapping Collector" proposed by Wegiel and Krintz'''.[[BR]]
- The Mapping Collector [2] utilizes the virtual memory support in a novel way so that it can compact the heap without moving the objects or fixing the references.[[BR]]
- [2] Michal Wegiel and Chandra Krintz, ''The Mapping Collector: Virtual Memory Support for Generational, Parallel, and Concurrent Compaction'', ASPLOS 2008.
-
- 3. '''Write a graphic font-end for Harmony memory management'''.[[BR]]
- Harmony runtime needs a graphic front-end visualizing the memory management activities and the runtime status. It can be standalone or better an Eclipse plugin. It can be online display of the runtime execution, or offline processing of the log.
-
- 4. '''Unify the native memory management of Harmony DRLVM'''.[[BR]]
- DRLVM uses inconsistent APIs for native memory management, such as APR or malloc or mmap. It is desirable to have a unified API for native memory management. Hopefully the runtime native memory usage can be managed with a global view and then optimized. This layer could be extended to provide the API for Java heap native management as well.
-
- 5. '''Implement "Bundle Tool", a tool to make binary snapshots of java applications with Harmony'''.[[BR]]
- There is no simple way for Harmony users to define the list of needed classes, jars and native libraries for their applications. Create a tool that creates a Harmony package with the classes and native libraries used by specific application or work flow. First of all this application should collect data from one or multiple application runs and then create a Harmony bundle without unneeded classes and native code.
-
- 6. '''Refactor Java Bytecode Translator in Harmony JIT'''.[[BR]]
- Interaction between {{{ByteCodeParser}}}, {{{JavaLabelPrepass}}}, {{{JavaByteCodeTranslator}}} classes is very complicated and error-prone. Refactor Java bytecode translator in the Jitrino.OPT to make the code cleaner and simplify the data structures used. C++ skills required.
-
- 7. '''Support dynamic languages, support invokedynamic bytecode instruction in VM and JIT'''.[[BR]]
- Support the [http://blogs.sun.com/gbracha/entry/invokedynamic invokedynamic] instruction i.e. the ideas of [http://jcp.org/en/jsr/detail?id=292 JSR 292] draft. And implement basic support for a dynamic language like {{{Python}}}, {{{Ruby}}}, {{{JavaScript}}}. Students are free to choose the actual dynamic language. We want this language to have dynamic typing, reasonable user base, usable standard library, a set of compatibility tests.
-
- 8. '''Make [http://www.freecol.org/ FreeCol] game playable on Harmony'''.[[BR]]
- For someone who is interested in a graphical user interface development, enabling one of the most popular strategic games may be an interesting task. Since client API development is not finished, the one who would choose this task might learn designing of areas related to image processing, code development, bug fixing and refactoring. See for [http://issues.apache.org/jira/browse/HARMONY-4252 details] on the current status of the project. BTW, you may want to replace [http://www.freecol.org/ FreeCol] enabling with enabling of your favorite application, and this is welcome.
-
- 9. '''Build a garbage collector for C/C++ programs on the top of Harmony'''.[[BR]]
- One may notice a lack of open source effective parallel GC implementation for C/C++ programs. For example, Parrot (Perl 6) community expressed an [http://www.perl6.org/perl6-internals/2007-10/msg00091.html interest] in attaching our GC to their code base. If numbers would show some benefit, we might get another customer for our code base. Successful completion of GC library on the top of Harmony would teach a person in refactoring skills and give a good background in garbage collection.
-
- 10. '''Implement one of the JDK's command line tools'''.[[BR]]
- Harmony is missing several of the tools that ship with the JDK, including jar, jconsole, javaws and policytool. For this task you would implement one of these tools, either in Java or C/C++ if preferred.
- 11. '''Integrate Harmony and Jikes RVM'''.[[BR]]
- [http://jikesrvm.org/ Jikes RVM] is a research virtual machine that has been a test bed for many JVM and GC developments. This project will look to integrate the harmony libraries with Jikes RVM. This will require work on the VM interfaces (the Jikes RVM is a Java-in-Java VM meaning that current VM interfaces are written in Java rather than native code) as well as exploring how Jikes RVM can be integrated with Harmony's threading and other runtime models.
+ [[Anchor(harmony-gc-2)]]
+ || '''Subject ID''' || ''harmony-gc-2'' ||
+ || '''Title''' || '''Implement the "Mapping Collector" proposed by Wegiel and Krintz''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, memory management, GC ||
+ || '''Description''' || The Mapping Collector [1] utilizes the virtual memory support in a novel way so that it can compact the heap without moving the objects or fixing the references.[[BR]] [1] Michal Wegiel and Chandra Krintz, ''The Mapping Collector: Virtual Memory Support for Generational, Parallel, and Concurrent Compaction'', ASPLOS 2008.||
+ || '''Possible Mentors''' || Xiao-Feng Li (xiaofeng.li (a) gmail com) ||
+ || '''Status''' || Unassigned ||
+
+ [[Anchor(harmony-gc-3)]]
+ || '''Subject ID''' || ''harmony-gc-3'' ||
+ || '''Title''' || '''Write a graphical front-end for Harmony memory management''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, memory management, GC ||
+ || '''Description''' || Harmony runtime needs a graphic front-end visualizing the memory management activities and the runtime status. It can be standalone or better an Eclipse plugin. It can be online display of the runtime execution, or offline processing of the log. ||
+ || '''Possible Mentors''' || Xiao-Feng Li (xiaofeng.li (a) gmail com) ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-gc-4)]]
+ || '''Subject ID''' || ''harmony-gc-4'' ||
+ || '''Title''' || '''Unify the native memory management of Harmony DRLVM''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, virtual machine, memory management, GC ||
+ || '''Description''' || DRLVM uses inconsistent APIs for native memory management, such as APR or malloc or mmap. It is desirable to have a unified API for native memory management. Hopefully the runtime native memory usage can be managed with a global view and then optimized. This layer could be extended to provide the API for Java heap native management as well. ||
+ || '''Possible Mentors''' || Xiao-Feng Li (xiaofeng.li (a) gmail com) ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-gc-5)]]
+ || '''Subject ID''' || ''harmony-gc-5'' ||
+ || '''Title''' || '''Build a garbage collector for C/C++ programs on the top of Harmony''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || C, C++, memory management, GC ||
+ || '''Description''' || One may notice a lack of open source effective parallel GC implementation for C/C++ programs. For example, Parrot (Perl 6) community expressed an [http://www.perl6.org/perl6-internals/2007-10/msg00091.html interest] in attaching our GC to their code base. If numbers would show some benefit, we might get other adopters of our code base. Successful completion of GC library on the top of Harmony would teach a person in refactoring skills and give a good background in garbage collection. ||
+ || '''Possible Mentors''' || Alexei Fedotov ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-tools-1)]]
+ || '''Subject ID''' || ''harmony-tools-1'' ||
+ || '''Title''' || '''Implement "Bundle Tool", a tool to make binary snapshots of Java applications with Harmony''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, virtual machine, memory management, GC ||
+ || '''Description''' || There is no simple way for Harmony users to define the list of needed classes, jars and native libraries for their applications. Create a tool that creates a Harmony package with the classes and native libraries used by specific application or work flow. First of all this application should collect data from one or multiple application runs and then create a Harmony bundle without unneeded classes and native code. ||
+ || '''Possible Mentors''' || Egor Pasko ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-tools-2)]]
+ || '''Subject ID''' || ''harmony-tools-2'' ||
+ || '''Title''' || '''Implement a Java developer's command line tool''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, tools ||
+ || '''Description''' || Harmony is missing several of the tools that ship with the JDK, including jar, jconsole, javaws and policytool. For this task you would implement one of these tools, either in Java or C/C++ if preferred. ||
+ || '''Possible Mentors''' || Sian January ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-vm-1)]]
+ || '''Subject ID''' || ''harmony-vm-1'' ||
+ || '''Title''' || '''Support invokedynamic bytecode instruction in Harmony VM and JIT''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || C++, java, virtual machine, JIT, bytecode, dynamic languages ||
+ || '''Description''' || Support the [http://blogs.sun.com/gbracha/entry/invokedynamic invokedynamic] instruction i.e. the ideas of [http://jcp.org/en/jsr/detail?id=292 JSR 292] draft. And implement basic support for a dynamic language like {{{Python}}}, {{{Ruby}}}, {{{JavaScript}}}. Students are free to choose the actual dynamic language. We want this language to have dynamic typing, reasonable user base, usable standard library, a set of compatibility tests. ||
+ || '''Possible Mentors''' || Egor Pasko ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-vm-2)]]
+ || '''Subject ID''' || ''harmony-vm-2'' ||
+ || '''Title''' || '''Integrate Harmony and Jikes RVM''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, virtual machine, VM ||
+ || '''Description''' || [http://jikesrvm.org/ Jikes RVM] is a research virtual machine that has been a test bed for many JVM and GC developments. This project will look to integrate the Harmony class libraries with Jikes RVM. This will require work on the VM interfaces (the Jikes RVM is a Java-in-Java VM meaning that current VM interfaces are written in Java rather than native code) as well as exploring how Jikes RVM can be integrated with Harmony's threading and other runtime models. ||
+ || '''Possible Mentors''' || Ian Rogers [[BR]] Tim Ellison (t.p.ellison (a) gmail com) ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-jit-1)]]
+ || '''Subject ID''' || ''harmony-jit-1'' ||
+ || '''Title''' || '''Refactor Java Bytecode Translator in Harmony JIT''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || C++, JIT, bytecode, compilers, Java ||
+ || '''Description''' || Interaction between {{{ByteCodeParser}}}, {{{JavaLabelPrepass}}}, {{{JavaByteCodeTranslator}}} classes is very complicated and error-prone. Refactor Java bytecode translator in the Jitrino.OPT to make the code cleaner and simplify the data structures used. C++ skills required. ||
+ || '''Possible Mentors''' || Egor Pasko ||
+ || '''Status''' || Unassigned ||
+
+
+ [[Anchor(harmony-demo-1)]]
+ || '''Subject ID''' || ''harmony-demo-1'' ||
+ || '''Title''' || '''Make [http://www.freecol.org/ FreeCol] game playable on Harmony''' ||
+ || '''ASF Project''' || Apache Harmony http://harmony.apache.org ||
+ || '''Keywords''' || Java, games, graphics ||
+ || '''Description''' || For someone who is interested in a graphical user interface development, enabling one of the most popular strategic games may be an interesting task. Since client API development is not finished, the one who would choose this task might learn designing of areas related to image processing, code development, bug fixing and refactoring. See for [http://issues.apache.org/jira/browse/HARMONY-4252 details] on the current status of the project. BTW, you may want to replace [http://www.freecol.org/ FreeCol] enabling with enabling of your favorite application, and this is welcome. ||
+ || '''Possible Mentors''' || Alexei Fedotov ||
+ || '''Status''' || Unassigned ||
+