u/-niquolain r/Clojure • Recommends
And last episode of this year of "Show Me Your REPL" with @jpmonettas about amazing Flow Storm Debugger
521 subscribers • 4 videos on Hallway
Intermediate. Assumes working knowledge.
2.8K views3 years ago1 recommendation
Programming languagesTools and practiceLisp and ClojureDebuggingVim, Emacs and editors
Juan Monetta demonstrates his Clojure REPL setup and the Flow Storm debugger.
* Flow Storm Debugger - github.com/jpmonettas/flow-storm-debugger * Instrumentation lib - github.com/jpmonettas/hansel * dotfiles - github.com/jpmonettas/dotFiles * clojure.el - github.com/jpmonettas/elisp-utils/blob/master/clojure.el clojure playground one long-lived repl instead of lots of tmp projects configured to allow hot-loading dependencies, so you can try things immediately dev-tools for profiling, benchmarking see elisp-utils on github made to be easily importable and accesible in any project via hydra repl started in emacs there's always a dev.clj file, and it loads everything it's also convenient to have a separate dev-menu via hydra for each particular project you can put project-specific things there can be loaded by .dir-locals.el and shared or you can have them only for yourself somewhere in your dotemacs flow-storm — an ide-independent debugger and a great companion to repl and the demo app for today it's one keystroke away, configured in the i3w window manager an interesting taps system: you can send things to and from emacs back and forth with flow-storm you can instrument functions and run them step by step what else flow-storm can do it's a time-machine, you can run functions step by step backwards in time when needed useful not only for debugging, but also for understanding the code values and args get timestamped, and you can send them to emacs to play with and then you run profiler mind blown how flow-storm works this is possible because immutability, you can collect pointers to intermediate values in clojure how it uses a macro to instrument functions with flow-storm you can also generate documentation it shows you types when you're running code and it shows you args, you can use this for testing but more importantly, it can automatically generate this kind of documentation by instrumenting the entire app when you run tests if you want better docs for args and types then write better tests general discussion of the future of flow-stor amazingly, it also works with clojurescript another cool tool: VisualVM for monitoring resources for figuring out why a thread is stuck, what it is waiting for for distinguishing multuple repls across projects another cool tool: jdk mission control for jvm internals how to work with memory dumps unfortunately, information about clojure data structures gets lost, and we can only see types like PersistentArrayMap, which better than nothing, but is not very helpful there are no recipes so far optimizations Juan tried in flow-storm to make it faster Juan prefers maps over records because of consistency clojure community in UruguayWhat people say. Recommended for its demonstration of the Flow Storm debugger and advanced Clojure REPL workflows.
u/-niquolain r/Clojure • Recommends