harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xiao-Feng Li <xiaofeng...@gmail.com>
Subject Re: [GSoC] My proposal
Date Thu, 02 Apr 2009 14:10:49 GMT
Mingjian, this kind of try should be very helpful to figure out the
real problems involved. So I'd encourage the students to have a try.
Probably this tool can be implemented based on JVMTI or in JIT. It can
be a good foundational work for ahead-of-time binary image generation.
That is, it can be used when we want to create binary Java application
as gcj does, so that the JIT compilation time can be saved, if not the
size reduction. This is useful for the applications that have no
dynamic classes, such as an application in a phone.

Well, there are lots of other potential usage scenarios. This project
at least can tell us if the size reduction is really significant
enough for some interesting applications.

Thanks,
xiaofeng

On Wed, Apr 1, 2009 at 11:02 PM, Jin Mingjian <jin.phd@gmail.com> wrote:
> 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 <littlee1032@gmail.com>:
>> 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 <jin.phd@gmail.com> 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 <daniel.gong.fudan@gmail.com>:
>>> > 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
>>
>



-- 
http://people.apache.org/~xli

Mime
View raw message