@darwin: apologies for my tardy response: regarding devtools sources. I'm just confirming on latest Chrome unstable v50.0.2652.0 dev (64-bit) on Ubutnu 14.04 Dirac devtools does NOT show cljs, only js and normal devtools does. I have not tried release Chrome but will report when I get a chance.
wow, dirac is really cool!
I think I am running in to one or two bugs but I really love the tool :simple_smile:
yeah, dirac has still some rough edges
pretty young project
as for the issue on go channel debugging, that would be really awesome. I had been thinking how cool it would be to have go consumers and producers as nodes and channels as edges in a graph
Iâm a bit worried to keep it up to date with devtools evolution, the official devtools moves quite fast
yeah I bet that is hard to keep merged
especially since you are adding to existing tabs
I wondered if you need to fork the core-async though, couldn't a bootstrapped compiler work as well for this kind of tools?
that debugging support for core.async would definitely need support from core async
IMO bootstrapped is not applicable here
core.async would need to keep track of all channels and go blocks, so I could expose it in the UI
hmm yeah maybe since you can't touch the compiler
I was thinking of making some stuff for devcards that do that graph thing
but got a bit overwhelmed digging in to the compiler
that graph thing is not doable, in general case IMO
how do you know what code does in general cases?
I can take from one channel and put into another
use variety of functions for that
dynamically
well I thought you'd build an index of all occurences of puts takes and channels and then put them in a proxy channel to tunnel them so you can inpect the values
mostly just a thought experiment so not sure how hard it would be
I can imagine some library on top of core.async, which would track that information and then expose it in some form for debugging
hmm yeah that would be easier I guess
but it is hard to imagine some analyser for general clojure(script) code using core.async without changes
in that library you would need primitives for connecting channels, basically building that graph via some kind of api
in my issue, I had in mind more low level view of core.async. it would just list pending go blocks and state of all existing channels
yeah, that would be great too
no info about flow of values between channels and their relation
any idea what could be wrong with "Use of undeclared Var projectname.core/variable at line 1 <dirac repl>" ?
It does evaluate properly
but just gives that warning
I barely remember someone else had this question before
it was expected REPL behaviour
he didnât do require or something like that
can you test the same thing in normal repl?
Hmm if I manually require the NS the warnings go away
(require âproductivity.core)
?
this is standard REPL behaviour, it does not know about your vars until you require the namespace (aka eval it in the context of REPL)
if you donât have evaluated the code, it warns you, but it compiles down to correct matching js just by coincidence
ah yes, makes sense
if I do it in a figwheel repl I don't need to, but that might already have required it or so
hm, maybe figwheel is smarter about it and evals your code in REPL context
I should look into that
the only other thing I've run in to so far is no having the same focus behaviour as regular dev tools. Sometimes input loses focus and I need to manually click the input line (which is really small for some reason in canary, might be my high dpi setting.)
hmm
in next version I would like to describe how to bind a global system keyboard shortcut to focus dirac prompt
so one can have system-wide quick access to it
system wide? cool.
yes, chrome allows that, but it is a bit secret setting
I try to not use the mouse at all, and the devtools are pretty bad for that. It took me a long time to find out that if you detach the dock you can tab between the page and devtools.
I use vimium besides that so hardly need to interact by mouse anymore :simple_smile:
speaking of, what is the hotkey for dirac devtools?
you mentioned in the read me but not which one it was đ
can be redefined: https://github.com/binaryage/dirac/blob/master/resources/release/manifest.json#L25
command keys can be also global, just need to look it up how to do that
I will add a new one for dirac prompt focus
so you one could bind it to some global shortcut
great :simple_smile:
thanks a bunch
calling it a night, cheers
bye