[ragel-users] interleaving two machines

Adrian Thurston thurston at complang.org
Wed Oct 22 23:28:43 UTC 2008


Right, I see how that would be useful. I'm pretty sure this has been 
asked for in the past but I didn't get it.

-Adrian

Robert Lemmen wrote:
> On Wed, Oct 22, 2008 at 10:58:37AM -0400, Adrian Thurston wrote:
>> I think this has been requested before, or something similar to it. Is
>> this a language of your making, or some existing language? I'm
>> interested in an example use.
> 
> it is a language of my making, but i think it is a quite neat feature.
> in my case it is a handshake protocol over the network. you could work
> your way around it by specifying the exact order, i.e. one end (the
> server) moderates the whole protocol, the other end just answers. it is
> however much more efficient and neat if you could avoid that. a really
> simple example:
> 
> --- helo   -->
> <-- helo   ---
> --- ident  -->
> <-- ident  ---
> --- query  -->
> <-- answer ---
> --- ok     -->
> <-- ok     ---
> 
> basically, both ends send a "helo", wait for an "ident" and then either
> do a "query" which needs an "answer", or just send an "ok". after two
> "ok"s the handshake is done. we can of course require the above
> ordering, but if we allow both ends to send a package whenever it makes
> sense, then the whole thing might get heavily reordered:
> 
> --- helo   -->   <-- helo   ---
> --- ident  -->   <-- ident  ---
> --- query  -->   <-- ok     ---
>                  <-- answer ---
> --- ok     -->
> 
> as you can see, we can then do things in parallel, which is especially
> important on high-latency links...
> 
> cu  robert
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> ragel-users mailing list
> ragel-users at complang.org
> http://www.complang.org/mailman/listinfo/ragel-users




More information about the ragel-users mailing list