harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From WenDong Zhang <zwd2...@gmail.com>
Subject Re: [GSoC] My proposal
Date Wed, 01 Apr 2009 05:02:25 GMT
wonderful, I don't know what exactly technology it is, but we can see
the compile info in Eclipse Class File Editor.

2009/4/1 Mike <mikeandmore@gmail.com>:
> Precisely. ^_^, That just what i mean.
>
> Of course, Please try to prove me wrong if you found something more.
>
> Thanks
> Yours Mike
>
>
> 在 2009-04-01三的 11:16 +0800,WenDong Zhang写道:
>> oh, I see what you said: From the research i've been done, it seems
>> that classfile will record the its imports for us.
>>
>> we can get the imports information from .class file, you mean we ony
>> need the binary .class file and we don't have to run it?
>>
>> 2009/4/1 Mike <mikeandmore@gmail.com>:
>> > You can search my ideas on the mail-archiver.
>> > Besides dynamic tracing, I also use dot-class file parsing (The static
>> > approach). The dot-class file will record dependency in its
>> > ConstantPool.
>> >
>> > Dynamic tracing is used to cover java's reflection. so it should be ok
>> > for user to test their reflection code, isn't it?
>> >
>> > Yours Mike
>> >
>> > 在 2009-04-01三的 11:03 +0800,WenDong Zhang写道:
>> >> I think dynamic tracing the loaded classes is pretty good, the only
>> >> shortcoming is we need to write the test unit completely or there will
>> >> be some classes missing in our mimi jre.
>> >>
>> >> I still want to know are there any other ways to implement this work?
>> >> My first thought is use text analysis, but there are to many problems:
>> >> dynamic loading class, third party lib...
>> >>
>> >> 2009/4/1 Mike <mikeandmore@gmail.com>:
>> >> > 在 2009-04-01三的 00:30 +0800,Daniel Gong写道:
>> >> >> By saying dynamic class loading, do you mean reflection based class
loading
>> >> >> or just class loader way?
>> >> >> For the former one, I don't think the dynamic trace strategy is
right. In my
>> >> >> opinion, to do dynamic tracing we need to examine all possible
running path
>> >> >> of the program. It is unrealistic, especially when the program
must interact
>> >> >> with users.
>> >> >> The latter one may have the same problem as the former one, I guess.
>> >> >> In fact, there is a condition that the class name string is from
the user
>> >> >> input. If so, I think we can ignore the class selector and offer
the whole
>> >> >> jre. Except that, it is always possible to parse the code and generate
the
>> >> >> dynamic loaded class name, although I still don't have a structured
>> >> >> algorithm...
>> >> >> Hehe, I find my words a bit orderless...
>> >> >>
>> >> >> Daniel
>> >> >
>> >> > 1 I think the dynamic tracing is possible. I took a look at the drlvm's
>> >> > source these days. It should be easy to let the drlvm leave a trace
for
>> >> > us.
>> >> > 2 Dynamic tracing should be involved because it can help developers
to
>> >> > do their tests. which means that dynamic collection is being performed
>> >> > when testing.
>> >> >
>> >> > Yours Mike
>> >> >
>> >> >> On Tue, Mar 31, 2009 at 12:17 PM, Xiao-Feng Li <xiaofeng.li@gmail.com>wrote:
>> >> >>
>> >> >> > One another thing is the consideration of dynamic class loading.
>> >> >> >
>> >> >> > Thanks,
>> >> >> > xiaofeng
>> >> >> >
>> >> >> > On Mon, Mar 30, 2009 at 11:57 PM, Jimmy,Jing Lv <firepure@gmail.com>
>> >> >> > wrote:
>> >> >> > > Wow the plan's excellent Daniel!
>> >> >> > >
>> >> >> > > And an advanced question, as you know, the jre does not
only have
>> >> >> > classes,
>> >> >> > > but also resources files, property files and etc. So
do you have any
>> >> >> > ideas
>> >> >> > > on select them and merge into the customized JRE? :)
>> >> >> > >
>> >> >> > > 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.
>> >> >> > >>
>> >> >> > >> =====================================================
>> >> >> > >>
>> >> >> > >
>> >> >> > >
>> >> >> > >
>> >> >> > > --
>> >> >> > >
>> >> >> > > Best Regards!
>> >> >> > >
>> >> >> > > Jimmy, Jing Lv
>> >> >> > > China Software Development Lab, IBM
>> >> >> > >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > --
>> >> >> > http://people.apache.org/~xli
>> >> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >
>> >
>>
>>
>>
>
>



-- 
Best Regards!
Wen Dong

Mime
View raw message