Skip to content

Instantly share code, notes, and snippets.

@amalloy
Created January 4, 2017 22:39
Show Gist options
  • Save amalloy/9e70f4c0c8ebb491e43a42a95717f7bf to your computer and use it in GitHub Desktop.
Save amalloy/9e70f4c0c8ebb491e43a42a95717f7bf to your computer and use it in GitHub Desktop.
user> (println (disassemble-str (fn [ss]
(loop [coll (seq ss)]
(when coll
(println (first coll))
(recur (next coll)))))))
public final class user$eval2412$fn__2413 extends clojure.lang.AFunction {
// elided for brevity...
public java.lang.Object invoke(java.lang.Object ss);
0 getstatic user$eval2412$fn__2413.const__0 : clojure.lang.Var [15]
3 invokevirtual clojure.lang.Var.getRawRoot() : java.lang.Object [21]
6 checkcast clojure.lang.IFn [23]
9 aload_1 [ss]
10 aconst_null
11 astore_1 [ss]
12 invokeinterface clojure.lang.IFn.invoke(java.lang.Object) : java.lang.Object [25] [nargs: 2]
17 astore_2 [coll]
18 aload_2 [coll]
19 dup
20 ifnull 83
23 getstatic java.lang.Boolean.FALSE : java.lang.Boolean [31]
26 if_acmpeq 84
29 getstatic user$eval2412$fn__2413.const__1 : clojure.lang.Var [34]
32 invokevirtual clojure.lang.Var.getRawRoot() : java.lang.Object [21]
35 checkcast clojure.lang.IFn [23]
38 getstatic user$eval2412$fn__2413.const__2 : clojure.lang.Var [37]
41 invokevirtual clojure.lang.Var.getRawRoot() : java.lang.Object [21]
44 checkcast clojure.lang.IFn [23]
47 aload_2 [coll]
48 invokeinterface clojure.lang.IFn.invoke(java.lang.Object) : java.lang.Object [25] [nargs: 2]
53 invokeinterface clojure.lang.IFn.invoke(java.lang.Object) : java.lang.Object [25] [nargs: 2]
58 pop
59 getstatic user$eval2412$fn__2413.const__3 : clojure.lang.Var [40]
62 invokevirtual clojure.lang.Var.getRawRoot() : java.lang.Object [21]
65 checkcast clojure.lang.IFn [23]
68 aload_2 [coll]
69 aconst_null
70 astore_2 [coll]
71 invokeinterface clojure.lang.IFn.invoke(java.lang.Object) : java.lang.Object [25] [nargs: 2]
76 astore_2 [coll]
77 goto 18
80 goto 85
83 pop
84 aconst_null
85 areturn
Line numbers:
[pc: 0, line: 1]
[pc: 6, line: 1]
[pc: 12, line: 1]
[pc: 18, line: 1]
[pc: 35, line: 1]
[pc: 44, line: 1]
[pc: 48, line: 1]
[pc: 53, line: 1]
[pc: 65, line: 1]
[pc: 71, line: 1]
Local variable table:
[pc: 18, pc: 85] local: coll index: 2 type: java.lang.Object
[pc: 0, pc: 85] local: this index: 0 type: java.lang.Object
[pc: 0, pc: 85] local: ss index: 1 type: java.lang.Object
// elided for brevity...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment