Stay Safe under Panic: Affine Rust Programming with Multiparty Session TypesVCOOP 2022ECOOP 2022
Thu 7 Jul 2022 16:00 - 16:30 at Zoom - VCOOP 10 Chair(s): Philipp Haller
Communicating systems comprise diverse software components across networks. To ensure their robustness, modern programming languages such as Rust provide both strongly typed channels, whose usage is guaranteed to be affine (at most once), and cancellation operations over binary channels. For coordinating components to correctly communicate and synchronise with each other, we use the structuring mechanism from multiparty session types, extending it with affine communication channels and implicit/explicit cancellation mechanisms. This new typing discipline, affine multiparty session types (AMPST), ensures cancellation termination of multiple, independently running components and guarantees that communication will not get stuck due to error or abrupt termination. Guided by AMPST, we implemented an automated generation tool (mp-anon) of Rust APIs associated with cancellation termination algorithms, by which the Rust compiler auto-detects unsafe programs. Our evaluation shows that mp-anon provides an efficient mechanism for communication, synchronisation and propagation of the notifications of cancellation for arbitrary processes. We have implemented several usecases, including popular application protocols (oAuth, SMTP), and protocols with exception handling patterns (circuit breaker, distributed logging).
Thu 9 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
Thu 7 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:00 - 16:30 | |||
15:00 30mTalk | API Generation for Multiparty Session Types, Revisited and Revised using Scala 3 (Pearl)VCOOP 2022ECOOP 2022 Research Papers Guillermina Cledou HASLab, INESC TEC; University of Minho, Luc Edixhoven Open University of the Netherlands; CWI, Sung-Shik Jongmans Open University of the Netherlands; CWI, José Proença ISEP P.PORTO & INESC TEC | ||
15:30 30mTalk | Global Type Inference for Featherweight Generic JavaVCOOP 2022ECOOP 2022 Research Papers Andreas Stadelmeier DHBW Stuttgart, Campus Horb, Germany, Martin Plümicke DHBW Stuttgart, Campus Horb, Germany, Peter Thiemann University of Freiburg, Germany | ||
16:00 30mTalk | Stay Safe under Panic: Affine Rust Programming with Multiparty Session TypesVCOOP 2022ECOOP 2022 Research Papers Nicolas Lagaillardie Imperial College London, Rumyana Neykova Brunel University London, Nobuko Yoshida Imperial College London |