FP Complete

async exceptions, STM, and deadlocks

For a change of pace, I wanted to cover a simple topic: asynchronous exceptions, and how they interact with Software Transactional Memory and MVars, as well as the GHC runtime system’s deadlock detection. As fate would have it, the topics in question occurred twice in the past month, once in a bug report against the […]

weigh: Measuring allocations in Haskell

Work motivation While working for various clients that needed fast binary serialization, we had discovered that the binary and cereal packages are both inefficient and so we created the store package. In the high-frequency trading sector, we had to decode and encode a binary protocol into Haskell data structures for analysis. During this process it […]

Moving Stackage Nightly to GHC 8.0

As Dan Burton recently announced, the Stackage Curators team has decided to cut an LTS 6 release based on GHC 7.10.3, and to switch Stackage Nightly over to GHC 8.0. I’ve pushed the relevant changes into the necessary repos, and now the most recent Stackage Nightly release is based on GHC 8.0. A GHC upgrade […]

store: a new and efficient binary serialization library

A couple months ago, Michael Snoyman wrote a blogpost describing an experiment in an efficient implementation of binary serialization. Since then, we’ve developed this approach into a new package for efficient serialization of Haskell datatypes. I’m happy to announce that today we are putting out the initial release of our new new store package! The […]

Stack Security GnuPG Keys

Introduction We are introducing a method of verifying Haskell packages with OpenPGP signatures. The initial code to sign your packages has been included in Stack as an experimental feature for some time. We are going to be improving it and included verification options soon. However, we need signatures from package authors before verification is useful. […]

The Stackage data flow

I recently wrote up the Stackage data flow. The primary intent was to assist the rest of the Stackage curation team see how all the pieces fit together. However, it may also be of general interest to the rest of the community. In particular, some of the components used are not widely known and may […]

Efficient binary serialization

We do a lot of work at FP Complete in the realm of multi-machine computing for our customers. One of the things we need to do efficiently to get good speedups from adding more machines is optimizing serialization. Since our multi-machine work often revolves around scientific and mathematical computing, we primarily need to make sure […]

Testing GHC with Stackage

For the past few release of GHC (I think 7.10.2 and 7.10.3), I’ve tried to help out with the testing effort by using Stackage Nightly as a “stress test.” Stackage Nightly provides a large (1810 at last count) collection of real-world Haskell packages to test compatibility. For minor version upgrades of GHC, this stress test […]

Updated Haskell Travis config

The Stack build tool guide contains a section on Travis configuration with a sample configuration based on Stack. After iterating through a few different designs over multiple projects, I’ve just pushed a significant update to the configuration. The configuration itself includes inline comments to explain what it’s doing and how it can be extended, so […]

Status of School of Haskell 2.0

Status of School of Haskell 2.0 Earlier this year, I wrote a blogpost about our plans for the next version of the School of Haskell. SoH is a community service and project to make it possible to use interactive snippets of Haskell on any website, in particular on schoolofhaskell.com. Today, we are open sourcing the […]