Fork me on GitHub
#core-async
<
2019-06-11
>
ghadi16:06:19

A new release of Clojure core.async is available: Release 0.4.500 on 2019.06.11 * https://clojure.atlassian.net/browse/ASYNC-227 cljs alts! isn't non-deterministic * https://clojure.atlassian.net/browse/ASYNC-224 Fix bad putter unwrapping in channel abort * https://clojure.atlassian.net/browse/ASYNC-226 Fix bad cljs test code {org.clojure/core.async {:mvn/version "0.4.500"}}

pmooser18:06:15

@ghadi Woohoo! Thank you for getting that out quickly.

pmooser18:06:37

I wish I understood core.async internals better. I should dedicate more time.

pmooser18:06:12

@ghadi As long as I am bugging you about core.async issues, are you guys aware that "case" is unsafe to use in core.async in certain circumstances (which I can't precisely describe) ?

pmooser18:06:33

If you are unaware of it, I can try to find some sort of breaking example later today.

vaedasynapse21:06:02

I’m trying to run the client code from https://github.com/fullcontact/full.http from the repl and I keep getting

Exception in thread "async-dispatch-1" java.lang.IllegalStateException: Attempting to call unbound fn: #'clojure.core.async.impl.ioc-macros/process-exception
	at clojure.lang.Var$Unbound.throwArity(Var.java:45)
	at clojure.lang.AFn.invoke(AFn.java:32)
	at full.http.client$process_response$fn__253$state_machine__4512__auto____254$fn__256.invoke(client.clj:72)
	at full.http.client$process_response$fn__253$state_machine__4512__auto____254.invoke(client.clj:72)
	at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:973)
	at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:972)
	at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:977)
	at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:975)
	at full.http.client$process_response$fn__253.invoke(client.clj:72)
	at clojure.lang.AFn.run(AFn.java:22)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

vaedasynapse21:06:26

any ideas on what I may be doing wrong?

noisesmith21:06:27

check your dependency manager for version conflicts - sounds like something is trying to use functions from a different version of core.async than the one you have pulled in

noisesmith21:06:37

with leiningen you can check this with lein deps :tree

hiredman21:06:09

it looks like something was aot compiled against a different version of core.async

noisesmith21:06:48

to have that many deps as a lib, then aot, is pathological

hiredman21:06:44

the process-exception function is part of the old broken the go macro processed exceptions, so macros expanded against the old version (aot compiled) reference it, but newer versions of core.async's go macro have a new exception handling mechanism (and also broken but maybe slightly less so, and I have patches in jira but they never get merged) and process-exception doesn't exist

Alex Miller (Clojure team)21:06:18

sorry about the never merging part btw. it's not for lack of desire, only for lack of time and focus.

simple_smile 4
Alex Miller (Clojure team)21:06:48

some day I will get around to those...

Alex Miller (Clojure team)22:06:41

I did look at some of them today but I found it a little difficult to assess which ones were ready to go, which were speculative, which definitely were not ready, etc. I don't know what I need exactly, other than maybe a prioritized list of what to look at.

hiredman22:06:29

a complication at this point is someone opened a bug for an issue (async-198) which has a patch to fix, and then someone found another issue (async-220) which the patch for async-198 didn't fix, so the async-220 patch depends on the async-198 patch, and then someone else ran in to the async-220 issue and commented on the async-198 issue that the patch there doesn't fix it (I haven't actually verified that the async-220 fixes the issue in the comments on async-198)

Alex Miller (Clojure team)22:06:21

so, yes - exactly this kind of stuff is why I never get far enough into it to feel comfortable merging anything

Alex Miller (Clojure team)22:06:30

and not feeling like there is enough test coverage in general to ensure that the changes don't break something

Alex Miller (Clojure team)22:06:48

not saying either of these is your fault!

hiredman22:06:17

oh, and then the cljs side of things is a whole other thing because the original fix to exception handling there hasn't been merged yet, so that ticket/patch got updated to include the async-198 fixes, but hasn't been updated in light of async-220 (I also lack time and focus)

vaedasynapse22:06:12

Thanks y’all. Didn’t mean to cause a ruckus. :)