- Support
use AsyncWithoutside of a module. This allows interactive IEx sessions. - Raise
CompilerErrorinstead ofArgumentErrorwhen theasyncmacro is not used withwith. - Raise
CompilerErrorerrors when no clauses nor blocks are provided. - Export formatter configuration via
.formatter.exs. - Support single line usage (i.e.
async with a <- 1, do: a). - Re-throw uncaught values (i.e.
async with _ <- throw(:foo), do: :ok). - Re-raise unrescued errors (i.e.
async with _ <- raise("ops"), do: :ok).
- Print a warning message when using
elseclauses that will never match because all patterns inasync withwill always match.
- Fix compiler warnings produced when one of the
async withclauses followed an always match pattern (i.e.a <- 1).
- Correct documentation regarding
@async_with_timeoutattribute.
- Optimize implementation.
- Use same timeout exit format as
Task.
- Ensure asynchronous execution of all clauses as soon as their dependencies are fulfilled.
DOTis removed.DependencyGraphis removed.DependencyGraph.Vertexis removed.Macro.DependencyGraphis removed.Macro.OutNeighboursis removed.Macro.Vertexis removed.Clauseis now private.Macrois now private.