Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cbi-dev] last two more class differences



On 12-08-05 12:40 PM, Andrey Loskutov wrote:
Hi Igor,

The method definition order might be a result of the different
compiler/target version used by build. I see in the Eclipse classic
build that HookedJavaFileObject$ForwardingWriter is compiled for 1.6
target and the order is:

   public volatile bridge append(CharSequence) : Appendable throws
IOException
   public volatile bridge append(CharSequence, int, int) : Appendable
throws IOException
   public volatile bridge append(char) :

What do you see? IMHO Eclipse compiles by default with ecj, so that the
difference could be that of a using sun/oracle compiler by Tycho build?


Tycho generates the same major.minor (50.0) class version, but the order is different, from ASM-rendered output

public volatile bridge append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable; throws java/io/IOException public volatile bridge append(Ljava/lang/CharSequence;)Ljava/lang/Appendable; throws java/io/IOException public volatile bridge append(C)Ljava/lang/Appendable; throws java/io/IOException


As I mentioned, Tycho uses jdt compiler (or ecj, as you call it) from
Juno. I assume the same version was used to build Juno version of the
bundle, but I could not find Juno compile logs for jdt.compiler.apt and
there is a small chance another version was used.

Can somebody from the Platform team confirm version of jdt compiler used
to produce Juno version of jdt.compiler.apt bundle?


For TextMergeViewer I see in Eclipse classic the target is 1.2, and the
constant value is properly build into like LDC 3.141592653589793. Not
resolving static final value might be result of an incomplete/wrong
Math.PI definition or missing it completely in the target platform? I
don't think this is compiler dependent.


I used IBM JDK 1.4.2 (linux x86_64) and actually did check with javap
that java.lang.Math class had what I thought was expected PI constant
definition. Switching to SUN 1.4.2 (win32, believe it or not) used on
build.eclipse.org fixed the problem. So looks like you are right again,
the problem is indeed due to "incomplete/wrong Math.PI definition"
shipped with IBM JDK. Guess I need to finally stop using IBM JDKs.

--
Regards,
Igor


On Sun, 05 Aug 2012 17:26:34 +0200, Igor Fedorenko <igor@xxxxxxxxxxxxxx>
wrote:

I setup proper BREE-specific libraries locally (instructions are coming)
but Tycho still produces two classes that are different compared to
corresponding classes Juno and I am out of idea what is causing this.


org/eclipse/jdt/internal/compiler/apt/dispatch/HookedJavaFileObject$ForwardingWriter
has different order of compiler-generated bridge methods but the methods
are otherwise identical.


org/eclipse/compare/contentmergeviewer/TextMergeViewer
Juno version uses "LDC 3.141592653589793" and Tycho uses "GETSTATIC
java/lang/Math.PI" to refere to Math.PI.


In both cases pack200 normalization does not make the difference go
away. I checked jdt compiler version used by Tycho matches version in
Juno and I don't think other aspects of my build environment (ubuntu
12.04 x64, sun jdk both 1.6 and 1.7) can result in these two differences.

Any ideas?

--
Regards,
Igor
_______________________________________________
cbi-dev mailing list
cbi-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cbi-dev




Back to the top