- 04 Apr, 2020 5 commits
-
-
Joseph Noir authored
-
Dominik Charousset authored
Closes #1076.
-
Dominik Charousset authored
-
Dominik Charousset authored
(cherry picked from commit 538ee173)
-
Dominik Charousset authored
(cherry picked from commit 0f458aca)
-
- 03 Apr, 2020 4 commits
-
-
Dominik Charousset authored
Closes #1006.
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 02 Apr, 2020 3 commits
-
-
Dominik Charousset authored
Closes #1048 and fixes #1041
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 31 Mar, 2020 2 commits
-
-
Dominik Charousset authored
The `result` class predates the sum type API in CAF and used a flag for selecting one of several members. Re-implementing the class with a `variant` instead is both cleaner and more idiomatic. Furthermore, the implementation for `result` now uses a base type that wraps state as well common constructors. The class `result` is merely a thin wrapper around the base with additional constructors. For example, results with a single template parameter allow conversion from `expected`. This fixes #989 by avoiding catch-all constructors and unreliable `enable_if` magic.
-
Dominik Charousset authored
The composable behavior was intended to make actor states re-usable. However, they turned out to not deliver on that promise. One major flaw in this approach comes from the way inheritance works in C++. In a scenario with multiple base types providing the same virtual function, overrides in one base type may not override all functions for that signature. Consider the following example: ```c++ struct foo { virtual void hello() = 0; }; struct bar { virtual void hello() = 0; }; struct a : foo { void hello() override { // nop } }; struct b : bar, a { }; int main(int, char **) { b obj; // ... oops: compiler error! } ``` This rarely becomes an issue in most C++ code. However, it's very easy to run into this compiler error using the composable behaviors by implementing overlapping typed actor handles. Aside from this subtle issue, compiler errors produced by the composable actor API turned out to be very hard to parse. Getting a handler signature wrong or missing an override quickly turns into guess games. Last but not least, the `caf::param` API became a necessary evil to support actors that may or may not require mutable access to a tuple. But it adds another layer of complexity as well as runtime overhead. The idea of implementing actors with re-usable pieces is still worth pursuing, but this experiment did not pay out.
-
- 29 Mar, 2020 6 commits
-
-
Dominik Charousset authored
Re-implement message with new flat design
-
Dominik Charousset authored
-
Dominik Charousset authored
(cherry picked from commit 1f12fc68)
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 28 Mar, 2020 2 commits
-
-
Dominik Charousset authored
Add new UUID class
-
Dominik Charousset authored
-
- 27 Mar, 2020 1 commit
-
-
Dominik Charousset authored
(cherry picked from commit c5999142)
-
- 26 Mar, 2020 1 commit
-
-
Dominik Charousset authored
-
- 25 Mar, 2020 3 commits
-
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
Our CMake setup should care about building the framework, as opposed to building documentation that we provide online. Similar to the manual, users that really want to build the API documentation locally can simply run the Doxygen command.
-
- 24 Mar, 2020 1 commit
-
-
Dominik Charousset authored
-
- 23 Mar, 2020 5 commits
-
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
- 21 Mar, 2020 1 commit
-
-
Dominik Charousset authored
-
- 19 Mar, 2020 5 commits
-
-
Dominik Charousset authored
Enable states with non-default constructor
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
-
Dominik Charousset authored
Fix several issues with typed actor views
-
- 18 Mar, 2020 1 commit
-
-
Dominik Charousset authored
Bumping the release version allows early adopters to start integrating new features with version checks. To mark these releases as development version, we tag all unreleased version with '-dev+exp.sha.$commit' when building the manual.
-