MLabs Publications

The many minds at MLabs present news, case studies, editorials, tutorials, whitepapers, Cardano Catalyst proposals, and more.

Haskell, Optimisations Koz Ross Haskell, Optimisations Koz Ross

Fast Findings with SWAR and the FFI: The Good, the Bad, and the Inefficient

In this post, we compare three ways to find the first matching byte in an ASCII sequence—naive loops, SWAR (SIMD Within A Register) techniques, and the C memchr via Haskell’s FFI. You’ll learn how each performs in real benchmarks, where FFI can deliver 50× speedups, and why overhead can erase those gains in certain workloads.

Read More
Haskell, Optimisations Koz Ross Haskell, Optimisations Koz Ross

The 'A' is for 'Accelerated': Checking ASCII with SWAR

In this post, discover how to push Haskell’s performance boundaries by using SWAR (“SIMD Within A Register”) techniques to validate ASCII data in bulk. You’ll see how packing bytes into registers—using bit masking to flag non-ASCII values in parallel—and unrolling loops to leverage the CPU’s superscalar engine both drive down overhead. By the end, we'll transfer a simple foldl'-based ASCII detecting function into a version running 10x faster.

Read More