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](
  • 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.

blog comments powered by Disqus

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.