@danieldietrich danieldietrich released this Jan 20, 2019 · 1 commit to master since this release

Info

The minor release 0.10.0 focuses on several API improvements.

Please find the complete list of changes here.

The API Docs can be found here

Comitters

🎉 MANY THANKS TO ALL COMMITTERS (AND THEIR PATIENCE)! 🎉

Note: A few contributions didn't made it into 0.10.0 because of backward incompatibilities.

Changes

Instead of describing all changes in detail, I will provide a list and show some examples.
Beside new features there were also several (internal) improvements not shown here.

Core/API

for

  • Change (internal): Removed internal interface io.vavr.Lambda which was on top of the (Checked)Function type hierarchy. It was not public.
  • Feature: For-comprehension supports List, Option, Future, Try
  • Feature: Tuple - append(), concat() and hash()
  • Feature: CheckedConsumer, CheckedPredicate and CheckedRunnable enhancements
  • Feature: PartialFunction now implements Function1
  • Feature: Predicates.not()
  • Feature: Value: toJavaArray(IntFunction), toTree(Function, Function)
  • Deprecation (for removal): API.Map(Tuple2)
  • Deprecation (for removal): API.LinkedMap(Tuple2)
  • Deprecation (for removal): API.SortedMap(Tuple2)
  • Deprecation (for removal): API.SortedMap(Comparator, Tuple2)
  • Deprecation (for removal): API.SortedMap(java.util.Map)
  • Deprecation (for removal): Value.toLeft()
  • Deprecation (for removal): Value.toRight()
  • Deprecation (for removal): Value.toValid()
  • Deprecation (for removal): Value.toInvalid()

Collections

for-each-with-index

  • Feature: Traversable: forEachWithIndex, reject(Predicate)
  • Feature: Iterator/Stream: fill(int, Object)
  • Feature: Map/Multimap: reject(BiPredicate), rejectKeys(Predicate), rejectValues(Predicate), keysIterator(), valuesIterator()
  • Feature: Map/Seq: asPartialFunction()
  • Feature: Seq.rotateLeft, rotateRight, takeRight, takeRightUntil, takeRightWhile

Concurrent

future

  • Change: Future now uses Executor instead of ExecutorService. The executorService() works as before if Future was initialized with an ExecutorService, otherwise it throws. User executor() instead.
  • Change: Future DEFAULT_EXECUTOR: ForkJoinPool.commonPool()
  • Feature: Future.await(long timeout, TimeUnit unit)
  • Feature: Future.isCancelled()
  • Feature (experimental): (Experimental) Future.run(Task), Future.run(Executor, Task)
  • Deprecation (for removal): Seq/Map/Set withDefault, withDefaultValue

Controls

try-fold

  • Feature: Either.sequence, Either.sequenceRight
  • Feature: Either.traverse, Either.traverseRight
  • Feature: Either.filterOrElse
  • Feature: Either.toValidation
  • Feature: Option.traverse
  • Feature: Option.fold
  • Feature: Try.traverse
  • Feature: Try.onFailure
  • Feature: Try.fold
  • Feature: Try.toValidation
  • Feature: Validation.fromTry
  • Feature: Validation.traverse
  • Deprecation (for removal): Either.left(), Either.right()
  • Deprecation (for removal): Either.LeftProjection, Either.RightProjection
Assets 2