Functional Roundup for August 5, 2016
by Maureen Elsberry
- •
- August 05, 2016
- •
- news• akka• scala• scalatest• scalafiddle• functional roundup
- |
- 5 minutes to read.

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
Miles Sabin has announced that SIP-23 is ready for review. The SIP is a continuation of work by Adrianne Moors and George Leontiev.
According to the PR, the SIP includes the following:
- Literals can now appear in type position, designating the corresponding singleton type.
- Support for
scala.Symbol
literal types has been added. - A
ScalaValueOf[T]
type class and correspondingscala.Predef.valueOf[T]
operator has been yielding the unique value of types with a single inhabitant. isInstanceOf / asInstanceOf
tests/conversions are implemented via equality/identity tests for singleton types.- Support for
scalaSymbol
literal 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.Assertion
to serve as the actual type required by test bodies in the new async styles. - Changed the result type of assertions and matcher expressions from
Unit
toAssertion
. - Enhanced ScalaTest
Matchers
withoneElementOf
,noElementsOf
,atLeastOneElementOf
,atMostOneElementOF
,allElementsOf
syntax, all of which must followcontain
. - Added implicit parameters of type
Prettifier
toAssertions
,Matchers
, and other classes that produce error messages.
Enhancements for Scalatic 3.0.0 include:
- Made
Chain
anAnyVal
that wrapsList
instead of anAnyRef
. Dropped its inheritence - Added
Position
that supports capturing of caller’s source code position through macro. - Positive numeric types, such as
PostInt
,PosZInt
,PosFloat
, etc., have been added in packageorg.scalactic.anyvals
along withCompileTimeAssertions
, which can help you create your own restricted valueAnyVal
types. - Renamed
Constraint
toCanEqual
and made a deprecated type alias for any user code currently referring toConstraint
.
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
- Medium.com
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?
Jason Zaugg:
- 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:
Upcoming Events:
- August 5th - 6th
- Concordia University - Montreal, Quebec
- August 16th
- Dexcom - Portland, OR
- September 10-14th
- The Rheged Centre - Cumbria, UK
Typelevel Unconference & Lambda World
- September 30th - October 1st
- Palacio de Congresos - Cádiz, Spain
Have a news tip for us? Tweet to us @47deg or send to us via email here.