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