All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
Renamed sequenced
to sequenced-par
to more explicitly state its execution type.
Proper sequenced
function that executes its contents sequentially.
Case in sequenced-par
where a list of tasks would've been transformed to a task of lists of lists
Documentation error.
Given the ambiguity in errors when mixing parallel with non-parallel executions,
failed parallel executions do not contain collections of Throwable
objects anymore,
but rather a single Throwable
object pertaining to the first execution that failed.
Function recover-as
, that resets a failed task to a successful task, containing a user-provided value.
Syntax for recover
and recover-as
in do-tasks
block.
Failures have now been replaced with plain Throwable
objects.
The failure map format of previous versions (containg the message and a vector stack trace)
has been deprecated and removed.
Failed parallel tasks now contain a collection of all Throwable
objects of all the tasks
that failed during execution.
Old representation of failures and errors.
Result
is now hidden and contained within Task
.
Users need not manipulate it anymore.
Its functionality has also been hidden away.
Task
has now been made completely compositional.
Any task execution now returns a new task, that one may continue composing with other tasks.
Public Result
functionality.
fold
in Result
is now a macro to avoid unnecessary function calls
Function from-result
on Task
, which promotes a Result
to a Task
Invariant here is: for some Result
r, (run (from-result r)) == r
get!
for Result
now returns the interval value for both failure and success
get-or-else
function for Task
. This runs the task synchronously and then returns the inner
result value. Equivalent to (halfling.result/get! (halfling.task/run task))
Result
is now a deftype
recover
function added for both Task
and Result
. This applies a function on a result in case of failureap
to mapply
, because ap
wasn't really the true ap
function, but rather
the applicative apply-n
function.fold
for Result
to apply its functions directly on the values of those results and not the results themselvesTask
behaviour to support parallel executionap
, zip
and sequenced
support parallel executionp-map
, an alternative to clojures pmap
, that uses the library to map a function in parallelCan you improve this documentation? These fine people already did:
Robert M. Avram & Robert Marius AvramEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close