From ab6ea2de081384b202ce0d804630d64429975e23 Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sun, 5 Jan 2020 19:01:55 +0100 Subject: [PATCH] add demunge --- src/babashka/impl/clojure/main.clj | 6 ++++++ src/babashka/main.clj | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/babashka/impl/clojure/main.clj b/src/babashka/impl/clojure/main.clj index 43e2b434..3d8a9f2f 100644 --- a/src/babashka/impl/clojure/main.clj +++ b/src/babashka/impl/clojure/main.clj @@ -17,6 +17,12 @@ babashka.impl.clojure.main (:refer-clojure :exclude [with-bindings])) +(defn demunge + "Given a string representation of a fn class, + as in a stack trace element, returns a readable version." + [fn-name] + (clojure.lang.Compiler/demunge fn-name)) + (defmacro with-bindings "Executes body in the context of thread-local bindings for several vars that often need to be set!: *ns* *warn-on-reflection* *math-context* diff --git a/src/babashka/main.clj b/src/babashka/main.clj index 70b54f29..ff8071f4 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -8,6 +8,7 @@ [babashka.impl.clojure.core :refer [core-extras]] [babashka.impl.clojure.java.io :refer [io-namespace]] [babashka.impl.clojure.java.shell :refer [shell-namespace]] + [babashka.impl.clojure.main :refer [demunge]] [babashka.impl.clojure.stacktrace :refer [stacktrace-namespace print-stack-trace]] [babashka.impl.csv :as csv] [babashka.impl.pipe-signal-handler :refer [handle-pipe! pipe-signal-received?]] @@ -20,9 +21,9 @@ [clojure.string :as str] [sci.addons :as addons] [sci.core :as sci] + [sci.impl.interpreter :refer [eval-string*]] [sci.impl.opts :as sci-opts] - [sci.impl.vars :as vars] - [sci.impl.interpreter :refer [eval-string*]]) + [sci.impl.vars :as vars]) (:gen-class)) (sci/alter-var-root sci/in (constantly *in*)) @@ -229,7 +230,9 @@ Everything after that is bound to *command-line-args*.")) 'clojure.core.async async-namespace 'clojure.data.csv csv/csv-namespace 'cheshire.core cheshire-core-namespace - 'clojure.stacktrace stacktrace-namespace}) + 'clojure.stacktrace stacktrace-namespace + 'clojure.main {'demunge demunge} + 'clojure.repl {'demunge demunge}}) (def bindings {'java.lang.System/exit exit ;; override exit, so we have more control