[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-kawa] [bug #23534] "uninitialized register 10" (VerifyError) when a
From: |
Sean Luke |
Subject: |
[Bug-kawa] [bug #23534] "uninitialized register 10" (VerifyError) when accessing globals from method within define-simple-class |
Date: |
Tue, 10 Jun 2008 18:26:55 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_4_11; en) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.1 Safari/525.18 |
URL:
<http://savannah.gnu.org/bugs/?23534>
Summary: "uninitialized register 10" (VerifyError) when
accessing globals from method within define-simple-class
Project: Kawa
Submitted by: feijai
Submitted on: Tuesday 06/10/2008 at 18:26
Category: Code generation
Severity: 3 - Normal
Item Group: Run-time exception
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
_______________________________________________________
Details:
I've come across the situation where I get class verification error stemming
from a bad compilation in Kawa 1.9.1. It's repeatable but I cannot construct
a simple example, so I'm giving you the full-blown version and making it as
easy to set up as possible.
I'm using Kawa in conjunction with MASON, a java multiagent simulator
package. I was working on building a simulation in Kawa when I hit on this
showstopper. When I initialize a compiled Kawa simple-class, it bombs on
verifying one of the methods with "java.lang.VerifyError: (class: flocker,
method: step signature: (Lsim/engine/SimState;)V) Accessing value from
uninitialized register 10"
Examining the bytecode, sure enough, there's a crazy access to register 10,
never defined before, right there on line 104 of the 'step' method:
104: aload 10
To repeat:
1. Download and unpack http://cs.gmu.edu/~sean/temp/test.tar.gz
2. Follow the example below:
geepers[/tmp/test]> ls
flocker.scm kawa-1.9.1.jar mason.jar
geepers[/tmp/test]> java -cp kawa-1.9.1.jar:mason.jar kawa.repl
#|kawa:1|# (load "flocker.scm")
flocker.scm:22:21: warning - unknown class: flocker
flocker.scm:23:8: warning - more than one possibly applicable method
'nextBoolean' in ec.util.MersenneTwisterFast
candidate: boolean ec.util.MersenneTwisterFast.nextBoolean(double)
candidate: boolean ec.util.MersenneTwisterFast.nextBoolean(float)
#|kawa:2|# (<flocker>)
java.lang.VerifyError: (class: flocker, method: step signature:
(Lsim/engine/SimState;)V) Accessing value from uninitialized register 10
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
at java.lang.Class.getDeclaredMethods(Class.java:1763)
at gnu.bytecode.ClassType.addMethods(ClassType.java:751)
at gnu.bytecode.ClassType.getDeclaredMethods(ClassType.java:519)
at gnu.bytecode.ClassType.getMethods(ClassType.java:617)
at gnu.kawa.reflect.ClassMethods.getMethods(ClassMethods.java:105)
at gnu.kawa.reflect.ClassMethods.apply(ClassMethods.java:175)
at gnu.kawa.reflect.Invoke.lookupMethods(Invoke.java:257)
at gnu.kawa.reflect.Invoke.applyN(Invoke.java:184)
at gnu.kawa.reflect.Invoke.apply(Invoke.java:98)
at gnu.mapping.CallContext.runUntilDone(CallContext.java:251)
at gnu.expr.ModuleExp.evalModule(ModuleExp.java:296)
at kawa.Shell.run(Shell.java:230)
at kawa.Shell.run(Shell.java:172)
at kawa.Shell.run(Shell.java:159)
at kawa.repl.main(repl.java:844)
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?23534>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [Bug-kawa] [bug #23534] "uninitialized register 10" (VerifyError) when accessing globals from method within define-simple-class,
Sean Luke <=