Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 35165 invoked from network); 29 Jul 2009 12:48:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 29 Jul 2009 12:48:11 -0000 Received: (qmail 98913 invoked by uid 500); 29 Jul 2009 12:48:11 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 98840 invoked by uid 500); 29 Jul 2009 12:48:11 -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 98829 invoked by uid 99); 29 Jul 2009 12:48:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Jul 2009 12:48:11 +0000 X-ASF-Spam-Status: No, hits=-2.8 required=10.0 tests=RCVD_IN_DNSWL_MED,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: 195.212.29.153 is neither permitted nor denied by domain of mark.hindess@googlemail.com) Received: from [195.212.29.153] (HELO mtagate4.de.ibm.com) (195.212.29.153) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Jul 2009 12:48:01 +0000 Received: from d12nrmr1607.megacenter.de.ibm.com (d12nrmr1607.megacenter.de.ibm.com [9.149.167.49]) by mtagate4.de.ibm.com (8.14.3/8.13.8) with ESMTP id n6TClToC025462 for ; Wed, 29 Jul 2009 12:47:29 GMT Received: from d12av04.megacenter.de.ibm.com (d12av04.megacenter.de.ibm.com [9.149.165.229]) by d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n6TClTIa2564238 for ; Wed, 29 Jul 2009 14:47:29 +0200 Received: from d12av04.megacenter.de.ibm.com (loopback [127.0.0.1]) by d12av04.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n6TClSrL010967 for ; Wed, 29 Jul 2009 14:47:28 +0200 Received: from anaheim.local (dhcp-9-20-183-185.hursley.ibm.com [9.20.183.185]) by d12av04.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with ESMTP id n6TClSOH010960 for ; Wed, 29 Jul 2009 14:47:28 +0200 Message-Id: <200907291247.n6TClSOH010960@d12av04.megacenter.de.ibm.com> X-Mailer: exmh version 2.7.2 01/07/2005 (debian 1:2.7.2-16) with nmh-1.2 In-reply-to: <4A6844DA.7040203@googlemail.com> References: <200907211455.n6LEtQkl023990@d06av02.portsmouth.uk.ibm.com> <4A668437.3030401@gmail.com> <200907220731.n6M7VM4U013734@d12av03.megacenter.de.ibm.com> <4A66C774.2030109@gmail.com> <3b3f27c60907222000y7ed60baaq1d3170931930d65e@mail.gmail.com> <94d710af0907230143j78bfa205k7c7a8b4a4e05c7a3@mail.gmail.com> <4A6824FC.6030704@gmail.com> <4A6844DA.7040203@googlemail.com> Comments: In-reply-to Oliver Deakin message dated "Thu, 23 Jul 2009 12:09:14 +0100." From: Mark Hindess To: dev@harmony.apache.org Subject: Re: [general] jdktools and classlib? Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 29 Jul 2009 13:47:28 +0100 X-Virus-Checked: Checked by ClamAV on apache.org In message <4A6844DA.7040203@googlemail.com>, Oliver Deakin writes: > > Tim Ellison wrote: > > On 23/Jul/2009 09:43, Sean Qiu wrote: > > > >> Do we really need this big change? > >> > >> There are so many "duplicated" xml files whose original goal is to > >> achieve modularity. > >> So each component can be developed and tested separately. > >> I guess that's the reason that we got so many build scripts on each > >> modules of classlib. > >> (It is another story whether they worked as we expected) > >> > >> I prefer to keep jdktools and classlib separately, it sounds more > >> natural to me. > >> > > > > My gut feeling is also to keep the class library and jdktools > > separated, but I'll admit that it is only a gut feeling and not > > something I can defend technically. > > > > If it really does make life easier for build then it is something I > > could learn to live with. I'd like to hear the arguments though. > > > > I agree. It just feels to me like the VM and classlib are obvious > "units" and putting the additional jre/jdk tools in with either one > of them doesn't sit right. I'm still not sure I've heard a convincing technical argument about the current split. I feel sure we'd all be just as happy if the original split had been vm and non-vm. (I really think of this split as the VM and the frontends to the VM that users generally use and it seems quite natural to me.) (I think deep down Oli isn't convinced either since he recently sent a message to the dev@ list with tags "[classlib][jdwp]" and made no mention of anything classlib-related AFAICT. ;-) However, I think improving the federated build so that it could be used by those currently working with just classlib (or jdktools or vm) would be a reasonable compromise. > If our goals are to get the jdktools > used/looked at more and to unify the build scripts as much as > possible, then I would suggest improving the federated build for wider > use. > > At the moment if a contributor wants to just work on classlib, they > will probably just check out classlib trunk and build from there > copying in whichever VM they wish to use. I think it would be better > if we made the federated build the starting point for this kind of > development and improved the build targets it provides so it plays > nicely when working with individual components. For this to work > we would need to allow more control over what source gets checked > out/built/tested, so they more closely reflect the targets within the > components - here's a few examples of what I was thinking of (names > like hy.component are just suggestions, not really important): > > "ant -Dhy.component=classlib,jdktools populate-src" - just checkout the > source for classlib and jdktools > "ant -Dhy.component=classlib rebuild-native" - just clean and build the > native code for the classlib module, and automatically populate the > built binaries under the federated target directory > "ant build-java" - build java code across all components. This target > could detect which components have been checked out, much as the > classlib build works out which modules to build automatically by > checking if build targets exists, and only build those so that > hy.component does not always need to be specified. > > > The above is just a rough idea of how it could be done, but I can see a > few advantages of this approach: > 1) The federated build would get used more, giving us a more unified > approach to building Harmony while still allowing contributors to work > in individual areas with the same ease. This should also help remove > some of the build script duplication across components. > 2) The java/javaw executables could be moved to jdktools (which makes > more sense than classlib to me) meaning that jdktools would get more > attention also. > 3) The common_resources directory would work for those working on the > whole jdk and also for those just working on one or two components, as > they would both use the federated build. > 4) If we ever wanted to add components (for example, split portlib into > it's own component) it would be easier managed. > 5) If you started working on drlvm only and also wanted to make some > changes to classlib later on, you could just run populate-src specifying > the classlib component to check out the additional source and then carry > on working. I like this idea. If we are going to improve the federated build can we also: 1) Find a way to reduce coupling. Currently federated/build.xml know too much about DRLVM - things like the "set overwrite flag to take hythr from VM" comment. 2) Call the directories drlvm, jdktools and classlib rather than working_*. 3) Allow the choice of VM component to be overridden - default 'drlvm'. > These are just ideas at the moment, but I can see there are benefits to > this approach. Any thoughts/comments? Perhaps we could create a new federated sandbox to work out ideas? Regards, Mark.