Speaker
Description
Haskell is a pure functional language with a mature production-ready implementation GHC. Unfortunately, its ties with FreeBSD are dwindling: the ghcup
project no longer explicitly supports FreeBSD, and FreeBSD has removed all Haskell libraries from ports. To illustrate further, the system library effort is largely split between many packages, each showing a different stage of abandonment or mutually exclusive dependency requirements.
This talk introduces two key contributions, aimed at reinvigorating the developer experience. The first is a FreeBSD-specific GHC-specific library covering the syscalls interface and explicitly supporting FreeBSD extensions, allowing users to utilize the full potential of the kernel in a single package (kqueue, dtrace, sysctl, various TCP extensions, etc.). To demonstrate the library in terms of usability and performance, a set of benchmarks and examples is included.
Secondly, a package repository containing developer tools, as well as a selected subset of libraries, is introduced to mitigate potential dependency issues within the upstream Haskell ecosystem. Additionally, the GHC implementation is split between multiple packages, lowering the entry barrier to installation from the current ~2GB package. Manual pages for the selected libraries enable C-like development process and stray from the common Haskell ecosystem.
The overall aim is to spark interest in developing for FreeBSD using Haskell even in production and making FreeBSD a great full-featured choice for a new Haskell developer.