Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 96532 invoked from network); 1 Apr 2009 15:03:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Apr 2009 15:03:25 -0000 Received: (qmail 30894 invoked by uid 500); 1 Apr 2009 15:03:25 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 30846 invoked by uid 500); 1 Apr 2009 15:03:25 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 30835 invoked by uid 99); 1 Apr 2009 15:03:25 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Apr 2009 15:03:25 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of jin.phd@gmail.com designates 209.85.200.172 as permitted sender) Received: from [209.85.200.172] (HELO wf-out-1314.google.com) (209.85.200.172) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Apr 2009 15:03:18 +0000 Received: by wf-out-1314.google.com with SMTP id 23so72772wfg.24 for ; Wed, 01 Apr 2009 08:02:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=edKISzurzAht6ABF3WTE1yvkd+2wJYUCBQxXH3Ynroc=; b=J/L5sxqMeu2lNLX+Nf9bE5NsIMBvvhp6rNvJRtsQwOe2eh2Lz06Gm1hPIpLr0/ezhP dxN4Z5ykPqHUZ75beJghsbCuF57qof+3LOHdRLD1fJjwEzo20/br45gaI/dPpRbMVeC2 rMMunTCbgj23cT63ghtntHv5yF2GPkHdSYOF0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=FuoWGE+F+14fCVhEvRGBru2oBIaHFekvhV5Lz2adZye+XneSC842jJ+VzCGagZ5BXK +QB+rnOuY2aaJkQOIiRwmGVHZqiuqxkmEFfaYCWqYcvOu16jy2UltBbAuth1SNju8gZ4 mjRnEZTEaLrgBeKeGsYZngd9de25gpXklGQrw= MIME-Version: 1.0 Received: by 10.142.50.6 with SMTP id x6mr2121167wfx.242.1238598178194; Wed, 01 Apr 2009 08:02:58 -0700 (PDT) In-Reply-To: <5948b71e0904010725v44824ceeqf1b21d7b04f50a44@mail.gmail.com> References: <2cde31750903300201l314f4d7aj286dde250998c705@mail.gmail.com> <795657be0903312310w43045718h1d889f3da19873b7@mail.gmail.com> <5948b71e0904010725v44824ceeqf1b21d7b04f50a44@mail.gmail.com> Date: Wed, 1 Apr 2009 23:02:58 +0800 Message-ID: <795657be0904010802i30c913cavff9fbd0db7647a5e@mail.gmail.com> Subject: Re: [GSoC] My proposal From: Jin Mingjian To: dev@harmony.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Hi, Mike: And this topic seemly has been discussed in the mail list several times ago, in my memory. I just have some thoughts about this:) Have not submit anything about it. Some work has been done in some meta-circular JVMs. This topic is also related to something like the runtime snapshot of JVM or others. In this field, I guess Xiao Feng Li has more rights to speak about it:) The idea seem similar to the basic description like Gong. But I am afraid that detailed discussion about existed algorithm would spot the potential work? I think solving this problem is a much useful thing. However, I have not deep investigation in this field, especially for a general JVM like apahce, except for some raw ideas like that:) Xiao Feng, possible to give some comments?:) regards, Jin 2009/4/1 Charles Lee : > Hi Jin, > > What stop you to submit this kind of gsoc proposal ago? Did you meet any > problem? Could you give more information about your problem? Your deep > consideration will help all of us :) > > > On Wed, Apr 1, 2009 at 2:10 PM, Jin Mingjian wrote: > >> it is brave to submit such proposal:) The dependencies are complex at >> real world. I have thought to submit this kind of gsoc proposal ago:) >> . =A0But I am afraid it will become a toy:) For some practices in this >> field, the shrinked size is limited, espeically for the more and more >> cheap storage. But I think it deserves to encourage students to try. >> >> 2 problems, >> >> Class.forName() like things, >> 3rd part library jars(seem no problem?), resources, jni-dll, or >> thers(mentioned by Jimmy) >> others? >> >> dynamics seem better and easier than static anaylsis. >> >> >> >> >> 2009/3/30 Daniel Gong : >> > Hi all, >> > =A0 =A0I'm a postgraduate student from Fudan University, Shanghai, Chi= na. >> > =A0 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. >> > =A0 Here is my proposal, any criticism and suggestions are welcome~ >> > >> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >> > >> > *Abstract:* >> > >> > The main idea to deal with the subject is to collect infomation from t= he >> > 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: >> > >> > =A0 1. Infomation Collector. Automatic lexcial tool such as JLex may b= e >> used >> > =A0 to analysis the input code and collect infomation including which >> classes in >> > =A0 JRE does the project depend on. >> > =A0 2. Data structure design. Both project-jre class dependence and jr= e >> inner >> > =A0 class dependence should be represented in an uniform way. >> > =A0 3. Class Lister. An algorithm should be designed to compute with t= he >> > =A0 dependence and list out the classes needed in the smallest JRE. >> > =A0 4. JRE Builder. Build a JRE according to the class list. >> > >> > *Initial* *Algorithm Design* >> > >> > Use a, b to represent two classes, and to represent a relation >> > between a & b, that is, a depends on b, in other words, b is refered i= n >> > source code of a. >> > >> > =A0 1. Given a project with its class set P, let set S =3D P and set M= =3D >> empty. >> > >> > =A0 2. For each class c in S, search for dependence , and for ea= ch d >> > =A0 that exists and d is not in M, put d in S. After searching = for >> > > =A0 *>, put c in M and delete it from S. >> > =A0 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 familia= r >> with >> > the structure of Harmony JRE is a must. >> > >> > *Draft Timeline* >> > >> > =A0 - Week 1-2 Complete the design of data structure and the algorithm= ; >> > =A0 - Week 3-4 Implement the module of infomation collector; >> > =A0 - Week 5-6 Implement the algorithm to list out the classes; >> > =A0 - Week 7-8 Implement the JRE builder; >> > =A0 - Week 9 Debug the whole module and make necessary modifications >> > =A0 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 Universit= y. >> > >> > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >> > >> > > > > -- > Yours sincerely, > Charles Lee >