How to marshal a function?
Michael Hudson
mwh at python.net
Thu Nov 15 05:55:42 EST 2001
pinard at iro.umontreal.ca (François Pinard) writes:
> Earlier today, I wondered how to marshal a function, in view of
> transmitting it to a remote machine and executing it there. The
> idea was to not transmit Python source, when the byte-compilation
> has already been done on this side.
>
> I quickly found out that, for a given `function f(...) ...' I should
> transmit marshal-ed `f.func_code' instead of `f'. The resulting
> code could even be eval'ed or exec'ed on the remote side, if the
> function does not require arguments. I did not saw that I could
> usefully return something from the function, and surely many other
> properties are missing. Moreover, the manual suggests that this is
> all internal things, subject to change at any time. The result of
> marshal-ing is not guaranteed to work between Python versions,
> either.
Well, the bytecode has changed between every released version of
Python, AFAIK. Certainly 1.5.2->2.0, 2.0->2.1 and 2.1->2.2, and not
usually backward compatibly.
So you can forget that idea.
Cheers,
M.
--
You owe The Oracle a TV with an 'intelligence' control - I've
tried 'brightness' but that didn't work.
-- Internet Oracularity #1192-01
More information about the Python-list
mailing list