Newsletter
Issue 447 2024-11-21
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
-
Competitive Programming in Haskell: Union-Find, part II by Brent Yorgey
In my previous post I explained how to implement a reasonably efficient union-find data structure in Haskell, and challenged you to solve a couple Kattis problems. In this post, I will (1) touch on a few generalizations brought up in the comments of my last post, (2) go over my solutions to the two challenge problems, and (3) briefly discuss generalizing the second problem’s solution to finding max-edge decompositions of weighted trees.
-
Episode 58 – ICFP 2024 by The Haskell Interlude
In this episode, Matti and Sam traveled to the International Conference on Functional Programming (ICFP 2024) in Milan, Italy, and recorded snippets with various participants, including keynote speakers, Haskell legends, and organizers.
-
GHC 9.12.1-alpha3 is now available by Zubin Duggal
The GHC developers are very pleased to announce the availability of the third alpha release of GHC 9.12.1.
-
Labeling threads in Haskell by Kazu Yamamoto
GHC 9.6 provides a function to list up the current threads finally. The function is
listThreads
exported from theGHC.Conc.Sync
module.listThreads
is a killer debug method for thread leaks. -
The Haskell inlining and specialization FAQ by Gabriella Gonzalez
This is an FAQ answering the most common questions people ask me related to inlining and specialization. I’ve also structured it as a blog post that you can read from top to bottom.
-
The Haskell Unfolder Episode 36: concurrency and the FFI by Andres Löh, Edsko de Vries
There are two primary ways to import C functions in Haskell: “unsafe” and “safe”. We will first briefly recap what this means: unsafe functions are fast but cannot call back into Haskell, safe functions are much slower but can. As we will see in this episode, however, there are many more differences between unsafe and safe functions, especially in a concurrent setting. In particular, safe functions are not always safer!
-
Truly Optimal Evaluation with Unordered Superpositions by Victor Taelin
In this post, I’ll address two subjects: “How to solve HVM’s quadratic slowdown compared to GHC in some cases”, “Why that is relevant to logic programming, unification, and program search”.
Jobs
Trying to hire a Haskell developer? You should advertise with us!
In brief
-
How to run Haskell source files like shell scripts by Shae Erisson
I have a Haskell source file, I want to set the executable bit and run it like a shell script.
-
If we could do it all over again, could pure be a method of the Functor typeclass? by Hécate Moonlight
I wonder if
pure
couldn’t have been a method ofFunctor
. It seems trivial enough thatFunctor
could sport it. Of course I understand that it’s not quite doable in Haskell today, but for a new language, are there issues that I’m unaware of? -
NSF Pathways to Enable Open Source Ecosystems by José Manuel Calderón Trilla
In a different topic we had a question from @tmcgilchrist about what exactly we proposed to the NSF POSE program. This is a fair question!
Show & tell
- A new ghcid plugin for neovim by jecaro
Here is a small plugin for neovim users who use either ghcid or ghciwatch for their compilation loop. This is something I had in my dotfiles for a long time. I thought it could be useful for other people.