28 May 2024 to 1 June 2024
University of Ottawa
EST timezone

Improving Haskell Development Experience on FreeBSD

Not scheduled
1h
Desmarais Building (DMS) (University of Ottawa)

Desmarais Building (DMS)

University of Ottawa

55 Laurier Ave E. Ottawa, ON, K1N 6N5
Lecture 50 min Development Talks: Room 1120 - Saturday

Speaker

Daniel Lovasko

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.

Primary author

Presentation materials

There are no materials yet.