Haskell Weekly

Newsletter

Issue 455 2025-01-16

Subscribe now! We'll never send you spam. You can also follow our feed. Read more issues in the archives.

Welcome to another issue of Haskell Weekly! Haskell is a safe, purely functional programming language with a fast, concurrent runtime. This is a weekly summary of what’s going on in its community.

Featured

  • Hell (Haskell shell): Year in Review by Chris Done

    Hell is my little shell scripting language which is a thin layer over Haskell, using its syntax, its standard library and runtime, with a simpler static type system. Over the year of 2024, I’ve written a few non-trivial shell scripts in Hell at work, and now a few colleagues have used it, too. Now I can use that to evaluate strengths and weaknesses of it as a tool. I can’t really share those shell scripts because it’s not open source, but I’ll drop in some contrived example code at the start of each heading as an amuse-bouche.

  • Read the Code, Not the Profile by Sandy Maguire

    At work a few weeks back, I found myself digging into profile reports, trying to determine why our program was running so slowly. Despite having the extremely obvious-in-retrospect data in front of me, I wasted a lot of time speeding up code that turned out to not move the needle at all. Although perhaps it will be interesting only to future me, I thought it would be a good exercise to write up the experience—if only so I learn the lesson about how to read profiles and not make the same mistake again.

  • Some thoughts on GHC’s SIMD primitives by Mizuki

    The use of parallelization is essential to exploit the performance of modern computers. In particular, we want to take advantage of SIMD, multi-core, and GPUs. This article will focus on SIMD — single instruction, multiple data.

  • The Haskell Unfolder Episode 38: tasting and testing CUDA (map, fold, scan) by Andres Löh, Edsko de Vries

    CUDA is an extension of C for programming NVIDIA GPUs. In this episode of the Haskell Unfolder we show how to set up a CUDA library so that we can link to it from a Haskell application, how we can call CUDA functions from Haskell, and how we can use QuickCheck to find subtle bugs in our CUDA code. On the CUDA side, we show how to implement simple concurrent versions of map, fold and scan. No familiarity with CUDA will be assumed, but of course we will only be able to give a taste of CUDA programming.

Jobs

  • Research Software Engineer at Epic by Simon Peyton Jones

    The Verse research group at Epic Games, of which I am a member, is looking for a research software engineer to join the team.

In brief

  • Correctness issue in GHC-9.12 by Andreas Klebinger

    Today a bug in 9.12.1 was reported and confirmed (#25653) which can lead to incorrect runtime results in compiled programs. We plan to release a bug fix release 9.12.2 in the near future to address this issue and recommend people do not upgrade until then.

  • Dropping ARMv7 support in GHCup by Julian Ospald

  • Fourmolu 0.17.0.0 released! by Brandon Chinn

    Fourmolu 0.17.0.0 has been released, with lots of new options + some bug fixes.

  • Is servant the go-to for quick, simple web projects (for beginners)? by Far_Contribution4347

    I’m not a very advanced haskell user, but I would like to build a simple web project with haskell (partly for learning and partly to automate some day-to-day stuff with a nicer interface, so it needs to actually be useful and maintainable and quick-to-build).

Show & tell

Call for participation

  • Lambda Days, 12-13 June 2025, Kraków | Poland

    We’ve opened Call for Talks for the next edition of Lambda Days, with Philip Wadler and John Hughes in our Programme Committee. Our event is one of the biggest functional programming conferences in Europe with 2 days packed with inspiring talks, networking opportunities, and, of course, some fun().

    Details: 12-13 June 2025 Kraków (Poland), in person only.

    Call for Talks deadline: 9 Feb

    Ticket sale starts: 14 Feb

    Special rate for Waiting List Subscribers: yes

    Confirmed speakers:

    Keynote: Martin Odersky

    Keynote: Evan Czaplicki

  • persistent: Expose utilities in Database.Persist.TH

  • streamly: Rename Array.fold to foldM