From MozillaWiki
Jump to: navigation, search

IPDL is the "Inter-*-communication Protocol Definition Language", where "*" includes "process" and "thread."


The IPDL compiler is being implemented in stages.

  1. Basic code generation (no protocol management)
  2. Type checking and protocol management
  3. Protocol state machines
  4. (IN PROGRESS) Full dynamic safety checking
  5. Static analysis of code implementing IPDL interfaces
  6. Model checking of inter-protocol interactions


The IPDL/Getting started guide intends to be somewhat verbose and gentle introduction to the IPDL.

The IPDL/Five minute example shows examples of what C++ code you need to implement to make IPDL "work." Before reading this, you should be somewhat familiar with the IPDL (or good at learning by example.)

The IPDL/Low level setup walks you through setting up the support infrastructure (processes, threads, and sockets) that IPDL needs to send messages. Few people should need to read this.

Another IPDL tutorial (MDN) that provides with some more information about IPDL protocols.


ON HOLD Proposal for fine-grained shmem access control

Other projects

  • IPDL/Unit test generation: use IPDL specifications to generate unit tests that "extensively" explore the protocol-level interaction of two (or more) actors. The unit tests are intended to check the C++ implementation(s) of the actor interfaces.