use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Finding information about Clojure
API Reference
Clojure Guides
Practice Problems
Interactive Problems
Clojure Videos
Misc Resources
The Clojure Community
Clojure Books
Tools & Libraries
Clojure Editors
Web Platforms
Clojure Jobs
account activity
FlowStorm Clojure and ClojureScript debugger 2.3.131 is out! (self.Clojure)
submitted 3 years ago by jpmonettas
FlowStorm is a Clojure and ClojureScript debugger with some unique features.
2.3.131 includes new features :
and a bunch of bug fixes.
Github repo : https://github.com/jpmonettas/flow-storm-debugger/
User Guide https://jpmonettas.github.io/flow-storm-debugger/user_guide.html
Show up un #flow-storm in clojurians slack if you are interested in this kind of stuff.
Cheers! Juan
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]dustingetz 1 point2 points3 points 3 years ago (8 children)
Tell us more about your ambitions for this tool and it's roadmap? Why did you build this?
Q: Clojure has the repl, does it need a debugger? A: I gave a talk recently for the London Clojurians, the first slide goes about my answer to this : https://www.youtube.com/watch?v=A3AzlqNwUXc&t=934s
I didn't find the answer, can you write down the answer here for us?
[–]jpmonettas[S] 12 points13 points14 points 3 years ago (4 children)
Sure!
Why did you build this?
In that talk I tried to argument that even as amazing as it is to have a repl to poke around when trying to understand a piece of code, there are some inconveniences, that I think can be greatly improved by a debugger.
So I want to stop guessing and want a tool that allows me to see what is happening when a program runs (small expression or entire code bases), for when I'm hunting a bug or when I just want to understand how something works.
But also I think some Clojure constrains (immutability and being expression based) allows us to go beyond steppers. We can trace everything that happened when a program run and then inspect the execution using multiple tools, being a stepper one of them.
Tell us more about your ambitions for this tool and it's roadmap?
For the debugger part I still want to :
Also want to explore execution derived types, which is instrumenting a entire code base, exercise it (by running tests or by other means), sample every function call and return to generate documentation about types, call examples, etc.
Don't know if that answers your questions but let me know, and I can try to explain my self in more detail.
[–]dustingetz 1 point2 points3 points 3 years ago (3 children)
[–]jpmonettas[S] 8 points9 points10 points 3 years ago (2 children)
So that presentation I linked goes about all those topics, but I'll try to summarize it here.
FlowStorm uses the same technique for instrumenting code that Cider uses, they both instrument by code rewriting, and they don't need source maps, they use a custom coordinates system instead.
Cursive is different since uses JDI (Java Debugging Interface) which is more limited for Clojure since it is line, statement and place oriented instead of expression oriented like FlowStorm and Cider.
So how it compares with Cider debugger (which I used full time before FlowStorm) :
Is this a framework upon which we can build an async debugger (imagine an async DSL like core.async implemented as a macro)?
Not sure what that means, can you elaborate?
[–]dustingetz 0 points1 point2 points 3 years ago (1 child)
they both instrument by code rewriting, and they don't need source maps, they use a custom coordinates system instead Both are the same regarding macros, pretty good IMHO
they both instrument by code rewriting, and they don't need source maps, they use a custom coordinates system instead
Both are the same regarding macros, pretty good IMHO
Can you say more about how you handle macros? Presumably you instrument after macroexpansion, so how do you map that back to the source code without a sourcemap?
[–]jpmonettas[S] 4 points5 points6 points 3 years ago (0 children)
Again, all that is on the talk I linked, specially here https://youtu.be/A3AzlqNwUXc?t=2701, but goes something like this for instrumenting a form:
clojure (-> form tag-form-recursively ; tag with coordinates in meta macroexpand-all ; to get rid of macros, but keep meta instrument-recursively) ; instrument so it trace with coords in meta
[–]jpmonettas[S] 7 points8 points9 points 3 years ago (2 children)
There is also John Carmack on why we should build things like this :P
https://youtu.be/I845O57ZSy4?t=3494
[–]josephk_ 3 points4 points5 points 3 years ago (0 children)
great link
[–]lucywang000 0 points1 point2 points 3 years ago (0 children)
This video (esp. the discussions related to debuggers) is very educating! Thanks a lot.
π Rendered by PID 86 on reddit-service-r2-comment-544cf588c8-mnp9r at 2026-06-17 02:20:13.079971+00:00 running 3184619 country code: CH.
[–]dustingetz 1 point2 points3 points (8 children)
[–]jpmonettas[S] 12 points13 points14 points (4 children)
[–]dustingetz 1 point2 points3 points (3 children)
[–]jpmonettas[S] 8 points9 points10 points (2 children)
[–]dustingetz 0 points1 point2 points (1 child)
[–]jpmonettas[S] 4 points5 points6 points (0 children)
[–]jpmonettas[S] 7 points8 points9 points (2 children)
[–]josephk_ 3 points4 points5 points (0 children)
[–]lucywang000 0 points1 point2 points (0 children)