Skip to content

Instantly share code, notes, and snippets.

@killme2008
Created February 22, 2016 08:09
Show Gist options
  • Select an option

  • Save killme2008/c459e304e35aeef73e1c to your computer and use it in GitHub Desktop.

Select an option

Save killme2008/c459e304e35aeef73e1c to your computer and use it in GitHub Desktop.
square function bytecode in clojure 1.8
(defn square [n] (* n n))
public final class user$square extends clojure/lang/AFunction {
// compiled from: NO_SOURCE_FILE
// debug info: SMAP
NO_SOURCE_FILE.java
Clojure
*S Clojure
*F
+ 1 NO_SOURCE_FILE
NO_SOURCE_PATH
*L
0#1,1:0
*E
// access flags 0x1
public <init>()V
L0
LINENUMBER 7 L0
L1
ALOAD 0
INVOKESPECIAL clojure/lang/AFunction.<init> ()V
L2
RETURN
MAXSTACK = 0
MAXLOCALS = 0
// access flags 0x9
public static invokeStatic(Ljava/lang/Object;)Ljava/lang/Object;
L0
LINENUMBER 7 L0
ALOAD 0
ALOAD 0
ACONST_NULL
ASTORE 0
L1
LINENUMBER 7 L1
INVOKESTATIC clojure/lang/Numbers.multiply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Number;
L2
LOCALVARIABLE n Ljava/lang/Object; L0 L2 0
ARETURN
MAXSTACK = 0
MAXLOCALS = 0
// access flags 0x1
public invoke(Ljava/lang/Object;)Ljava/lang/Object;
ALOAD 1
ACONST_NULL
ASTORE 1
L0
LINENUMBER 7 L0
INVOKESTATIC user$square.invokeStatic (Ljava/lang/Object;)Ljava/lang/Object;
ARETURN
MAXSTACK = 0
MAXLOCALS = 0
// access flags 0x9
public static <clinit>()V
L0
LINENUMBER 7 L0
RETURN
MAXSTACK = 0
MAXLOCALS = 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment