IPDL: Difference between revisions

(Created page with 'IPDL is the "Inter-*-communication Protocol Definition Language", where "*" includes "process" and "thread." == Status == The IPDL compiler is being implemented in stages. # B...')
 
(replace link with wayback machine link and add firefox-source-docs link)
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
IPDL is the "Inter-*-communication Protocol Definition Language", where "*" includes "process" and "thread."
IPDL is the "Inter-*-communication Protocol Definition Language", where "*" includes "process" and "thread". [https://firefox-source-docs.mozilla.org/ipc/ipdl.html Firefox-source-docs on IPDL].


== Status ==
WARNING: These wiki articles are extremely old, so they may not be accurate.


The IPDL compiler is being implemented in stages.
== Reference ==
 
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.)


# Basic code generation (no protocol management)
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.
# Type checking and protocol management
# ('''IN PROGRESS''') Protocol state machines
# <font color="gray">Full dynamic safety checking</font>
# <font color="gray">Static analysis of code implementing IPDL interfaces</font>
# <font color="gray">Model checking of inter-protocol interactions</font>


== Reference ==
Another [https://web.archive.org/web/20210530025304/https://developer.mozilla.org/en-US/docs/Mozilla/IPDL/Tutorial IPDL tutorial] (MDN) that provides with some more information about IPDL protocols.
 
[[IPDL/Shmem]].
 
'''ON HOLD''' Proposal for [[IPDL/Proposal:Shmem_access_control|fine-grained shmem access control]]
 
== Other projects ==


The [[IPDL/Getting started]] guide intends to help you get started writing protocols as quickly as possible.
* [[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.

Latest revision as of 10:30, 7 April 2022

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

WARNING: These wiki articles are extremely old, so they may not be accurate.

Reference

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.

IPDL/Shmem.

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.