C++ Actor Framework v0.18.2 Release Notes

Release Date: 2021-03-26 // 3 months ago
  • โž• Added

    • CAF includes two new inspector types for consuming and generating JSON-formatted text: json_writer and json_reader.

    ๐Ÿ”„ Changed

    • Setter functions for fields may now return either bool, caf::error or void. Previously, CAF only allowed bool.

    ๐Ÿ›  Fixed

    • Passing a getter and setter pair to an inspector via apply produced a compiler error for non-builtin types. The inspection API now recursively inspects user-defined types instead, as was the original intend (#1216).
    • The handle type typed_actor now can construct from a typed_actor_pointer. This resolves a compiler error when trying to initialize a handle for my_handle from a self pointer of type my_handle::pointer_view (#1218).
    • Passing a function reference to the constructor of an actor caused a compiler error when building with logging enabled. CAF now properly handles this edge case and logs such constructor arguments as <unprintable> (#1229).
    • ๐Ÿ“œ The CLI parser did not recognize metrics filters. Hence, passing --caf.metrics-filters.actors.includes=... to a CAF application resulted in an error. The includes and excludes filters are now consistently handled and accepted in config files as well as on the command line (#1238).
    • ๐Ÿ—„ Silence a deprecated-enum-conversion warning for std::byte (#1230).
    • ๐Ÿ›  Fix heap-use-after-free when accessing the meta objects table in applications that leave the main function while the actor system and its worker threads are still running (#1241).
    • โœ… The testing DSL now properly accounts for the message prioritization of actors (suspending regular behavior until receiving the response) when using request.await (#1232).

Previous changes from v0.18.1

  • ๐Ÿ›  Fixed

    • ๐Ÿ”– Version 0.18.0 introduced a regression on the system parameter caf.middleman.heartbeat-interval (#1235). We have addressed the issue by porting the original fix for CAF 0.17.5 (#1095) to the 0.18 series.