Status Report: HOT Pickles, and how to serve them

Status Report: HOT Pickles, and how to serve them, Andreas Rossberg, Guido Tack, and Leif Kornstedt. ML Workshop 2007.

The need for flexible forms of serialisation arises under many circumstances, e.g. for doing high-level inter-process communication or to achieve persistence. Many languages, including variants of ML, thus offer pickling as a system service, but usually in a both unsafe and inexpressive manner, so that its use is discouraged. In contrast, safe generic pickling plays a central role in the design and implementation of Alice ML: components are defined as pickles, and modules can be exchanged between processes using pickling. For that purpose, pickling has to be higher-order and typed (HOT), i.e. embrace code mobility and involve runtime type checks for safety. We show how HOT pickling can be realised with a modular architecture consisting of multiple abstraction layers for separating concerns, and how both language and implementation benefit from a design consistently based on pickling.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.


Discussed previously here.

The original discussion was

The original discussion was mentioned on LtU.

Spicy pickling in Python

There is a nice project called Stackless Python, which offers threadlet pickling. It is possible to suspend (pickle) a running "tasklets" and resume it elsewhere and at any time - e.g. migrate to another host, for example.