C++ Actor Framework v0.18.2 Release Notes

Release Date: 2021-03-26 // about 3 years 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).