4.3 Bug fixes and a ton of refactoring
Important
This release is not ABI compatible with the previous one! Please recompile all your plugins, when updating.
Bug fix: Subtree "_autoremap"
This is related to #563 .
I realized that Subtree::_autoremap
in V4.x was not an exact drop-in replacement of Subtree::__shared_blackboard
in V3.X.
The main problem was that port remapping may not work properly if there is a subtree of a subtree (see this unit test).
To solve this problem, the implementation of the Blackboard and port remapping had to change considerably.
A nice side effect is that not TreeNode::getInput
and TreeNode::setOutput
is now actually more efficient.
Bug fix: default value for custom types
This solves #580. Note that it also required some radical changes in the Blackboard.
The user facing API did not change, but the internal one did; therefore, those users which use directly the Blackboard (something that is discouraged), might be affected.
Refactoring: Pimpl
To prevent more ABI compatibility issues in the future, we started using the PImpl idiom in multiple classes (TreeNode
and BehaviorTreeFactory
in particular).
New logger: FileLogger2
This is a replacement of the old FileLogger
using Flatbuffers. This version will generate smaller logs and is compatible with the latest version of Groot2 (to be released soon).