Hi, Mike: And this topic seemly has been discussed in the mail list several times ago, in my memory. I just have some thoughts about this:) Have not submit anything about it. Some work has been done in some meta-circular JVMs. This topic is also related to something like the runtime snapshot of JVM or others. In this field, I guess Xiao Feng Li has more rights to speak about it:) The idea seem similar to the basic description like Gong. But I am afraid that detailed discussion about existed algorithm would spot the potential work? I think solving this problem is a much useful thing. However, I have not deep investigation in this field, especially for a general JVM like apahce, except for some raw ideas like that:) Xiao Feng, possible to give some comments?:)
regards, Jin 2009/4/1 Charles Lee <[email protected]>: > Hi Jin, > > What stop you to submit this kind of gsoc proposal ago? Did you meet any > problem? Could you give more information about your problem? Your deep > consideration will help all of us :) > > > On Wed, Apr 1, 2009 at 2:10 PM, Jin Mingjian <[email protected]> wrote: > >> it is brave to submit such proposal:) The dependencies are complex at >> real world. I have thought to submit this kind of gsoc proposal ago:) >> . But I am afraid it will become a toy:) For some practices in this >> field, the shrinked size is limited, espeically for the more and more >> cheap storage. But I think it deserves to encourage students to try. >> >> 2 problems, >> >> Class.forName() like things, >> 3rd part library jars(seem no problem?), resources, jni-dll, or >> thers(mentioned by Jimmy) >> others? >> >> dynamics seem better and easier than static anaylsis. >> >> >> >> >> 2009/3/30 Daniel Gong <[email protected]>: >> > Hi all, >> > I'm a postgraduate student from Fudan University, Shanghai, China. >> > This is my first time joining GSoC and I was not quite clear that I >> > should exchange my ideas with possible mentors. I've submitted my >> proposal >> > today. It's lucky that I can still modify it. >> > Here is my proposal, any criticism and suggestions are welcome~ >> > >> > ===================================================== >> > >> > *Abstract:* >> > >> > The main idea to deal with the subject is to collect infomation from the >> > input first and then generate smallest JRE according to the infomation >> > collected and harmony classes dependences. >> > >> > *Detailed Description:* >> > >> > The implementation of the tool can be divided into 4 parts: >> > >> > 1. Infomation Collector. Automatic lexcial tool such as JLex may be >> used >> > to analysis the input code and collect infomation including which >> classes in >> > JRE does the project depend on. >> > 2. Data structure design. Both project-jre class dependence and jre >> inner >> > class dependence should be represented in an uniform way. >> > 3. Class Lister. An algorithm should be designed to compute with the >> > dependence and list out the classes needed in the smallest JRE. >> > 4. JRE Builder. Build a JRE according to the class list. >> > >> > *Initial* *Algorithm Design* >> > >> > Use a, b to represent two classes, and <a, b> to represent a relation >> > between a & b, that is, a depends on b, in other words, b is refered in >> > source code of a. >> > >> > 1. Given a project with its class set P, let set S = P and set M = >> empty. >> > >> > 2. For each class c in S, search for dependence <c, *>, and for each d >> > that <c, d> exists and d is not in M, put d in S. After searching for >> <c, >> > *>, put c in M and delete it from S. >> > 3. Loop step 2 until S is empty, return M - P. >> > >> > Here a project's class set includes its customized classes and classes in >> > other packages that the project may link to. >> > >> > *Possible problems to solve* >> > >> > To collect the infomation, just reading the "import" part of the code is >> not >> > a precise strategy. A lexicial scan of the code from begin to end is a >> must. >> > Automatic lexcial tools can be used to solve the problem. >> > >> > JRE is not just a simple collection of classes needed. Getting familiar >> with >> > the structure of Harmony JRE is a must. >> > >> > *Draft Timeline* >> > >> > - Week 1-2 Complete the design of data structure and the algorithm; >> > - Week 3-4 Implement the module of infomation collector; >> > - Week 5-6 Implement the algorithm to list out the classes; >> > - Week 7-8 Implement the JRE builder; >> > - Week 9 Debug the whole module and make necessary modifications >> > to successfully complete the subject. >> > >> > *Additional Information:* >> > >> > I've been learning and using Java since 3 years ago. Although my >> > experience of Harmony is not that vast, my knowledge in programming, >> > software architecture, compiler building and algorithm can help me to >> learn >> > fast and handle the problem. >> > >> > I'm 23 years old, living in Shanghai, China, attending Fudan University. >> > >> > ===================================================== >> > >> > > > > -- > Yours sincerely, > Charles Lee >
