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
http://hoytech.com/transactional-programming.html
Doug