joker

hlship 2019-07-31T17:26:41.001900Z

Would adding pmap be going too far? It would require future.

jcburley 2019-07-31T17:28:34.002Z

Hmm, offhand, I think it requires threads to be useful, and Joker's biz logic (versus underlying Go runtime) is single-threaded. So it wouldn't be of much use then...if I'm right?

hlship 2019-07-31T19:30:48.002700Z

An example use case; our tool gets information from a server, sending about 20 requests one at a time. There's no reason why we couldn't have a separate thread for each request so they could be in parallel.

hlship 2019-07-31T19:31:12.002900Z

So I may be looking for some specific use cases, but not something general purpose as in Clojure for JVM.

borkdude 2019-07-31T19:31:16.003100Z

can go channels be used from joker?

hlship 2019-07-31T19:31:37.003300Z

Not that I know of; but go channels could easily be part of an implementation.

Candid 2019-08-01T01:02:11.003500Z

Joker is currently single threaded. Supporting concurrency and/or parallelism in any form is a pretty big effort. It's also an interesting technical problem, so I might tackle it at some point soon. Any ideas on the implementation are welcome 🙂

Candid 2019-08-01T01:03:28.003700Z

the use case Howard presented is really appealing though...

borkdude 2019-08-14T07:37:09.013600Z

I made a small interpreter for Clojure which works with GraalVM. It calls directly into Clojure and pmap works over there:

$ bb '(pmap #(-> (csh "curl" "(link: ) ") :out (subs 0 10)) (range 5))'
("<!DOCTYPE " "<!DOCTYPE " "<!DOCTYPE " "<!DOCTYPE " "<!DOCTYPE ")

borkdude 2019-08-14T07:37:31.013800Z

so maybe, if you want, you can call this tool as a shell command from joker. It spits out EDN by default, so you can parse that back in

borkdude 2019-08-14T07:38:44.014Z

^ @hlship

Raymond Ko 2019-07-31T18:37:25.002400Z

@raymond.w.ko has joined the channel