Write a Blog >>
ICFP 2019
Sun 18 - Fri 23 August 2019 Berlin, Germany
Fri 23 Aug 2019 10:30 - 10:53 at Elk - Metadata Chair(s): Ningning Xie

Abstraction is the fundamental concept in programming languages. Modern programming languages have many forms of abstraction and Haskell typically pushes the envelope. We can abstract over types, values, data constructors, runtime representation, and perhaps soon matchability and linearity. However with configuration we seemingly threw in the towel, and just went with the bog-standard C preprocessor (CPP).

What do we mean by configuration? Configuration is the context provided at build time which decides what exactly is compiled. For example, we want to abstract over the current platform, we want to abstract over a specific package version, abstract over a cabal flag, abstract over the size of an integer and so on. A library consumer chooses one configuration of all these parameters in which to build the library.

Configuration by CPP has remained the conventional solution for a long time, and many people are aware of the superficial problems with it: dynamic scoping, lack of hygiene or namespacing, and text-based crudeness but the more insidious problem is scale. The deeper issue is that library authors typically expose a far larger space of configurations than they can ever possibly hope to test.

We can do a lot better. In particular, we now have ideas about not just for the paper cuts, but also to rename and type check all possible configurations. This talk will be an outline about how we plan to solve the configuration problem by introducing language constructs for specifying configuration options. We also hope that by presenting our initial work at HIW that we can elicit feedback from the community about the future direction of the proposal.

Fri 23 Aug

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:30 - 12:00
MetadataHIW at Elk
Chair(s): Ningning Xie The University of Hong Kong
10:30
23m
Talk
Configuration, but without CPP
HIW
Matthew Pickering University of Bristol, John Ericson Obsidian Systems
10:53
23m
Talk
HIE files in GHC 8.8
HIW
Zubin Duggal , Matthew Pickering University of Bristol
11:16
24m
Talk
Tagging Tags: Inferring the presence of pointer tags at compile time.
HIW
11:40
20m
Talk
Lightning talks Slot #1
HIW