This is the mail archive of the kawa@sourceware.org mailing list for the Kawa project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]