This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Re: blog entry - Kawa in Computer Languages "shootout"
On Oct 23, 2010, at 10:04 PM, Per Bothner wrote:
On 10/23/2010 08:27 AM, Jamison Hope wrote:
I'm working on meteor-contest,
Cool!
but I'm getting compilation errors. I've
Please try again - I checked in some fixes.
Well, it now compiles without complaint, but the object array fields
still end up with signature "[null" and I get ClassFormatErrors at
runtime.
test.scm still exhibits the problem:
$ cat test.scm
(define-simple-class A ())
(define-simple-class B ()
(a :: A[] init: (A[] length: 2)))
(define b :: B (B))
$ java kawa.repl --main -C test.scm
(compiling test.scm to test)
$ javap test
Compiled from "test.scm"
public class test extends gnu.expr.ModuleBody implements
java.lang.Runnable{
static final java.lang.Class B;
public static final test $instance;
public test();
public final void run(gnu.mapping.CallContext);
public static {};
public static void main(java.lang.String[]);
}
$ javap A
Compiled from "test.scm"
public class A extends java.lang.Object{
public A();
}
$ javap B
Compiled from "test.scm"
public class B extends java.lang.Object{
public null[] a;
public B();
}
$ java test
Exception in thread "main" java.lang.ClassFormatError: Field "a" in
class B has illegal signature "[null"
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at test.<clinit>(test.scm)
Almost there!
--
Jamison Hope
The PTR Group
www.theptrgroup.com