[toronto-lisp] October meeting minutes

Doug doug at hcsw.org
Sat Oct 9 01:19:58 UTC 2010


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




More information about the toronto-lisp mailing list