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

World: r4wp

[#Red] Red language group

Andreas
9-May-2013
[7666]
The .class file is Java's "exe".
DocKimbel
9-May-2013
[7667]
Java 7: I think I've relied on Java 6 docs, but it should work as 
these are old APIs.
Andreas
9-May-2013
[7668]
http://bolka.at/2013/red/events.class
DocKimbel
9-May-2013
[7669]
Hmm, on second thought, Pekr, if you don't know what .class are, 
maybe don't bother with JDK then...;-)
Andreas
9-May-2013
[7670]
With the JRE, you can run code in .class files.
DocKimbel
9-May-2013
[7671]
We'll provide precompiled classes for you to test.
Andreas
9-May-2013
[7672]
Hmm, the above classes don't run for me with a Java 6 JRE. So ignore 
them, if you don't have Java 7 already.
DocKimbel
9-May-2013
[7673]
> java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing)
Pekr
9-May-2013
[7674]
Well, looking into binary .class, I expected it being some kind of 
executable or package, just pressing Enter does nothing :-) So it 
is not mapped to JRE on my machine .... I selected it manually, and 
it says:

Could not find or load main class, or something like that ...
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 :-)