在 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 <[email protected]>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 <[email protected]> > > 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 <[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. > > >> > > >> ===================================================== > > >> > > > > > > > > > > > > -- > > > > > > Best Regards! > > > > > > Jimmy, Jing Lv > > > China Software Development Lab, IBM > > > > > > > > > > > -- > > http://people.apache.org/~xli > >
