exactor v0.2.0 Release Notes
-
This version introduces some significant changes. If you don't want to incorporate them, there is a tag for 0.1. Keep in mind that I won't maintain the 0.1, so your best option is to fork it and maintain it yourself.
๐ On the plus side, the migration to the new version should not be very complicated (unless you're relying on tuple modules support). Here are quick pointers for migrating from old API to the new one:
Predefines
0๏ธโฃ The point of predefines is to make the decision about default implementations explicit. Earlier, you used
use ExActor
and the default implementation was implicit. Now you have to decide which implementation do you want, or you can easily make your own. If you want to keep the status quo, just useuse ExActor.GenServer
.๐ Deprecated implicit "smart" returns
definit do: some_state # deprecated definit do: initial_state(some_state) defcall op, do: response # deprecated defcall op, do: reply(response) defcast op, do: :ok # deprecated defcast op, do: noreply definfo msg, do: :ok # deprecated definfo msg, do: noreply
Beside these "special" responses, you can use standard
gen_server
responses. The reason for this change was again to make things more explicit, and aligned with standardgen_server
approach.โฌ๏ธ Dropped tuple modules support
๐ There's no way around this - if you use ExActor tuple modules support, you need to change the code to classical functional approach, or remain on version 0.1. The tuple modules support was more a hack, to make some code in blog articles more OO-ish. In hindsight, this was a mistake that made the ExActor code more complicated, so I decided to drop it.