Last active
June 29, 2017 01:49
-
-
Save cgrand/1d74da268994c5d27a69b0bd8fd6534a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; it's very rough (no line info displayed yet, no return value, no filter etc.) | |
;; but I believe this is the most comprehensive tracing for Clojure | |
user=> (trace #(reduce + (range 5))) | |
> user$eval144$fn__145 / invoke | |
> clojure.lang.Var / getRawRoot | |
< clojure.lang.Var / getRawRoot | |
> clojure.lang.Var / getRawRoot | |
< clojure.lang.Var / getRawRoot | |
> clojure.lang.Var / getRawRoot | |
< clojure.lang.Var / getRawRoot | |
> clojure.core$range / invoke | |
> clojure.core$range / invokeStatic | |
> clojure.lang.RT / longCast | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
< clojure.lang.RT / longCast | |
> clojure.lang.LongRange / create | |
> clojure.lang.LongRange / positiveStep | |
> clojure.lang.LongRange$1 / <init> | |
> java.lang.Object / <init> | |
< java.lang.Object / <init> | |
< clojure.lang.LongRange$1 / <init> | |
< clojure.lang.LongRange / positiveStep | |
> clojure.lang.LongRange / <init> | |
> clojure.lang.ASeq / <init> | |
> clojure.lang.Obj / <init> | |
> java.lang.Object / <init> | |
< java.lang.Object / <init> | |
< clojure.lang.Obj / <init> | |
< clojure.lang.ASeq / <init> | |
< clojure.lang.LongRange / <init> | |
< clojure.lang.LongRange / create | |
< clojure.core$range / invokeStatic | |
< clojure.core$range / invoke | |
> clojure.core$reduce / invoke | |
> clojure.core$reduce / invokeStatic | |
> clojure.lang.LongRange / reduce | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
> clojure.lang.LongRange$1 / exceededBounds | |
< clojure.lang.LongRange$1 / exceededBounds | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
> clojure.core$_PLUS_ / invoke | |
> clojure.core$_PLUS_ / invokeStatic | |
> clojure.lang.Numbers / add | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / add | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> clojure.lang.Numbers / add | |
< clojure.lang.Numbers / add | |
> clojure.lang.Numbers / num | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
< clojure.lang.Numbers / num | |
< clojure.lang.Numbers$LongOps / add | |
< clojure.lang.Numbers / add | |
< clojure.core$_PLUS_ / invokeStatic | |
< clojure.core$_PLUS_ / invoke | |
> clojure.lang.LongRange$1 / exceededBounds | |
< clojure.lang.LongRange$1 / exceededBounds | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
> clojure.core$_PLUS_ / invoke | |
> clojure.core$_PLUS_ / invokeStatic | |
> clojure.lang.Numbers / add | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / add | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> clojure.lang.Numbers / add | |
< clojure.lang.Numbers / add | |
> clojure.lang.Numbers / num | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
< clojure.lang.Numbers / num | |
< clojure.lang.Numbers$LongOps / add | |
< clojure.lang.Numbers / add | |
< clojure.core$_PLUS_ / invokeStatic | |
< clojure.core$_PLUS_ / invoke | |
> clojure.lang.LongRange$1 / exceededBounds | |
< clojure.lang.LongRange$1 / exceededBounds | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
> clojure.core$_PLUS_ / invoke | |
> clojure.core$_PLUS_ / invokeStatic | |
> clojure.lang.Numbers / add | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / add | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> clojure.lang.Numbers / add | |
< clojure.lang.Numbers / add | |
> clojure.lang.Numbers / num | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
< clojure.lang.Numbers / num | |
< clojure.lang.Numbers$LongOps / add | |
< clojure.lang.Numbers / add | |
< clojure.core$_PLUS_ / invokeStatic | |
< clojure.core$_PLUS_ / invoke | |
> clojure.lang.LongRange$1 / exceededBounds | |
< clojure.lang.LongRange$1 / exceededBounds | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
> clojure.core$_PLUS_ / invoke | |
> clojure.core$_PLUS_ / invokeStatic | |
> clojure.lang.Numbers / add | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers / ops | |
> java.lang.Object / getClass | |
< java.lang.Object / getClass | |
< clojure.lang.Numbers / ops | |
> clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / opsWith | |
< clojure.lang.Numbers$LongOps / combine | |
> clojure.lang.Numbers$LongOps / add | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> java.lang.Long / longValue | |
< java.lang.Long / longValue | |
> clojure.lang.Numbers / add | |
< clojure.lang.Numbers / add | |
> clojure.lang.Numbers / num | |
> java.lang.Long / valueOf | |
< java.lang.Long / valueOf | |
< clojure.lang.Numbers / num | |
< clojure.lang.Numbers$LongOps / add | |
< clojure.lang.Numbers / add | |
< clojure.core$_PLUS_ / invokeStatic | |
< clojure.core$_PLUS_ / invoke | |
> clojure.lang.LongRange$1 / exceededBounds | |
< clojure.lang.LongRange$1 / exceededBounds | |
< clojure.lang.LongRange / reduce | |
< clojure.core$reduce / invokeStatic | |
< clojure.core$reduce / invoke | |
< user$eval144$fn__145 / invoke | |
< user.TraceThunk / invoke | |
< user$eval94$fn__133 / invoke | |
10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment