Functional Roundup for August 5, 2016
- by Maureen Elsberry
- August 05, 2016
- news• akka• scala• scalatest• scalafiddle• functional roundup
Akka 2.4.9-RC1 release
On August 2nd, Akka 2.4.9-RC1 was made readily available for use and evaluation by the public.
The latest release focuses on HTTP performance improvements as well as the entity streaming feature. According to Konrad Malawski and the official release notes, highlights include:
- A 30-40% improvement of overall Akka HTTP throughput and transfer rate.
- Performance matches Spray in both raw throughput as well as latency distribution and has a 14% improvement rate overall.
EntityStreamingSupport makes marshalling of Akka Streams into/from HTTP requests and responses simple. Read more on Source Streaming.
- #20992 - Optimize ByteString operations in Akka HTTP hot-path.
- #21017 - Pre-fuse http server layer.
- #21062 - HTTP: Optimize response rendering and response parsing.
This specific patch release closed 43 tickets with the help of 24 committers.
So what’s next? Spray would rather you not know. Future plans are sounding pretty grim for the tool. With the experimental flag soon to be lifted from Akka HTTP, the Akka team has announced that the end of Spray’s life is just around the corner. RIP in advance, Spray.
A stable version of 2.4.9 will release after the team acquires some community feedback. You can view the full list of changes here: Akka 2.4.9-RC1.
SIP-23 Implementation of literal types #5310
According to the PR, the SIP includes the following:
- Literals can now appear in type position, designating the corresponding singleton type.
- Support for
scala.Symbolliteral types has been added.
ScalaValueOf[T]type class and corresponding
scala.Predef.valueOf[T]operator has been yielding the unique value of types with a single inhabitant.
isInstanceOf / asInstanceOftests/conversions are implemented via equality/identity tests for singleton types.
- Support for
scalaSymbolliteral types has been added.
Related bugs that are fixed by this SIP include:
- SI-1273 - Singleton type has wrong bounds.
- SI-5103 - Singleton types not inferred in all places they should be.
- SI-8323 - Duplicate method name and signature with singleton type parameters over constant types.
- SI-8564 - Methods with ConstantType results get the inhabitant of ConstantType as their body.
The next SIP meeting will be later in August. You can view the ongoing conversation and the rest of SIP-23’s details here: SIP-23 Implementation of literal types #5310
ScalaTest and Scalatic 3.0.0
Bill Venners and the Artima team had a double hitter this week releasing both ScalaTest and Scalatic 3.0.0.
The main feature for both versions is the addition of full support of Scala.js and new async testing stypes.
Enhancements for ScalaTest 3.0.0 include:
- Added type
org.scalatest.compatible.Assertionto serve as the actual type required by test bodies in the new async styles.
- Changed the result type of assertions and matcher expressions from
- Enhanced ScalaTest
allElementsOfsyntax, all of which must follow
- Added implicit parameters of type
Matchers, and other classes that produce error messages.
Enhancements for Scalatic 3.0.0 include:
Listinstead of an
AnyRef. Dropped its inheritence
Positionthat supports capturing of caller’s source code position through macro.
- Positive numeric types, such as
PosFloat, etc., have been added in package
CompileTimeAssertions, which can help you create your own restricted value
CanEqualand made a deprecated type alias for any user code currently referring to
You can view the full list of changes here: ScalaTest and Scalactic 3.0.0
ScalaFiddle Beta Released
ScalaFiddle, the playground for Scala, is now accepting applicants for closed beta!
ScalaFiddle allows you to create and share examples, embed interactive code blocks in documentation, and to visualize algorithms, according to ScalaFiddle.io.
Sign up to join the beta and gain early access to features here: ScalaFiddle beta sign-up
Suggested information to digest this weekend:
The functional programming community has no shortage of excellent conferences, talks, and articles. Here are just a few that were recently released that we recommend checking out if you missed them the first time:
Can Scala have a highly parallel typechecker?:
- Grzegorz Kossakowski
After interviewing with the Facebook Hack team a few months back, Grzegorz Kossakowski ended up with a sizeable crush on their typechecker. He ponders on a bit of theft and suggests that Scala might benefit from stealing a few ideas in order to create it’s own highly parallel and distributed typechecker.
The article is worth a read! Check it out here: Can Scala have a highly parallel typechecker?
- Modernizing Scala
- JVM Language Summit 2016
Jason Zaugg talks about the Scala 2.12 bytecode, trait encoding, Lambda encoding, and invokeddynamic.
Watch the talk here:
- August 5th - 6th
- Concordia University - Montreal, Quebec
- August 16th
- Dexcom - Portland, OR
- September 10-14th
- The Rheged Centre - Cumbria, UK
- September 30th - October 1st
- Palacio de Congresos - Cádiz, Spain