Skip to content

Instantly share code, notes, and snippets.

@seltzer1717
Last active February 18, 2021 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save seltzer1717/9f0f647e5a035f0334d2eceff2bcf755 to your computer and use it in GitHub Desktop.
Save seltzer1717/9f0f647e5a035f0334d2eceff2bcf755 to your computer and use it in GitHub Desktop.
;; Directions:
;;
;; mvn clean install
;; ...
;; run javap
;; rem All classes created with compile call
;; rem cloud.seltzer1717.core
;; rem cloud.seltzer1717.core__init
;; rem cloud.seltzer1717.core$_main
;; rem cloud.seltzer1717.core$fn__158
;; rem cloud.seltzer1717.core$loading__6721__auto____156
;; rem Flags: -p show all classes and members, -s print internal type signatures -c Disassemble the code -l Print line number and local variable tables
;; javap -p -s -c -l -classpath C:\Users\jonseltzer\.m2\repository\org\clojure\clojure\1.10.1\clojure-1.10.1.jar;C:\Users\jonseltzer\.m2\repository\org\clojure\spec.alpha\0.2.176\spec.alpha-0.2.176.jar;C:\Users\jonseltzer\.m2\repository\org\clojure\core.specs.alpha\0.2.44\core.specs.alpha-0.2.44.jar;target/clojure-debug-1.0-SNAPSHOT.jar cloud.seltzer1717.core cloud.seltzer1717.core__init cloud.seltzer1717.core$_main cloud.seltzer1717.core$fn__158 cloud.seltzer1717.core$loading__6721__auto____156
;; C:\Users\jonseltzer\Documents\development\java\projects\clojure-debug>javap -p -s -c -l -classpath C:\Users\jonseltzer\.m2\repository\org\clojure\clojure\1.10.1\clojure-1.10.1.jar;C:\Users\jonseltzer\.m2\repository\org\clojure\spec.alpha\0.2.176\spec.alpha-0.2.176.jar;C:\Users\jonseltzer\.m2\repository\org\clojure\core.specs.alpha\0.2.44\core.specs.alpha-0.2.44.jar;target/clojure-debug-1.0-SNAPSHOT.jar cloud.seltzer1717.core cloud.seltzer1717.core__init cloud.seltzer1717.core$_main cloud.seltzer1717.core$fn__158 cloud.seltzer1717.core$loading__6721__auto____156
;; public class cloud.seltzer1717.core {
;; private static final clojure.lang.Var main__var;
;; descriptor: Lclojure/lang/Var;
;; private static final clojure.lang.Var equals__var;
;; descriptor: Lclojure/lang/Var;
;; private static final clojure.lang.Var toString__var;
;; descriptor: Lclojure/lang/Var;
;; private static final clojure.lang.Var hashCode__var;
;; descriptor: Lclojure/lang/Var;
;; private static final clojure.lang.Var clone__var;
;; descriptor: Lclojure/lang/Var;
;; public static {};
;; descriptor: ()V
;; Code:
;; 0: ldc #14 // String cloud.seltzer1717.core
;; 2: ldc #16 // String -main
;; 4: invokestatic #22 // Method clojure/lang/Var.internPrivate:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 7: putstatic #24 // Field main__var:Lclojure/lang/Var;
;; 10: ldc #14 // String cloud.seltzer1717.core
;; 12: ldc #26 // String -equals
;; 14: invokestatic #22 // Method clojure/lang/Var.internPrivate:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 17: putstatic #28 // Field equals__var:Lclojure/lang/Var;
;; 20: ldc #14 // String cloud.seltzer1717.core
;; 22: ldc #30 // String -toString
;; 24: invokestatic #22 // Method clojure/lang/Var.internPrivate:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 27: putstatic #32 // Field toString__var:Lclojure/lang/Var;
;; 30: ldc #14 // String cloud.seltzer1717.core
;; 32: ldc #34 // String -hashCode
;; 34: invokestatic #22 // Method clojure/lang/Var.internPrivate:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 37: putstatic #36 // Field hashCode__var:Lclojure/lang/Var;
;; 40: ldc #14 // String cloud.seltzer1717.core
;; 42: ldc #38 // String -clone
;; 44: invokestatic #22 // Method clojure/lang/Var.internPrivate:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 47: putstatic #40 // Field clone__var:Lclojure/lang/Var;
;; 50: ldc #42 // String /cloud/seltzer1717/core
;; 52: ldc #2 // class cloud/seltzer1717/core
;; 54: invokestatic #48 // Method clojure/lang/Util.loadWithClass:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
;; 57: pop
;; 58: return
;; public cloud.seltzer1717.core();
;; descriptor: ()V
;; Code:
;; 0: aload_0
;; 1: invokespecial #51 // Method java/lang/Object."<init>":()V
;; 4: return
;; public boolean equals(java.lang.Object);
;; descriptor: (Ljava/lang/Object;)Z
;; Code:
;; 0: getstatic #28 // Field equals__var:Lclojure/lang/Var;
;; 3: dup
;; 4: invokevirtual #57 // Method clojure/lang/Var.isBound:()Z
;; 7: ifeq 16
;; 10: invokevirtual #61 // Method clojure/lang/Var.get:()Ljava/lang/Object;
;; 13: goto 18
;; 16: pop
;; 17: aconst_null
;; 18: dup
;; 19: ifnull 41
;; 22: checkcast #63 // class clojure/lang/IFn
;; 25: aload_0
;; 26: aload_1
;; 27: invokeinterface #67, 3 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
;; 32: checkcast #69 // class java/lang/Boolean
;; 35: invokevirtual #72 // Method java/lang/Boolean.booleanValue:()Z
;; 38: goto 47
;; 41: pop
;; 42: aload_0
;; 43: aload_1
;; 44: invokespecial #74 // Method java/lang/Object.equals:(Ljava/lang/Object;)Z
;; 47: ireturn
;; public java.lang.String toString();
;; descriptor: ()Ljava/lang/String;
;; Code:
;; 0: getstatic #32 // Field toString__var:Lclojure/lang/Var;
;; 3: dup
;; 4: invokevirtual #57 // Method clojure/lang/Var.isBound:()Z
;; 7: ifeq 16
;; 10: invokevirtual #61 // Method clojure/lang/Var.get:()Ljava/lang/Object;
;; 13: goto 18
;; 16: pop
;; 17: aconst_null
;; 18: dup
;; 19: ifnull 37
;; 22: checkcast #63 // class clojure/lang/IFn
;; 25: aload_0
;; 26: invokeinterface #79, 2 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
;; 31: checkcast #81 // class java/lang/String
;; 34: goto 42
;; 37: pop
;; 38: aload_0
;; 39: invokespecial #83 // Method java/lang/Object.toString:()Ljava/lang/String;
;; 42: areturn
;; public int hashCode();
;; descriptor: ()I
;; Code:
;; 0: getstatic #36 // Field hashCode__var:Lclojure/lang/Var;
;; 3: dup
;; 4: invokevirtual #57 // Method clojure/lang/Var.isBound:()Z
;; 7: ifeq 16
;; 10: invokevirtual #61 // Method clojure/lang/Var.get:()Ljava/lang/Object;
;; 13: goto 18
;; 16: pop
;; 17: aconst_null
;; 18: dup
;; 19: ifnull 40
;; 22: checkcast #63 // class clojure/lang/IFn
;; 25: aload_0
;; 26: invokeinterface #79, 2 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
;; 31: checkcast #87 // class java/lang/Number
;; 34: invokevirtual #90 // Method java/lang/Number.intValue:()I
;; 37: goto 45
;; 40: pop
;; 41: aload_0
;; 42: invokespecial #92 // Method java/lang/Object.hashCode:()I
;; 45: ireturn
;; public java.lang.Object clone();
;; descriptor: ()Ljava/lang/Object;
;; Code:
;; 0: getstatic #40 // Field clone__var:Lclojure/lang/Var;
;; 3: dup
;; 4: invokevirtual #57 // Method clojure/lang/Var.isBound:()Z
;; 7: ifeq 16
;; 10: invokevirtual #61 // Method clojure/lang/Var.get:()Ljava/lang/Object;
;; 13: goto 18
;; 16: pop
;; 17: aconst_null
;; 18: dup
;; 19: ifnull 34
;; 22: checkcast #63 // class clojure/lang/IFn
;; 25: aload_0
;; 26: invokeinterface #79, 2 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
;; 31: goto 39
;; 34: pop
;; 35: aload_0
;; 36: invokespecial #95 // Method java/lang/Object.clone:()Ljava/lang/Object;
;; 39: areturn
;; public static void main(java.lang.String[]);
;; descriptor: ([Ljava/lang/String;)V
;; Code:
;; 0: getstatic #24 // Field main__var:Lclojure/lang/Var;
;; 3: dup
;; 4: invokevirtual #57 // Method clojure/lang/Var.isBound:()Z
;; 7: ifeq 16
;; 10: invokevirtual #61 // Method clojure/lang/Var.get:()Ljava/lang/Object;
;; 13: goto 18
;; 16: pop
;; 17: aconst_null
;; 18: dup
;; 19: ifnull 38
;; 22: checkcast #63 // class clojure/lang/IFn
;; 25: aload_0
;; 26: invokestatic #103 // Method clojure/lang/RT.seq:(Ljava/lang/Object;)Lclojure/lang/ISeq;
;; 29: invokeinterface #107, 2 // InterfaceMethod clojure/lang/IFn.applyTo:(Lclojure/lang/ISeq;)Ljava/lang/Object;
;; 34: pop
;; 35: goto 48
;; 38: new #109 // class java/lang/UnsupportedOperationException
;; 41: dup
;; 42: ldc #111 // String cloud.seltzer1717.core/-main not defined
;; 44: invokespecial #114 // Method java/lang/UnsupportedOperationException."<init>":(Ljava/lang/String;)V
;; 47: athrow
;; 48: return
;; }
;; public class cloud.seltzer1717.core__init {
;; public static final clojure.lang.Var const__0;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.AFn const__1;
;; descriptor: Lclojure/lang/AFn;
;; public static final clojure.lang.AFn const__2;
;; descriptor: Lclojure/lang/AFn;
;; public static final clojure.lang.Var const__3;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.AFn const__11;
;; descriptor: Lclojure/lang/AFn;
;; public static void load();
;; descriptor: ()V
;; Code:
;; 0: getstatic #10 // Field const__0:Lclojure/lang/Var;
;; 3: invokevirtual #16 // Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
;; 6: checkcast #18 // class clojure/lang/IFn
;; 9: getstatic #22 // Field const__1:Lclojure/lang/AFn;
;; 12: invokeinterface #26, 2 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
;; 17: new #28 // class cloud/seltzer1717/core$loading__6721__auto____156
;; 20: dup
;; 21: invokespecial #31 // Method cloud/seltzer1717/core$loading__6721__auto____156."<init>":()V
;; 24: checkcast #18 // class clojure/lang/IFn
;; 27: invokeinterface #33, 1 // InterfaceMethod clojure/lang/IFn.invoke:()Ljava/lang/Object;
;; 32: getstatic #22 // Field const__1:Lclojure/lang/AFn;
;; 35: checkcast #35 // class clojure/lang/Symbol
;; 38: getstatic #38 // Field const__2:Lclojure/lang/AFn;
;; 41: invokevirtual #42 // Method clojure/lang/Symbol.equals:(Ljava/lang/Object;)Z
;; 44: ifeq 52
;; 47: aconst_null
;; 48: goto 67
;; 51: athrow
;; 52: new #44 // class cloud/seltzer1717/core$fn__158
;; 55: dup
;; 56: invokespecial #45 // Method cloud/seltzer1717/core$fn__158."<init>":()V
;; 59: checkcast #47 // class java/util/concurrent/Callable
;; 62: invokestatic #53 // Method clojure/lang/LockingTransaction.runInTransaction:(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
;; 65: pop
;; 66: aconst_null
;; 67: getstatic #56 // Field const__3:Lclojure/lang/Var;
;; 70: dup
;; 71: getstatic #59 // Field const__11:Lclojure/lang/AFn;
;; 74: checkcast #61 // class clojure/lang/IPersistentMap
;; 77: invokevirtual #65 // Method clojure/lang/Var.setMeta:(Lclojure/lang/IPersistentMap;)V
;; 80: dup
;; 81: new #67 // class cloud/seltzer1717/core$_main
;; 84: dup
;; 85: invokespecial #68 // Method cloud/seltzer1717/core$_main."<init>":()V
;; 88: invokevirtual #72 // Method clojure/lang/Var.bindRoot:(Ljava/lang/Object;)V
;; 91: return
;; *LineNumberTable*:
;; line 1: 6
;; line 1: 12
;; line 1: 24
;; line 1: 27
;; line 1: 32
;; line 1: 41
;; line 1: 62
;; public static void __init0();
;; descriptor: ()V
;; Code:
;; 0: ldc #77 // String clojure.core
;; 2: ldc #79 // String in-ns
;; 4: invokestatic #85 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 7: checkcast #12 // class clojure/lang/Var
;; 10: putstatic #10 // Field const__0:Lclojure/lang/Var;
;; 13: aconst_null
;; 14: ldc #87 // String cloud.seltzer1717.core
;; 16: invokestatic #91 // Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
;; 19: checkcast #93 // class clojure/lang/AFn
;; 22: putstatic #22 // Field const__1:Lclojure/lang/AFn;
;; 25: aconst_null
;; 26: ldc #77 // String clojure.core
;; 28: invokestatic #91 // Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
;; 31: checkcast #93 // class clojure/lang/AFn
;; 34: putstatic #38 // Field const__2:Lclojure/lang/AFn;
;; 37: ldc #87 // String cloud.seltzer1717.core
;; 39: ldc #95 // String -main
;; 41: invokestatic #85 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 44: checkcast #12 // class clojure/lang/Var
;; 47: putstatic #56 // Field const__3:Lclojure/lang/Var;
;; 50: bipush 8
;; 52: anewarray #4 // class java/lang/Object
;; 55: dup
;; 56: iconst_0
;; 57: aconst_null
;; 58: ldc #97 // String arglists
;; 60: invokestatic #101 // Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
;; 63: aastore
;; 64: dup
;; 65: iconst_1
;; 66: iconst_1
;; 67: anewarray #4 // class java/lang/Object
;; 70: dup
;; 71: iconst_0
;; 72: aconst_null
;; 73: ldc #103 // String &
;; 75: invokestatic #91 // Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
;; 78: aconst_null
;; 79: ldc #105 // String args
;; 81: invokestatic #91 // Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
;; 84: invokestatic #111 // Method clojure/lang/Tuple.create:(Ljava/lang/Object;Ljava/lang/Object;)Lclojure/lang/IPersistentVector;
;; 87: aastore
;; 88: invokestatic #117 // Method java/util/Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
;; 91: invokestatic #122 // Method clojure/lang/PersistentList.create:(Ljava/util/List;)Lclojure/lang/IPersistentList;
;; 94: aastore
;; 95: dup
;; 96: iconst_2
;; 97: aconst_null
;; 98: ldc #124 // String line
;; 100: invokestatic #101 // Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
;; 103: aastore
;; 104: dup
;; 105: iconst_3
;; 106: bipush 6
;; 108: invokestatic #130 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
;; 111: aastore
;; 112: dup
;; 113: iconst_4
;; 114: aconst_null
;; 115: ldc #132 // String column
;; 117: invokestatic #101 // Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
;; 120: aastore
;; 121: dup
;; 122: iconst_5
;; 123: iconst_1
;; 124: invokestatic #130 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
;; 127: aastore
;; 128: dup
;; 129: bipush 6
;; 131: aconst_null
;; 132: ldc #134 // String file
;; 134: invokestatic #101 // Method clojure/lang/RT.keyword:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Keyword;
;; 137: aastore
;; 138: dup
;; 139: bipush 7
;; 141: ldc #136 // String cloud/seltzer1717/core.clj
;; 143: aastore
;; 144: invokestatic #140 // Method clojure/lang/RT.map:([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;
;; 147: checkcast #93 // class clojure/lang/AFn
;; 150: putstatic #59 // Field const__11:Lclojure/lang/AFn;
;; 153: return
;; public static {};
;; descriptor: ()V
;; Code:
;; 0: invokestatic #143 // Method __init0:()V
;; 3: ldc #145 // String cloud.seltzer1717.core__init
;; 5: invokestatic #149 // Method clojure/lang/RT.classForName:(Ljava/lang/String;)Ljava/lang/Class;
;; 8: invokevirtual #155 // Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;
;; 11: invokestatic #161 // Method clojure/lang/Compiler.pushNSandLoader:(Ljava/lang/ClassLoader;)V
;; 14: invokestatic #163 // Method load:()V
;; 17: invokestatic #166 // Method clojure/lang/Var.popThreadBindings:()V
;; 20: goto 27
;; 23: invokestatic #166 // Method clojure/lang/Var.popThreadBindings:()V
;; 26: athrow
;; 27: return
;; Exception table:
;; from to target type
;; 14 17 23 any
;; }
;; Compiled from "core.clj"
;; public final class cloud.seltzer1717.core$_main extends clojure.lang.RestFn {
;; public cloud.seltzer1717.core$_main();
;; descriptor: ()V
;; Code:
;; 0: aload_0
;; 1: invokespecial #9 // Method clojure/lang/RestFn."<init>":()V
;; 4: return
;; *LineNumberTable*:
;; line 6: 0
;; public static java.lang.Object invokeStatic(clojure.lang.ISeq);
;; descriptor: (Lclojure/lang/ISeq;)Ljava/lang/Object;
;; Code:
;; 0: ldc #13 // String foo
;; 2: pop
;; 3: ldc #15 // String FOO
;; 5: pop
;; 6: ldc #17 // String bar
;; 8: astore_1
;; 9: aload_1
;; 10: aconst_null
;; 11: astore_1
;; 12: areturn
;; *LineNumberTable*:
;; line 6: 0
;; LocalVariableTable:
;; Start Length Slot Name Signature
;; 3 9 2 foo Ljava/lang/Object;
;; 6 6 3 foo_cap Ljava/lang/Object;
;; 9 3 1 bar Ljava/lang/Object;
;; 0 12 0 args Lclojure/lang/ISeq;
;; public java.lang.Object doInvoke(java.lang.Object);
;; descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
;; Code:
;; 0: aload_1
;; 1: checkcast #25 // class clojure/lang/ISeq
;; 4: aconst_null
;; 5: astore_1
;; 6: invokestatic #27 // Method invokeStatic:(Lclojure/lang/ISeq;)Ljava/lang/Object;
;; 9: areturn
;; *LineNumberTable*:
;; line 6: 6
;; public int getRequiredArity();
;; descriptor: ()I
;; Code:
;; 0: iconst_0
;; 1: ireturn
;; public static {};
;; descriptor: ()V
;; Code:
;; 0: return
;; *LineNumberTable*:
;; line 6: 0
;; }
;; Compiled from "core.clj"
;; public final class cloud.seltzer1717.core$fn__158 extends clojure.lang.AFunction {
;; public static final clojure.lang.Var const__0;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.Var const__1;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.Var const__2;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.Var const__3;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.AFn const__4;
;; descriptor: Lclojure/lang/AFn;
;; public cloud.seltzer1717.core$fn__158();
;; descriptor: ()V
;; Code:
;; 0: aload_0
;; 1: invokespecial #9 // Method clojure/lang/AFunction."<init>":()V
;; 4: return
;; *LineNumberTable*:
;; line 1: 0
;; public static java.lang.Object invokeStatic();
;; descriptor: ()Ljava/lang/Object;
;; Code:
;; 0: getstatic #15 // Field const__0:Lclojure/lang/Var;
;; 3: invokevirtual #20 // Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
;; 6: checkcast #22 // class clojure/lang/IFn
;; 9: getstatic #25 // Field const__1:Lclojure/lang/Var;
;; 12: invokevirtual #20 // Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
;; 15: checkcast #22 // class clojure/lang/IFn
;; 18: getstatic #28 // Field const__2:Lclojure/lang/Var;
;; 21: invokeinterface #32, 2 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
;; 26: getstatic #35 // Field const__3:Lclojure/lang/Var;
;; 29: invokevirtual #20 // Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
;; 32: getstatic #39 // Field const__4:Lclojure/lang/AFn;
;; 35: invokeinterface #42, 4 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
;; 40: areturn
;; LineNumberTable:
;; line 1: 0
;; line 1: 6
;; line 1: 15
;; line 1: 21
;; line 1: 35
;; public java.lang.Object invoke();
;; descriptor: ()Ljava/lang/Object;
;; Code:
;; 0: invokestatic #44 // Method invokeStatic:()Ljava/lang/Object;
;; 3: areturn
;; *LineNumberTable*:
;; line 1: 0
;; public static {};
;; descriptor: ()V
;; Code:
;; 0: ldc #47 // String clojure.core
;; 2: ldc #49 // String commute
;; 4: invokestatic #55 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 7: checkcast #17 // class clojure/lang/Var
;; 10: putstatic #15 // Field const__0:Lclojure/lang/Var;
;; 13: ldc #47 // String clojure.core
;; 15: ldc #57 // String deref
;; 17: invokestatic #55 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 20: checkcast #17 // class clojure/lang/Var
;; 23: putstatic #25 // Field const__1:Lclojure/lang/Var;
;; 26: ldc #47 // String clojure.core
;; 28: ldc #59 // String *loaded-libs*
;; 30: invokestatic #55 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 33: checkcast #17 // class clojure/lang/Var
;; 36: putstatic #28 // Field const__2:Lclojure/lang/Var;
;; 39: ldc #47 // String clojure.core
;; 41: ldc #61 // String conj
;; 43: invokestatic #55 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 46: checkcast #17 // class clojure/lang/Var
;; 49: putstatic #35 // Field const__3:Lclojure/lang/Var;
;; 52: aconst_null
;; 53: ldc #63 // String cloud.seltzer1717.core
;; 55: invokestatic #69 // Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
;; 58: checkcast #71 // class clojure/lang/AFn
;; 61: putstatic #39 // Field const__4:Lclojure/lang/AFn;
;; 64: return
;; LineNumberTable:
;; line 1: 0
;; }
;; Compiled from "core.clj"
;; public final class cloud.seltzer1717.core$loading__6721__auto____156 extends clojure.lang.AFunction {
;; public static final clojure.lang.Var const__0;
;; descriptor: Lclojure/lang/Var;
;; public static final clojure.lang.AFn const__1;
;; descriptor: Lclojure/lang/AFn;
;; public cloud.seltzer1717.core$loading__6721__auto____156();
;; descriptor: ()V
;; Code:
;; 0: aload_0
;; 1: invokespecial #9 // Method clojure/lang/AFunction."<init>":()V
;; 4: return
;; LineNumberTable:
;; line 1: 0
;; public java.lang.Object invoke();
;; descriptor: ()Ljava/lang/Object;
;; Code:
;; 0: iconst_2
;; 1: anewarray #13 // class java/lang/Object
;; 4: dup
;; 5: iconst_0
;; 6: getstatic #19 // Field clojure/lang/Compiler.LOADER:Lclojure/lang/Var;
;; 9: aastore
;; 10: dup
;; 11: iconst_1
;; 12: aload_0
;; 13: invokevirtual #23 // Method java/lang/Object.getClass:()Ljava/lang/Class;
;; 16: checkcast #25 // class java/lang/Class
;; 19: invokevirtual #29 // Method java/lang/Class.getClassLoader:()Ljava/lang/ClassLoader;
;; 22: aastore
;; 23: invokestatic #35 // Method clojure/lang/RT.mapUniqueKeys:([Ljava/lang/Object;)Lclojure/lang/IPersistentMap;
;; 26: checkcast #37 // class clojure/lang/Associative
;; 29: invokestatic #43 // Method clojure/lang/Var.pushThreadBindings:(Lclojure/lang/Associative;)V
;; 32: aconst_null
;; 33: pop
;; 34: getstatic #46 // Field const__0:Lclojure/lang/Var;
;; 37: invokevirtual #49 // Method clojure/lang/Var.getRawRoot:()Ljava/lang/Object;
;; 40: checkcast #51 // class clojure/lang/IFn
;; 43: getstatic #55 // Field const__1:Lclojure/lang/AFn;
;; 46: invokeinterface #58, 2 // InterfaceMethod clojure/lang/IFn.invoke:(Ljava/lang/Object;)Ljava/lang/Object;
;; 51: astore_1
;; 52: invokestatic #61 // Method clojure/lang/Var.popThreadBindings:()V
;; 55: goto 64
;; 58: astore_2
;; 59: invokestatic #61 // Method clojure/lang/Var.popThreadBindings:()V
;; 62: aload_2
;; 63: athrow
;; 64: aload_1
;; 65: areturn
;; Exception table:
;; from to target type
;; 32 52 58 any
;; LineNumberTable:
;; line 1: 0
;; line 1: 6
;; line 1: 13
;; line 1: 19
;; line 1: 29
;; line 1: 40
;; line 1: 46
;; line 1: 52
;; line 1: 59
;; LocalVariableTable:
;; Start Length Slot Name Signature
;; 0 65 0 this Ljava/lang/Object;
;; public static {};
;; descriptor: ()V
;; Code:
;; 0: ldc #68 // String clojure.core
;; 2: ldc #70 // String refer
;; 4: invokestatic #74 // Method clojure/lang/RT.var:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Var;
;; 7: checkcast #39 // class clojure/lang/Var
;; 10: putstatic #46 // Field const__0:Lclojure/lang/Var;
;; 13: aconst_null
;; 14: ldc #68 // String clojure.core
;; 16: invokestatic #80 // Method clojure/lang/Symbol.intern:(Ljava/lang/String;Ljava/lang/String;)Lclojure/lang/Symbol;
;; 19: checkcast #82 // class clojure/lang/AFn
;; 22: putstatic #55 // Field const__1:Lclojure/lang/AFn;
;; 25: return
;; LineNumberTable:
;; line 1: 0
;; }
;;
;;
;;
;;
;; THIS SECTION OF THE ABOVE OUTPUT IS MOST CLOSELY MATCHED WITH THE -main FUNCTION AND YET THE LINENUMBERTABLE SEEMS TO
;; TREAT THE ENTIRE FUNCTION AS ONE LINE. AM WONDERING IF THIS IS A DIFFERENCE BETWEEN WINDOWS AND LINUX.
;;
;;
;;
;;
;; Compiled from "core.clj"
;; public final class cloud.seltzer1717.core$_main extends clojure.lang.RestFn {
;; public cloud.seltzer1717.core$_main();
;; descriptor: ()V
;; Code:
;; 0: aload_0
;; 1: invokespecial #9 // Method clojure/lang/RestFn."<init>":()V
;; 4: return
;; *LineNumberTable*:
;; line 6: 0
;; public static java.lang.Object invokeStatic(clojure.lang.ISeq);
;; descriptor: (Lclojure/lang/ISeq;)Ljava/lang/Object;
;; Code:
;; 0: ldc #13 // String foo
;; 2: pop
;; 3: ldc #15 // String FOO
;; 5: pop
;; 6: ldc #17 // String bar
;; 8: astore_1
;; 9: aload_1
;; 10: aconst_null
;; 11: astore_1
;; 12: areturn
;; *LineNumberTable*:
;; line 6: 0 ;; ONLY ONE LINE
;; LocalVariableTable:
;; Start Length Slot Name Signature
;; 3 9 2 foo Ljava/lang/Object;
;; 6 6 3 foo_cap Ljava/lang/Object;
;; 9 3 1 bar Ljava/lang/Object;
;; 0 12 0 args Lclojure/lang/ISeq;
(ns cloud.seltzer1717.core
(:gen-class
:name cloud.seltzer1717.core
:main true))
(defn -main [& args] ;; LINE 6
(let [foo "foo"
foo-cap "FOO"
bar "bar"]
bar))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment