Added support for “Quoted expressions”. call() can now be used on remote
functions expecting one or more remote unserializable objects as their
arguments, without the need of a support function and/or eval().
PHP’s error level can now be controlled through the _BOND_error_level()
function (see the PHP “Limitations” section).
An initialization race with PHP <= 5.3 (causing intermittent initialization
issues) has been fixed.
The license has been changed from GPLv2 to GNU GPLv2+.
A new mailing list for announcements and development discussions has been
created (see the README).
PHP output redirection was broken in 1.0; it’s now fixed.
PHP now also redirects error messages to stderr, honouring correctly
error_reporting() and display_errors.
The API has been streamlined: make_bond() is now the primary method of
constructing Bond objects, independently of the interpreter language.
The old language constructors are still supported, but are deprecated and
will be removed in a future release.
All functions/objects/methods are now documented with docstrings.
Bond initialization errors, especially errors related to missing
dependencies, are now much easier to understand.
Serialization exceptions on the remote side have been renamed to
_BOND_SerializationException for consistency with other languages.
version of Node.js starting with 0.6.12 is now supported.
PHP support was previously limited to versions >= 5.6. Any version of PHP
starting with 5.3 is now supported.
A Perl dependency on IO::String was previously missing, and has now been
Python 3 support has been added, with the ability to mix major Python
versions between the host and the bond.
All languages/interpreters can now be executed with a remote shell without
using additional arguments.
On the remote side, __PY_BOND_SerializationException has been renamed to
_PY_BOND_SerializationException as it can be trapped by the user code.
The scope of a PHP code block in an exported, recursive call has been fixed.
Serialization exceptions generating from exported functions now correctly
unwind the remote stack.
An exception with exported functions returning no values was fixed.
The size of the serialization buffers was previously limited to 4k; it’s now
bound to the available memory.
bond.interact() now can accept multi-line blocks by using a trailing
backslash at the end of the line.
Performance was optimized.
Local exceptions are now forwarded remotely for exported functions.
Excluding Python, exceptions are no longer serialized, but are instead
propagated using their originating error message. See the trans_except
keyword argument in constructors that allows to tune this behavior.
The spawned interpreter now uses a copy of the current environment.
PHP now triggers an exception when attempting to redefine a function.
Serialization errors are now intercepted by default and generate a local
exception of type bond.SerializationException.
PHP can now “call” any callable statement.
eval_block() no longer returns the value of the last statement. This
avoids confusion with Perl code blocks returning unserializable references.