• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[#Red] Red language group

Andreas
9-May-2013
[7675]
open a command prompt, change to the directory the .class is stored 
in, and run `java JNIdemo`
Pekr
9-May-2013
[7676]
error and crash "problematic frame ...."
DocKimbel
9-May-2013
[7677]
Pekr: > java -version
Pekr
9-May-2013
[7678x2]
1.7.0_13
Exception Access Violation (0xc0000005)
Andreas
9-May-2013
[7680x2]
Get a "problematic frame" crash as well (Linux, 6.0_26-b03).
Doc: for Linux to work, you need to rename the .so to libJNIdemo.so, 
and start the demo with `java -Djava.library.path=. JNIdemo`.
DocKimbel
9-May-2013
[7682]
Andreas and Pekr: are you using 64-bit OSes?
Pekr
9-May-2013
[7683]
yes
DocKimbel
9-May-2013
[7684]
That might be related...
Pekr
9-May-2013
[7685]
I might try downloading 32 bit version then ...
DocKimbel
9-May-2013
[7686]
Will try on a 64-bit too...
Andreas
9-May-2013
[7687]
I tried it on a 32b OS.
DocKimbel
9-May-2013
[7688]
Andreas, are you using OpenJDK?
Andreas
9-May-2013
[7689x3]
Nope. Sun's JRE.
$ java -version
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)
(/JDK)
DocKimbel
9-May-2013
[7692]
Ah, will try to upgrade mine to 0_26 at least.
Andreas
9-May-2013
[7693x2]
Crash seems to be in libc, so it's probably the missing dllinit code 
for ELF.
Stack: [0xb69b4000,0xb6a05000],  sp=0xb6a03ea8,  free space=319k

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, 
C=native code)
C  [libc.so.6+0x764f3]  short+0x33
V  [libjvm.so+0x3f1541]  unsigned+0xe1
C  [libJNIdemo.so+0xc9c]  long double+0xc9c
C  [libJNIdemo.so+0xd24]  long double+0xd24
C  [libJNIdemo.so+0xefd]  Java_JNIdemo_doMain+0xbd
j  JNIdemo.doMain()V+0
DocKimbel
9-May-2013
[7695]
It's crashing for Pekr too, and he's probably on Windows.
Pekr
9-May-2013
[7696x2]
yes, Windows8
Do you want me to send you an error log it generated in the working 
directory?
DocKimbel
9-May-2013
[7698x6]
Yes please, but in private channel (or email).
Andreas: reproduced a crash on Linux 32-bit with Java 1.6.0_27.
C  [libc.so.6+0x76550]  __strerror_r+0x190
V  [libjvm.so+0x22cc29]  jni_GetMethodID+0x99
C  [libJNIdemo.so+0xc9c]  exit+0xc9c
C  [libJNIdemo.so+0xd24]  exit+0xd24
C  [libJNIdemo.so+0xefd]  Java_JNIdemo_doMain+0xbd
j  JNIdemo.doMain()V+0
j  JNIdemo.main([Ljava/lang/String;)V+0
Java: "write once, debug everywhere" ;-)
Could someone else test it on Windows XP, 7 and 8?
Dinner time, bbl.
Pekr
9-May-2013
[7704]
ok, sent to your email at red lang org ....
DocKimbel
9-May-2013
[7705]
Thanks.
Kaj
9-May-2013
[7706x2]
You're not declaring the calling convention of the functions in the 
interface table, so that's probably the problem on Linux
I'm not sure, but the way I read the C header, the VM parameter in 
your JVM! struct functions needs another reference level
DocKimbel
9-May-2013
[7708x6]
Kaj: good points. For the VM parameter, it's unused anyway.
It's crashing anyway.
Found the cause of the error, will push a fix in a few minutes.
It's now running fine on my Linux 32-bit image.
Tested ok on Mac OSX 10.6.2 (adding the -d32 option for running the 
JVM in 32-bit mode).
The window closing is generating a Java exception on OSX, I will 
improve the code to make a more JVM-friendly exit.
Pekr
9-May-2013
[7714x2]
hmm, nice observation, this java crap is case sensitive :-)
whoever came with case sensitivity in unix like system, should have 
broken hands long time ago :-)
DocKimbel
9-May-2013
[7716]
Does it work now for you?
Pekr
9-May-2013
[7717]
basically I got it working, it generated some events.class, but when 
I close the dialog, it throws some exceptions back to console. But 
yes, it is working ....
DocKimbel
9-May-2013
[7718x2]
Can you show me the full output of `java -version`?
(checking if you're using a 64-bit VM)
Pekr
9-May-2013
[7720]
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
DocKimbel
9-May-2013
[7721]
Ok, try adding -d32 option when launching the app.
Pekr
9-May-2013
[7722]
hmm, now tried to delete .class files and regenerate, I obtained 
following:


Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\!rebol\!Red\Red\re

d-system\bridges\java\JNIdemo.dll: Can't load IA 32-bit .dll on a 
AMD 64-bit pla
tform

        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(Unknown Source)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at JNIdemo.<clinit>(JNIdemo.java:9)
DocKimbel
9-May-2013
[7723]
Have you used -d32 for launching the JVM?
Pekr
9-May-2013
[7724]
I have some mess on my system, installing JDK did not add it to path, 
so I have to issue long Windows shitty path in console each time 
....