
Vish: Thanks for writing up the minutes. On 10-10-07 11:54 PM, Vish Singh wrote:
- Doug talked about the state machine compiler he's using (I think it was http://www.complang.org/ragel/) - compiles to C code - he uses it to build state machines for parsing HTTP streams
Yes that is it. Ragel is awesome. In a project I'm working on I use Ragel a lot. My project doesn't have a parser for HTTP per se but it has one for /\r?\n\r?\n/ which is all you need for an HTTP 1.0 message terminator: machine http10_message; ... main := ( extend* $inc_count ('\r'? '\n' '\r'? '\n') @found_separator ); HTTP is only one of the message formats it parses. I also like using Ragel for parsing command line arguments and such.
- Alex described how shared-memory concurrency can be implemented using in-memory databases - Antiweb uses Berkeley DB in a similar way