With r2914, when a function object is pushed into engines, I get really the same function object on engines:
In [31]: runfunc
Out[31]: <function do_submit_func at 0x888033c>
n [33]: rc.execute(1, "print runfunc")
Out[33]:
<Results List>
[1] In [46]: print runfunc
[1] Out[46]: <function runfunc at 0xb4f49d4c>
However, the newest r3021 either doesn't push function objects at all, or push them as a ipython1.kernel.pickleutil.CannedFunction? object which cannot be called directly:
In [32]: rc.execute(13, "print runfunc")
Out[32]:
<Results List>
[13] In [66]: print runfunc
[13] Out[66]: <ipython1.kernel.pickleutil.CannedFunction object at 0x907b70c>
Is this a planned feature or a bug? it looks to me that the old behavior is more pleasant and easy to use.