harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Gong <daniel.gong.fu...@gmail.com>
Subject Re: [GSoC] My proposal
Date Wed, 01 Apr 2009 04:46:20 GMT
2009/4/1 WenDong Zhang <zwd2005@gmail.com>

> 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?


I'm not quit familiar with the .class file. Is it really that easy?
What if we use reflection in the application and the class name are
generated from the user input? Of course it is not usually the case...


>
> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message