Functional Roundup for July 1, 2016

Functional Roundup for July 1, 2016

Scala 2.12.0-M5

Scala 2.12.0-M5 released

Scala 2.12.0-M5 was released on June 29th.

2.12.0-M5 featured the merge of 96 pull requests and resolved 49 JIRA tickets.

Adriaan Moors lists the following as highlights:

  • 5251 concrete trait methods are compiled to a static method (in the interface classfile) containing the actual implementation, and a default method forwards that to the static one.
  • 5085 classes extending traits no longer get mixin forwarders (in most cases), the JVM picks the correct default method.
  • 5102 adds partial unification of type constructors (behind -Ypartial-unification) and fixes SI-2712. Thanks @milessabin! The optimizer now listens to -opt (instead of -Yopt)
  • SI-9390local methods that don’t capture this are emitted as static to prevent capturing the outer instance in lambdas.

2.12.0-M5 is not binary compatible with any other Scala release and requires a Java 8 runtime.

You can view more of the release notes here: Scala 2.12.0-M5.


Scalafmt 0.2.9

Scalafmt 0.2.9 released

Hot off the trails of 0.2.6 and 0.2.9, Scalafmt 0.2.9 was released this week.

0.2.9 includes two new flags, a few bug fixes, and a WIP IntelliJ inspired style according to Ólafur Páll Geirsson:

  • Decrease non-idempotent cases in test suite from 15 to 11.
  • New flag: --reformatDocstrings false: disable docstring reformatting
  • New flag: --bestEffortInDeeplyNestedCode: reenable best-effort formatting as was default prior to 0.2.6.
  • Improvements to --danglingParentheses
  • Bug fix in try/catch without curly braces [350](https://github.com/olafurpg/scalafmt/issues/350
  • Bug fix in function applications with lambda arguments.
  • Improved multiline strings in function calls with many arguments.

More details regarding this update can be found here: Scalafmt changelog.


Monix 2.0-RC8

Monix 2.0-RC8 released

Alexandru Nedelcu announced the release of Monix 2.0-RC8. The update now features a composable Consumer type.

The release has the following critical bug fix:

  • #181 the default operators on CancelableFuture are triggering StackOverflow exceptions

And ten new features including:

  • 184 introducing the Consumer type, a factory of subscribers that makes it easier to specify reusable and composable consumers and for example, it makes it possible, out of the box, to load-balance the workload between multiple subscribers in parallel; see the description.
  • 180 the Observer.feed function now has an overload that does not take a cancelable, because it’s awkward coming up with one if it isn’t needed; there’s also a onNextAll extension for both Observer and Subscriber which can push a whole collection of events.
  • 187 integrates the MonadCombine type-class from Cats, being similar to the Scalaz MonadPlus, as somehow this was missed in the initial integration.
  • 191 introduces by default an implicit conversion from Any to Coeval.Now, to make it easier to use Coeval as function parameters - the default will thus simply be strict evaluation, strictness being usually the default in Scala

You can view the full list of improvements on 2.0-RC8 here: Monix: Version 2.0-RC8 Released


Apache Spark 1.6.2

Apache Spark 1.6.2 released

The latest maintenance release of Apache Spark contained stability fixes including a wealth of bug fixes, improvements, and a few new features.

  • 8428 TimSort Comparison method violates its general contract with CLUSTER BY
  • 11327 spark-dispatcher doesn’t pass along some spark properties
  • 14327 Tasks that fail due to CommitDeniedException (a side-effect of speculation) can cause job failure
  • 14468 Always enable OutputCommitCoordinator

You can view the full list of bug fixes and changes here: Spark 1.6.2 release notes


Suggested information to digest this weekend:

The functional programming community has no shortage of excellent conferences and talks. Here are just a few that were recently released that we recommend checking out if you missed them the first time:

Raúl Raja:

  • Intro to FP & Typeclasses
  • Software Craftsmanship Conference - Pamplona, Spain

Raúl Raja presents a brief introduction to the core Functional Programming traits and the power of coding to abstractions using Typeclasses.

View the slides here:

Spark Summit Presentations:

  • All presentations
  • Spark Summit 2016 - San Francisco, CA

The video presentations from Spark Summit this June are now available from the Apache Spark YouTube channel.

Find the videos here: Spark Summit 2016


Upcoming Events:

Scala at the Sea

  • July 12th
  • WhitePages - Seattle, WA

Scala Up North

  • August 5th - 6th
  • Concordia University - Montreal, Quebec

Scala World

  • September 10-14th
  • The Rheged Centre - Cumbria, UK

Have a news tip for us? Tweet to us @47deg or send to us via email here.

Ensure the success of your project

47 Degrees can work with you to help manage the risks of technology evolution, develop a team of top-tier engaged developers, improve productivity, lower maintenance cost, increase hardware utilization, and improve product quality; all while using the best technologies.