Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 50741 invoked from network); 6 Sep 2007 17:07:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 6 Sep 2007 17:07:01 -0000 Received: (qmail 67643 invoked by uid 500); 6 Sep 2007 17:06:54 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 67619 invoked by uid 500); 6 Sep 2007 17:06:54 -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 67610 invoked by uid 99); 6 Sep 2007 17:06:54 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Sep 2007 10:06:54 -0700 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 t.p.ellison@gmail.com designates 66.249.92.171 as permitted sender) Received: from [66.249.92.171] (HELO ug-out-1314.google.com) (66.249.92.171) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Sep 2007 17:06:49 +0000 Received: by ug-out-1314.google.com with SMTP id k40so191245ugc for ; Thu, 06 Sep 2007 10:06:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; bh=ukoviPz8XtaJU1/+PinyaPm2q08Z4uku9SibPGD5aqQ=; b=ioHTloAIHjWwMZaL8CAHqjn9Bgz5CTU/Fj+wPQcr+i6ZIr47eQX3RGOIiwt+pn5bKftPhbubyxK7e70Dz9Ubss+/ilUWDsLKU/8icGVN93DqCRNFGEx7OUcVFiukjqFLSr7MgV9LM4DOVgoVSkWR39EudkhZr1zFzxWh1ndtdhY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:user-agent:mime-version:to:subject:references:in-reply-to:x-enigmail-version:content-type:content-transfer-encoding; b=tSereK7pyiOap9LYb211YfcM2P9W/Dc+/bpjDURqYAt/hH8SAZLV5mqJ2ZlOhNGqwFQQPxcUDz12rNAwFcNYaF8UW51W58Ah2OJvleBZc1k+y9F7B4cr2qRO75HYIu0iJ7ve2iBc//nu2x79sAMk5xLwXS7tjEvq8hrg31S8Eg8= Received: by 10.67.19.17 with SMTP id w17mr357999ugi.1189098388158; Thu, 06 Sep 2007 10:06:28 -0700 (PDT) Received: from ?9.180.166.233? ( [195.212.29.83]) by mx.google.com with ESMTPS id b23sm2138556ugd.2007.09.06.10.06.24 (version=SSLv3 cipher=RC4-MD5); Thu, 06 Sep 2007 10:06:25 -0700 (PDT) Message-ID: <46E0338D.30105@gmail.com> Date: Thu, 06 Sep 2007 18:06:21 +0100 From: Tim Ellison User-Agent: Thunderbird 2.0.0.6 (Windows/20070728) MIME-Version: 1.0 To: dev@harmony.apache.org Subject: Re: [drlvm] DRLVM should accept Java6 classes now References: <46DD72E3.9060108@gmail.com> <6e47b64f0709042159r39240301m220ac43c992599be@mail.gmail.com> <46DE8E11.3060909@gmail.com> <46DFEC63.7020709@gmail.com> <46DFFB6F.1050909@gmail.com> <0vqvean3npr.fsf@gmail.com> <46E007A0.3030609@gmail.com> In-Reply-To: X-Enigmail-Version: 0.95.3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Yuri Dolgov wrote: >> we can make this constant definable by the build. > That's a great idea. I agree. Would it be too expensive as a runtime check? i.e ask the classlib at start-up if the VM should behave like Java 5 or Java 6, then we don't even have to produce separate VM builds. Regards, Tim > On 9/6/07, Gregory Shimansky wrote: >> Egor Pasko wrote: >>> On the 0x349 day of Apache Harmony Gregory Shimansky wrote: >>>> Yuri Dolgov wrote: >>>>>> Looking at the Sun's list of enhancements for Java6 [1] I found non >>>>>> features specific to VM except for a small change in reflection API >> [2]. >>>>>> So it seems to me that VM in Java5 and Java6 can be the same. >>>>> Yes, that's fine. But why don't we just put this in Java 6 branch? I >>>>> understand >>>>> that our VM works fine with Java 6 classes, but what about classlib >> and JIT? >>>>> I think that throwing UnsupportedClassVersionError is just a tool >>>>> which >>>>> help to avoid unpredictable results. >>>> Well, because there isn't a Java6 branch for VM. And I don't think >>>> that a change in 1 line deserves to create one. >>> +1 >>> alternatively: if it is one liner, we can make make it an option in the >> build. >> >> After the patch that I've committed at 572698 the class version is >> controlled by a single constant CLASSFILE_MAJOR_MAX in Class.h. Yes I >> think we can make this constant definable by the build. >> >>>>> On 9/6/07, Gregory Shimansky wrote: >>>>>> Yuri Dolgov wrote: >>>>>>> Hello Gregory, >>>>>>> >>>>>>> I'm not sure what is the reason to support classes with version 50 >> if >>>>>> don't >>>>>>> support >>>>>>> Java 6 features? Maybe it worth to make this changes in separate >> Java 6 >>>>>>> branch to >>>>>>> prevent confisions? >>>>>> Looking at the Sun's list of enhancements for Java6 [1] I found non >>>>>> features specific to VM except for a small change in reflection API >> [2]. >>>>>> So it seems to me that VM in Java5 and Java6 can be the same. >>>>>> >>>>>> [1] http://java.sun.com/javase/6/webnotes/features.html >>>>>> [2] >>>>>> >>>>>> >> http://java.sun.com/javase/6/docs/technotes/guides/reflection/enhancements.html >>>>>>> On 9/5/07, Gregory Shimansky wrote: >>>>>>>> Stepan Mishura wrote: >>>>>>>>> On 9/4/07, Gregory Shimansky wrote: >>>>>>>>>> Hello >>>>>>>>>> >>>>>>>>>> As of revision 572698 DRLVM should not throw >> UnsupportedClassVersion >>>>>>>>>> when it sees a class file compiled with Java6 compiler (or with >>>>>> -target >>>>>>>>>> 1.6 by ECJ 3.3). These class files should work with no problems >> with >>>>>>>> DRLVM. >>>>>>>>> Sould we create a java6 branch for DRL VM (as we did for classlib) >> and >>>>>>>>> move your update to the branch? >>>>>>>> I don't think this deserves a real branch. The fact that VM accepts >>>>>>>> classes of version 50 doesn't mean it is Java6 compliant. It also >>>>>>>> doesn't make it non-Java5 VM in any way. >>>>>>>> >>>>>>>> On the other hand, if we make changes like in [1] it may break >>>>>>>> compatibility with older Java5 code, and in such case we'll maybe >> want >>>>>>>> to create a separate branch. >>>>>>>> >>>>>>>> [1] >>>>>>>> >>>>>>>> >> http://java.sun.com/javase/6/docs/technotes/guides/reflection/enhancements.html >>>>>>>>>> For testing I used classlib (trunk) compiled with ECJ 3.3 with >>>>>> -source >>>>>>>>>> 1.6 -target 1.6 and all VM acceptance tests compiled with Sun's >> javac >>>>>>>>>> from JDK 6.0. >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Gregory >>>>>>>>>> >>>>>>>> -- >>>>>>>> Gregory >>>>>>>> >>>>>>>> >>>>>> -- >>>>>> Gregory >>>>>> >>>>>> >>>> -- >>>> Gregory >>>> >>>> >> >> -- >> Gregory >> >> >