[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compiling with jikes > 1.13
From: |
Mark Wielaard |
Subject: |
Re: Compiling with jikes > 1.13 |
Date: |
07 Feb 2002 13:34:14 +0100 |
Hi Eric,
On Thu, 2002-02-07 at 03:50, Eric Blake wrote:
>
> I just committed a patch, after spending all afternoon hacking, that
> ensures that the CVS version of jikes will compile Classpath without
> failure. I have not tried your verify script to see if all the class
> files are valid, but it is in better shape than yesterday when jikes was
> dumping core.
It now compiles Classpath out of the (CVS) box for me. Great.
> Actually, I'd feel better if you ran your verify script on the output of
> the current CVS version of jikes, to check my work. If it succeeds with
> no compile or verify errors, then I will tag the current state of jikes
> CVS as stable, and update the Classpath documentation to point to that
> version.
I would not take the gcj verifiers to seriously. That code needs a bit
more love (and testcases) before I would trust it (but Tom did fix the
last bug I found yesterday, yeah Tom!). And my little VerifyClass
program does a couple of wacky things which you should not do with
ClassLoaders. But I have attached what I have found with the gcj
--syntax-only and the libgcj verifier.
And this time it actually had a valid VerifyError!
This new jikes is a bit to clever about String concatenations.
Take the following from javax/naming/RefAddr.java:
public String toString()
{
return "[RefAddr type: "+getType()+" content: "+getContent()+']';
}
This gives a: java.lang.VerifyError: verification failed at PC 30 in
javax.naming.RefAddr:toString(()Ljava.lang.String;): incompatible type
on stack
Which is correct since the byte code reads:
Method name:"toString" public Signature: 10=()java.lang.String
Attribute "Code", length:61, max_stack:3, max_locals:1, code_length:37
0: new #35=<Class java.lang.StringBuffer>
3: dup
4: ldc #37=<String "[RefAddr type: ">
6: invokespecial #42=<Method java.lang.StringBuffer.<init>
(java.lang.String)void>
9: aload_0
10: invokevirtual #20=<Method javax.naming.RefAddr.getType
()java.lang.String>
13: invokevirtual #46=<Method java.lang.StringBuffer.append
(java.lang.String)java.lang.StringBuffer>
16: ldc #47=<String " content: ">
18: invokevirtual #46=<Method java.lang.StringBuffer.append
(java.lang.String)java.lang.StringBuffer>
21: aload_0
22: invokevirtual #27=<Method javax.naming.RefAddr.getContent
()java.lang.Object>
25: invokevirtual #51=<Method java.lang.StringBuffer.append
(java.lang.Object)java.lang.StringBuffer>
28: ldc #52=<String "]">
30: invokevirtual #56=<Method java.lang.StringBuffer.append
(char)java.lang.StringBuffer>
33: invokevirtual #58=<Method java.lang.StringBuffer.toString
()java.lang.String>
36: areturn
It is trying to call append(char) on the String "]". Note that the java
source has a char ']'. Jikes seems to have decided to promote it to a
String. jikes 1.15 did not do this.
The rest of the verify output follows, but I have not analysed it yet.
But the above error seems like a showstopper.
Cheers,
Mark
verify-jikes.libgcj
Description: Text document
verify-jikes.gcj
Description: Text document
- Re: Compiling with jikes > 1.13, (continued)
- Re: Compiling with jikes > 1.13, Tom Tromey, 2002/02/06
- Re: Compiling with jikes > 1.13, Mark Wielaard, 2002/02/06
- Re: Compiling with jikes > 1.13, Mark Wielaard, 2002/02/06
- Re: Compiling with jikes > 1.13, Tom Tromey, 2002/02/06
- Re: Compiling with jikes > 1.13, Mark Wielaard, 2002/02/06
- Re: Compiling with jikes > 1.13, Tom Tromey, 2002/02/06
- Re: Compiling with jikes > 1.13, Mark Wielaard, 2002/02/06
- Re: Compiling with jikes > 1.13, Mark Wielaard, 2002/02/06
- Re: Compiling with jikes > 1.13, Tom Tromey, 2002/02/06
- Re: Compiling with jikes > 1.13, Eric Blake, 2002/02/06
- Re: Compiling with jikes > 1.13,
Mark Wielaard <=
- Re: Compiling with jikes > 1.13, Eric Blake, 2002/02/07
- Re: Compiling with jikes > 1.13, Eric Blake, 2002/02/08
- Re: Compiling with jikes > 1.13, Brian Jones, 2002/02/08
- Re: Compiling with jikes > 1.13, Eric Blake, 2002/02/09
- Re: Compiling with jikes > 1.13, Mark Wielaard, 2002/02/09
- Re: Compiling with jikes > 1.13, Eric Blake, 2002/02/09
- Re: Compiling with jikes > 1.13, Chris Gray, 2002/02/06
- Re: Compiling with jikes > 1.13, Stuart Ballard, 2002/02/04
- Re: Compiling with jikes > 1.13, Brian Jones, 2002/02/04
- Re: Compiling with jikes > 1.13, Chris Gray, 2002/02/05