harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike <mikeandm...@gmail.com>
Subject Re: [GSoC] My proposal
Date Wed, 01 Apr 2009 02:52:35 GMT
Oh yeah, i forgot to try that. T_T. Yes, drlvm's verbose output is just
ok for us.

Dynamic tracing is a assisted method. I actually prefer user to user
static parsing. ^_^. But it should be included into harmony-selector.

Thanks for your reply.
Yours Mike

在 2009-04-01三的 10:48 +0800,Regis写道:
> Mike wrote:
> > 在 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.
> 
> java -verbose maybe what you want?
> I think the value of this idea is static analyze given application and 
> then generate a minimized JRE, while dynamic tracing can help this, but 
> should not be the main way.
> 
> > 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
> >>>
> > 
> > 
> 
> 


Mime
View raw message