gugamilare edited this page Sep 13, 2010 · 7 revisions
Clone this wiki locally

Welcome to the storable-functions wiki!

Storable Functions implements transformations of functions (including closures) from and to CLOS instances of some specific classes. It contains a set of macros for making this transformation possible, and tools for actually doing the transformation. The goal is to provide a simple, portable way to serialize functions.

Portable in the sense that it should work across multiple Common Lisp implementations. Serialization is intended to be portable as well (e.g., you can store the functions within one implementation and restore it within another), depending, of course, on the portability of the serialization library being used.

Simple in the sense that supporting the serialization of all functions defined using this library should be just a matter of defining / redefining one or two methods of the serialization protocol.

The only restriction to make functions serializable is to use a set of macros to create closure and function information.
It includes cl-store+functions, which implements the serialization for cl-store.

Code to support serializing functions in other serialization libraries should not be hard to do, but general knowledge about the internals of the serialization library is required. If you want to add support to a specific serialization library and you have this knowledge, contact me and I probably can help you with the coding.