IPDL: Difference between revisions

68 bytes added ,  7 April 2022
replace link with wayback machine link and add firefox-source-docs link
No edit summary
(replace link with wayback machine link and add firefox-source-docs link)
 
(11 intermediate revisions by 4 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.


# Basic code generation (no protocol management)
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.)
# 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>


== Other projects ==
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.


* [[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.
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.


== Reference ==
[[IPDL/Shmem]].


The [[IPDL/Getting started]] guide intends to be somewhat verbose and gentle introduction to the IPDL.
'''ON HOLD''' Proposal for [[IPDL/Proposal:Shmem_access_control|fine-grained shmem access control]]


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.)
== Other projects ==


The [[IPDL/Low level setup]] walks you through setting up the support infrastructure (processes, threads, and sockets) that IPDL needs to send messagesFew people should need to read this.
* [[IPDL/Unit test generation]]: use IPDL specifications to generate unit tests that "extensively" explore the protocol-level interaction of two (or more) actorsThe unit tests are intended to check the C++ implementation(s) of the actor interfaces.
210

edits