Fork me on GitHub
#core-async
<
2016-08-09
>
danielcompton00:08:29

@hiredman: Throwable is higher than Exception so it wouldn’t get caught by the Exception catcher?

danielcompton00:08:44

I’m still at a loss why it keeps running though

hiredman01:08:20

because the little compiler in the ioc macros in core async is broken and generates bad code there

hiredman01:08:57

the two issues he links to are the same problem, and both of them have patches that fix it, but I am not sure if they both still apply

hiredman01:08:10

I wrote one of the patches a few months ago I think

hiredman01:08:04

internally, the go macro in core.async is a compiler, it just happens that both the source and the target language are clojure. the source is regular normal looking clojure, the target is a weird state machine / callback full clojure

hiredman01:08:57

that compiler has to generate code to handle exceptions, which it does, but the way it does it, and the runtime support code it uses is broken

hiredman01:08:11

my patch ends up throwing a lot of the existing code out, the existing code has this helper that is a big cond for different exception cases, which was kind of gross and incorrect as it turns out

hiredman01:08:43

http://dev.clojure.org/jira/browse/ASYNC-165 is another fun issue with the core.async compiler, but only on the clojurescript side (last I checked)