IRC channel logs

2022-11-19.log

back to list of logs

<cow_2001>the rabbit hole is endlessly forking ~_~
<cow_2001>you know how when doing something like (a-function a b), and if `a` and `b` are complex expressions, not atoms, there is no guarantee that the expression `a` would run before the expression `b`?
<cow_2001>if so, why not run them in parallel?
<cow_2001>(i am not a programming language programmer)
<old>There are language that do that. MultiLisp for example: https://en.wikipedia.org/wiki/MultiLisp
<old>I want to add that feature to guile-parallel. I'm just not sure how to approach it. Should it be a syntax so you can do: `(pcall procedure complex-arguments ...)`
<old>How should it be a phase in the compiler tower, maybe in Tree-IL?
<old>The idea would then so simply substitute `(foo x y)` with `(let ((fx (future x)) (fy (future y))) (foo (touch fx) (touch fy)))` or something like that
<old>There. I've made the pcall syntax. You can use it with `(ice-9 futures)` as well: https://git.sr.ht/~old/guile-parallel/tree/master/item/parallel.scm