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 <[email protected]>: > 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 <[email protected]>: >> > 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 <[email protected]>: >> >> > 在 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 >> >> >> > >> >> > >> >> > >> >> >> >> >> >> >> > >> > >> >> >> > > -- Best Regards! Wen Dong
