IPDL: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(replace link with wayback machine link and add firefox-source-docs link)
 
(15 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.)
 
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 [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.


# Basic code generation (no protocol management)
[[IPDL/Shmem]].
# 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 ==
'''ON HOLD''' Proposal for [[IPDL/Proposal:Shmem_access_control|fine-grained shmem access control]]


The [[IPDL/Getting started]] guide intends to be somewhat verbose and gentle introduction to the IPDL.
== Other projects ==


The [[IPDL/Five minute example]] shows only the code necessary to make IPDL "work." Before reading this, you should be somewhat familiar with the IPDL (or good at learning by example.)
* [[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.