Fernando,

Sorry for just now responding, I don't know what happened to this email.
/shrug.

If you want to give me credit, @hunterboerner is my GitHub handle and my
name is Theron Boerner. Need that résumé material. :)

— Theron

On Sun, Sep 10, 2017 at 8:43 AM Fernando Tapia Rico <[email protected]>
wrote:

> I just published async_with v0.2.0 that ditches the dependency graph and
> uses processes + messages to execute the clauses asynchronously.
> https://github.com/fertapric/async_with
>
> I've also included a new test with the edge case you mentioned
> https://github.com/fertapric/async_with/blob/master/test/async_with_test.exs#L534-L554
>
> Here is the PR with all the changes:
> https://github.com/fertapric/async_with/pull/1
>
> I would like to mention you guys in the README for all the help. Could
> give me a list of name + handlers that I should include?
>
> Thanks!
>
> On Saturday, September 9, 2017 at 11:16:19 PM UTC+2, John Wahba wrote:
>>
>> I took a bit of a different approach: instead of spawning new processes
>> when all the conditiones match: I spawn them all as futures and they block
>> until their dependent futures return:
>> https://github.com/johnwahba/async_with
>>
>> https://github.com/johnwahba/async_with/blob/master/test/async_with_test.exs
>> <- (has an expanded macro in the comments)
>>
>>
>> On Friday, September 8, 2017 at 2:12:47 PM UTC-7, Fernando Tapia Rico
>> wrote:
>>>
>>> Thanks for the feedback Theron!
>>>
>>> Interesting...instead of using the dependency graph you are spawning new
>>> processes when all the conditions (the right vars) are matched. It's
>>> definitely an idea worth exploring.
>>>
>>> On Friday, September 8, 2017 at 9:52:00 PM UTC+2, Theron Boerner wrote:
>>>>
>>>> Hi Fernando,
>>>>
>>>> Great work on this implementation! However, there are a few edge cases
>>>> that you do not handle. E.g.
>>>>
>>>> async with a <- 1,
>>>>   b <- :timer.sleep(1000),
>>>>   c <- IO.inspect(a),
>>>>   d <- {a, b} do
>>>> ...
>>>> end
>>>>
>>>> That *should* print out "1" immediately because c only has a
>>>> dependency on a and is unrelated to b, however, your implementation does
>>>> not. I've been discussing some of these edge cases with José, Luke Imhoff,
>>>> et al for a few months and slowly built up this gist.
>>>> <https://gist.github.com/hunterboerner/96bc022d1ac131c21c4ce7f12756d0c3> As
>>>> you can see, that gist is a complete mess so Luke and I began to rewrite it
>>>> in https://github.com/kronicdeth/async_with. John Wahba proposed an
>>>> alternative implementation to me at ElixirConf that eliminates the need to
>>>> compute a dependency graph so we're going to be implementing that version
>>>> sometime soon and share it here when we have a working version on GitHub.
>>>>
>>>> - Theron
>>>>
>>>> On Fri, Sep 8, 2017 at 5:07 AM Fernando Tapia Rico <[email protected]>
>>>> wrote:
>>>>
>>>>> I wanted to share with you guys
>>>>> https://github.com/fertapric/async_with, which is the implementation
>>>>> of "async with", one of the "José goes crazy" ideas mentioned in this
>>>>> proposal :) I hope you like it!
>>>>>
>>>>> Any feedback or help is more than welcome!
>>>>>
>>>>> On Thursday, November 19, 2015 at 4:54:15 PM UTC+1, José Valim wrote:
>>>>>
>>>>>> Please open up an issue. If we support such, we would need to support
>>>>>> it both on "comprehensions" and "with".
>>>>>>
>>>>>
>>>>>>
>>>>>>
>>>>>> *José Valim*
>>>>>> www.plataformatec.com.br
>>>>>> Skype: jv.ptec
>>>>>> Founder and Director of R&D
>>>>>>
>>>>>> On Thu, Nov 19, 2015 at 5:05 PM, Vincent Siliakus <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Op zaterdag 14 november 2015 13:57:08 UTC+1 schreef José Valim:
>>>>>>>>
>>>>>>>> The implementation is already in master thanks to lexmag. :)
>>>>>>>>
>>>>>>>>
>>>>>>> Works great, I love this addition!
>>>>>>>
>>>>>>> I was wondering though since the current implementation uses 'case'
>>>>>>> internally, if support for something like this is still planned:
>>>>>>>
>>>>>>> with x when x < 2 <- 4, do: :ok
>>>>>>> => 4
>>>>>>>
>>>>>>> with x when x > 2 <- 4, do: :ok
>>>>>>> => :ok
>>>>>>>
>>>>>>> I think this would allow even more clunky, nested code to be
>>>>>>> rewritten much more elegantly with 'with'.
>>>>>>>
>>>>>>>
>>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "elixir-lang-core" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/elixir-lang-core/9a5fb079-07a7-44d4-ab3d-d6ab1ab8a9bd%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/elixir-lang-core/9a5fb079-07a7-44d4-ab3d-d6ab1ab8a9bd%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/db5ad17a-3ed4-4bba-b117-264889233bb5%40googlegroups.com
> <https://groups.google.com/d/msgid/elixir-lang-core/db5ad17a-3ed4-4bba-b117-264889233bb5%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CAOtk34cB906Y6e4ORdxZFw87f0VHXroDmxwhN6kQ0ngPqmHxhQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to