companion_cube changed the topic of #ocaml to: Discussion about the OCaml programming language | http://www.ocaml.org | OCaml 5.2.0 released: https://ocaml.org/releases/5.2.0 | Try OCaml in your browser: https://try.ocamlpro.com | Public channel logs at https://libera.irclog.whitequark.org/ocaml/
Haudegen has joined #ocaml
<companion_cube> Haven't looked in a while but isn't there a pipe option?
malte has joined #ocaml
Tuplanolla has quit [Quit: Leaving.]
<dmbaturin> companion_cube: I have a moonpool question. Suppose I have a list of 100 file names and I want, WLOG, two threads to read them in parallel. If I wrap the reading function into `spawn`, do I need to do anything special about the IO functions, or stock functions from Sys/Unix are fine to use? I'm sorry if this a stupid question, I'm still trying to build a mental model of the multicore runtime in general.
<dmbaturin> The parallel for from domainslib is not safe to use that way, it led to unhandled effect errors when I tried.
<companion_cube> It'll be just fine if you use the blocking IO API
<companion_cube> I mean I'd make a pool and dispatch one task per file
<companion_cube> Possibly a parallel map, even
<dmbaturin> Possibly even dumber question. Is there a specific reason why there's no ready to use `'a list -> 'b list` parallel map there in moonpool? Or there actually is and I'm missing it?
<companion_cube> Iirc there's one in the Fut module
<companion_cube> Not exactly that signature though, but with ocaml 5 you can also just do a List.map with spawn inside, followed by a List.map with await
<dmbaturin> Oh, `Fut.map_list`.
<companion_cube> But also, really, two successive List.map can do
<companion_cube> That's the beauty of await
<companion_cube> (it just means the `List.map await futures` has to run in a effect-handling context)
Haudegen has quit [Quit: Bin weg.]
cedb has quit [Ping timeout: 248 seconds]
ygrek has joined #ocaml
tomku has quit [Ping timeout: 245 seconds]
tomku has joined #ocaml
LainExperiments has joined #ocaml
LainExperiments has quit [Quit: Client closed]
LainExperiments has joined #ocaml
LainExperiments3 has joined #ocaml
LainExperiments has quit [Ping timeout: 240 seconds]
ygrek has quit [Remote host closed the connection]
LainExperiments3 has quit [Quit: Client closed]
LainExperiments has joined #ocaml
pi3ce has quit [Ping timeout: 244 seconds]
LainExperiments has quit [Ping timeout: 240 seconds]
LainExperiments4 has joined #ocaml
pi3ce has joined #ocaml
LainExperiments4 has quit [Ping timeout: 240 seconds]
LainExperiments has joined #ocaml
agentcasey has quit [Read error: Connection reset by peer]
agentcasey has joined #ocaml
YuGiOhJCJ has quit [Quit: YuGiOhJCJ]
LainExperiments has quit [Ping timeout: 240 seconds]
LainExperiments has joined #ocaml
LainExperiments has quit [Quit: Client closed]
bartholin has joined #ocaml
Haudegen has joined #ocaml
rak has quit [Quit: Segmentation fault (core recycled)]
rak has joined #ocaml
bartholin has quit [Quit: Leaving]
semarie has quit [Ping timeout: 245 seconds]
semarie has joined #ocaml
dhil has joined #ocaml
bartholin has joined #ocaml
tremon has joined #ocaml
malte has quit [Ping timeout: 244 seconds]
Haudegen has quit [Quit: Bin weg.]
malte has joined #ocaml
malte has quit [Ping timeout: 248 seconds]
malte has joined #ocaml
Haudegen has joined #ocaml
malte has quit [Ping timeout: 260 seconds]
malte has joined #ocaml
malte has quit [Ping timeout: 252 seconds]
malte has joined #ocaml
malte has quit [Ping timeout: 252 seconds]
malte has joined #ocaml
malte has quit [Ping timeout: 260 seconds]
malte has joined #ocaml
Haudegen has quit [Quit: Bin weg.]
euphores has quit [Quit: Leaving.]
euphores has joined #ocaml
Anarchos has joined #ocaml
malte has quit [Remote host closed the connection]
malte has joined #ocaml
Serpent7776 has joined #ocaml
Haudegen has joined #ocaml
euphores has quit [Remote host closed the connection]
euphores has joined #ocaml
malte has quit [Ping timeout: 268 seconds]
malte has joined #ocaml
malte has quit [Ping timeout: 244 seconds]
tomku has quit [Ping timeout: 252 seconds]
tomku has joined #ocaml
Tuplanolla has joined #ocaml
dhil has quit [Ping timeout: 248 seconds]
Anarchos has quit [Quit: Vision[]: i've been blurred!]
agentcasey has quit [Ping timeout: 252 seconds]
agentcasey has joined #ocaml
malte has joined #ocaml
malte has quit [Remote host closed the connection]
malte has joined #ocaml
<discocaml> <dubious245> Just wanted to vent but why does this research papers and all its implementation all insist on naming everying like (i, j) (i2,j2) (i1, j1) (i3,j3) (i4,j4)
<discocaml> <dubious245>
<discocaml> <dubious245> I spent half the day reading this paper and its implementation to figure out what its doing with all this i1, j1 = i2, j3 and j2, j2 = i4, j4.
malte has quit [Remote host closed the connection]
chiselfuse has quit [Remote host closed the connection]
chiselfuse has joined #ocaml
malte has joined #ocaml
malte has quit [Remote host closed the connection]
bartholin has quit [Quit: Leaving]
Serpent7776 has quit [Ping timeout: 248 seconds]
malte has joined #ocaml