Initial release 0.1.0
Version 0.1.0, 4 Nov, 2022
This very first release features a fully functional taskSeq { .... }
computation expression and a decent surface area coverage of module functions. All relevant issues and PR's are listed as part of milestone v0.1.0.
Summary of changes
Changes implemented by @abelbraaksma unless otherwise noted.
Bugs fixed
- #25 Fix bug: empty task sequences may have race conditions and run forever
- #39 Fix bug: multiple iterations over some task seqs can lead to
InvalidOperationException
- #65 Fix bug: prevent
MoveNext
when not necessary inTaskSeq.item
/tryItem
- #49 Fix bug: state machine resumption back to zero after reset (by @dsyme)
Features added
- #72 Put everything in namespace
FSharp.Control
(per @dsyme's suggestions) - #2, #51 etc CE
taskSeq { ... }
using resumable code (based on original ideas by @dsyme, @gusty and @rspeele, see tasks.fs):- Support
Bind
, fortaskSeq { let! foo = someTask() }
- Support
For
,While
fortaskSeq { for current in someTaskSeq do ... }
- Support
Yield
fortaskSeq { yield "hello world" }
- Support
YieldFrom
fortaskSeq { yield! anotherTaskSeq }
with overload for normal sequences - Support
Using
fortaskSeq { use ... }
andtaskSeq { use! ... }
- Support
TryFinally
andTryWith
fortaskSeq { try .. with | try .. finally }
- Support
Zero
fortaskSeq { do () }
- Support
Combine
for supporting multiplelet!
- Support
- #59 Drop
ReturnFrom
fromtaskSeq
computation expression - #34 Consistent naming style as F#
Seq
functions - #2, #18, #20, #23, #31, #53, #67, #68, #69, #70 and issues #22, #38 Add functions to
TaskSeq
module:- Add
box
- Add
cast
- Add
choose
,chooseAsync
- Add
collect
,collectAsync
- Add
collectSeq
,collectSeqAsync
- Add
concat
- Add
contains
- Add
empty<_>
- Add
exactlyOne
- Add
exists
,existsAsync
- Add
filter
,filterAsync
- Add
find
,findAsync
- Add
findIndex
,findIndexAsync
- Add
fold
,foldAsync
- Add
head
- Add
indexed
- Add
init
,initAsync
- Add
initInfinite
,initInfiniteAsync
- Add
isEmpty
- Add
item
- Add
iter,
iterAsync` - Add
iteri
,iteriAsync
- Add
last
- Add
length
- Add
lengthBy
,lengthByAsync
- Add
lengthOrMax
- Add
map
,mapAsync
- Add
mapi
,mapiAsync
- Add
ofArray
- Add
ofAsyncArray
- Add
ofAsyncList
- Add
ofAsyncSeq
- Add
ofList
- Add
ofResizeArray
- Add
ofSeq
- Add
ofTaskArray
- Add
ofTaskList
- Add
ofTaskSeq
- Add
pick
,pickAsync
- Add
toArray
- Add
toArrayAsync
- Add
toIListAsync
- Add
toList
- Add
toListAsync
- Add
toResizeArrayAsync
- Add
toSeqCachedAsync
- Add
tryExactlyOne
- Add
tryFind
,tryFindAsync
- Add
tryFindIndex
,tryFindIndexAsync
- Add
tryHead
- Add
tryItem
- Add
tryLast
- Add
tryPick
,tryPickAsync
- Add
unbox
- Add
zip
- Add