Home | Research | Software | Teaching | Contact

Continuation Passing C (CPC)

CPC is a programming language designed for writing concurrent systems. More information on the dedicated page.


Babelweb (sometimes spelled Bab el-Web) is a web-based monitoring tool for the Babel routing daemon. More information on the dedicated page.


I am the maintainer of the Babel, Ahcp, Polipo and ndppd packages in OpenWrt, a Linux distribution for embedded devices.

I also ported Hekate to OpenWrt. Since it relies on an experimental cross-compiling version of CPC, it did not make into the official repository (yet). See my dedicated page for detailed instructions and screenshots.

Other contributions

I am the current maintainer of CIL (C Intermediate Language), an OCaml front-end for the C programming language that facilitates program analysis and transformation. Documentation. Github mirror.

I am a member of Regards Citoyens, a French association of citizens with a shared interest in opening up information about the functioning of democratic institutions in France. I developed several tools to measure parliamentary activity and aggregate public data. You might have a look at NosDéputé for instance, or read an essay about Open Data in France that we wrote for the Open Knowledge Foundation. a small script to generate Data Matrix barcodes from any file. Useful to keep a print copy of important files you wish to backup (for instance, PGP secret keys).
With the -r command-line switch, intermediate files are generated in a ramfs for the truly paranoids. Note that large files are split into smaller parts, but above a few kilobytes you should probably look for another backup method. Based on an original program by Mathias Kende.

I've hacked my own version of micro_httpd [tgz] to handle .xhtml and .gz files in a sensible way. Patch alone (against the Debian version of micro_httpd).

I have been involved in various other projects in the past, and still regularly send patches when I find a bug or a limitation in some piece of software I use. You can see a list of my contribution on my Ohloh page.