Re: [Bro-Dev] 'async' keyword

2017-09-19 Thread Robin Sommer


On Tue, Sep 19, 2017 at 17:32 +, you wrote:

> Understanding the new code also requires understanding the context in
> which it is implemented and I wonder if the later is more of a hurdle
> here.

Hey, this is bro-dev, are you saying not everybody here is intimately
familiar with the Bro source code? ;-)

So yes, I'll allow for more time to understand the context. :) The
point though is that conceptually it's both simple and difficult at
the same time. Even without all the context, one might get the basic
idea pretty quickly if looking at the right parts---or maybe one
doesn't, I don't know, that's part of why I keep looking for feedback.

Robin

-- 
Robin Sommer * ICSI/LBNL * ro...@icir.org * www.icir.org/robin
___
bro-dev mailing list
bro-dev@bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev


Re: [Bro-Dev] 'async' keyword

2017-09-19 Thread Siwek, Jon

> On Sep 19, 2017, at 11:39 AM, Robin Sommer  wrote:
> 
> The exercise here is: Can you understand how "async" works? (If you 
> can honestly answer "yes" in under 15 minutes, I buy you a beer. ;-)

A feat like that deserves a larger reward.

Understanding the new code also requires understanding the context in which it 
is implemented and I wonder if the later is more of a hurdle here.  Maybe it’s 
understandable for the exercise to take on the order of days/weeks for a person 
that’s not done much hacking/exploring of the bro internals?  Just trying to 
give a sane reference point so anyone taking the challenge isn't discouraged 
after only 15 mins :)

- Jon

___
bro-dev mailing list
bro-dev@bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev


[Bro-Dev] 'async' keyword

2017-09-19 Thread Robin Sommer
At BroCon a few folks asked me about the proposed "async" keyword for
Bro's scripting language. "async" is coroutine-style language
construct that puts blocking operations on hold until they conclude,
working on other stuff first. It could replace most uses of "when" and
is arguably much nicer to use.

"async" is implemented as a proof-of-concept in the topic/robin/async
branch. Note that that Bro branch is not fully functional at the
moment, nor are performance implications clear. However, before going
any further with it I'd like to reach consensus if the current
implementation is acceptable for the Bro code base, as it's very
low-level and not easy to follow. I'd be interested in opinions here.

The commit to look at is:
https://github.com/bro/bro/commit/8653b333431648e5a33d61c3f61c6d093cff5b72

The exercise here is: Can you understand how "async" works? (If you 
can honestly answer "yes" in under 15 minutes, I buy you a beer. ;-)

Robin

PS: See the TODOs in that commit for the current state of the code.)

-- 
Robin Sommer * ICSI/LBNL * ro...@icir.org * www.icir.org/robin
___
bro-dev mailing list
bro-dev@bro.org
http://mailman.icsi.berkeley.edu/mailman/listinfo/bro-dev