Sven Panne <[EMAIL PROTECTED]> writes:

> itself and that compound values are a case for a (un-)marshaling
> library. We already have some ideas what this lib should look like
> and some slightly differing modules for this exist, see e.g. C->HS,
> the MPI binding or HOpenGL. Before a design for this is presented,
> the low-level details should be finished.


Have you looked at the nice (un-)marshaling features of Ocaml? The
implementation is such that fist class functions can be marshaled,
un-marshaled and subsequently executed, even for natively compiled
code. md5 checkums of functions ensure functional equivalence.  Though
in the native case you have to be running the same bit for bit binary
at both ends of the marshaling pipe. i.e the scope of the md5 checksum
is the entire binary. More interesting would be checksuming the
function and type dependencies of functions to be marshalled as a
parse tree. Or merely the names and types. In the latter cases
marshaling would inolve either agreeing on function and type
enumerations or sending canonical strings, although just how his can
consistantly be done with anonymous lambdas remains to be seen. If you
expect to be able to unmarshall stored functions after a code change,
or have a number of possibly divergent co-operating (un-)marshalers
that pass functions to one another, this ability to abstract away
variance within a category from variance TO the category is vital, and
something that haskell might be well suited to, given it's strong
referential transparency.

Cheers,
Julian.

Reply via email to