Skip to content

Instantly share code, notes, and snippets.

@headius
Created June 15, 2009 06:37
Show Gist options
  • Save headius/129973 to your computer and use it in GitHub Desktop.
Save headius/129973 to your computer and use it in GitHub Desktop.
~/projects/juby ➔ cat loop.jb
a = 0
b = 0
while a.compareTo(123_456) == -1
a += 1
b += a
end
puts b
~/projects/juby ➔ JAVA_OPTS=-XX:+EnableInvokeDynamic CLASSPATH=src jruby bin/jubyc loop.jb
~/projects/juby ➔ javap -c dash_e
Compiled from "dash_e"
public class dash_e extends java.lang.Object {
public static void main(java.lang.String[]);
Code:
0: ldc2_w #7; //long 0l
3: invokestatic #14; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
6: dup
7: astore_0
8: pop
9: aload_0
10: ldc2_w #15; //long 5l
13: invokestatic #14; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
16: invokedynamic #34, 0; //NameAndType compareTo:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
21: ldc2_w #35; //long -1l
24: invokestatic #14; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
27: invokedynamic #38, 0; //NameAndType "==":(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
32: getstatic #44; //Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
35: if_acmpeq 77
38: aload_0
39: ldc2_w #45; //long 1l
42: invokestatic #14; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
45: invokedynamic #48, 0; //NameAndType "+":(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
50: dup
51: astore_0
52: pop
53: aload_0
54: ldc2_w #49; //long 10l
57: invokestatic #14; //Method java/lang/Long.valueOf:(J)Ljava/lang/Long;
60: invokedynamic #48, 0; //NameAndType "+":(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
65: getstatic #56; //Field java/lang/System.out:Ljava/io/PrintStream;
68: swap
69: invokevirtual #62; //Method java/io/PrintStream.println:(Ljava/lang/Object;)V
72: aconst_null
73: pop
74: goto 9
77: aconst_null
78: pop
79: return
static {};
Code:
0: ldc #19; //String dash_e
2: invokestatic #25; //Method java/lang/Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
5: invokestatic #31; //Method com/headius/juby/SimpleJavaBootstrap.registerBootstrap:(Ljava/lang/Class;)V
8: return
}
~/projects/juby ➔ java -Xint -cp src:. -XX:+EnableInvokeDynamic loop
7620753696
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment