FP Complete

Haskell Library Audit Reports

Since December, FP Complete has been working with Cardano Foundation on an audit of the Cardano settlement layer. The audit work is ongoing, with the currently released reports available on Cardano’s website. The primary codebase we have been reviewing, cardano-sl, depends on many packages from the Haskell ecosystem. As a result, a significant portion of […]

Pantry, part 3: Specifying Dependencies

This is part three of a series of blog posts on Pantry, a new storage and download system for Haskell packages. You can see part 1 and part 2. What’s wrong with this stack.yaml file? resolver: lts-12.0 Not sure? OK, try this: resolver: lts-12.0 extra-deps: – acme-missiles-0.3 Well, that one is a bit easier to […]

Streaming UTF-8 in Haskell and Rust

Since I seem to be a one-trick pony, I decided to write yet again to compare streaming data in Haskell and Rust. This was inspired by a cool post I saw on Reddit about converting characters in the Latin alphabet into look-alikes in the Cyrilic alphabet. When reviewing the original code, I noticed that it […]

Pantry, part 2: Trees and keys

This is part two of a series of blog posts on Pantry, a new storage and download system for Haskell packages. You can see part 1. In March of last year, there was a bug on Hackage that went something like this: Author uploads a package tarball, let’s call it foo-1.2.3.tar.gz, at 5:00am. Both the […]

Pantry, part 1: The Package Index

Back in January, I published a two part blog post on hash-based package downloads. Some project needs at FP Complete have pushed this to the forefront recently, and as a result I’ve gotten started on implementing these ideas. I’m hoping to publish regular blog posts on the topic as I continue implementation. There are a […]

Sed: a debugging story

This blog post is a semi-complete retelling of my debugging adventures on a particularly crazy bug. Consider it a combination of fun story telling for the audience and catharsis for myself. This affects anyone trying to use AppVeyor and Stack for projects that use the network package with GHC 8.4 and up. If you want […]

Hackathon Review and Stack Maintenance

Last Wednesday (June 6, 2018), I ran a Haskell Hackathon after LambdaConf. The turnout certainly wasn’t the same as Zurihac, but I was quite happy with the crowd, the participation, and the interactions. I wanted to share a bit of how we ran this hackathon, why I liked it so much, some ideas that got […]

Practical Property Testing in Haskell

We aired our second webinar in our ongoing series on Wednesday, May 9th. The topic was “Practical Property Testing in Haskell.” This webinar is one in our continuing series covering topics in Haskell Programming, DevOps, Cloud Computing, Cryptocurrencies, FinTech, Medical Device Software, DataOps, and all the other great things we do. If you want to be […]

Pinpointing deadlocks in Haskell

Concurrent programming is hard! I still remember the moment of my introduction to multi-threaded programming at the University of New Mexico, our professor grabbed his head and said: “Here be demons!”. There are all sorts of issues that arise in a concurrent setup, such as race conditions, starvation, deadlocks, data corruption, you name it. All […]

A new Haskell library for talking to ODBC databases

I’m pleased to announce the release of a Haskell library for connecting to SQL Server databases via ODBC. Features The library is very simple, but what it does support should be high quality: Correct Unicode handling. All text is handled through the Text type. The test suite randomly generates Unicode to send to the server […]