Functional Roundup for July 1, 2016
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 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
- Bug fix in try/catch without curly braces (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 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
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.feedfunction 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
onNextAllextension for both
Subscriberwhich can push a whole collection of events.
- 187 integrates the
MonadCombinetype-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 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:
- 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
- July 12th
- WhitePages - Seattle, WA
- August 5th - 6th
- Concordia University - Montreal, Quebec
- September 10-14th
- The Rheged Centre - Cumbria, UK