Past Meetup

Joachim Breitner: A Promise Checked is a Promise Kept: Inspection Testing

This Meetup is past

32 people went

Location image of event venue

Details

Joachim Breitner will give a talk about inspection testing.

Abstract:

Some high-quality Haskell libraries, including old friends like `text`
and new kinds on the block like `generic-lens`, promise that the
abstractions provided by these libraries are actually free and will be
completely dissolved by the compiler. In the case of `text` the promise
is that certain pipelines of text-processing functions will be
optimizes (“fused”) to never allocate a full text value; `generic-lens`
promises that its generically derived lenses are, after optimization,
identical to handwritten ones.

But, in practice, these promises often don’t hold. They held at some
point in the past, when the author checked them manually, but later
versions regressed.

This problem can be fixed with `inspection-testing`, a Haskell library
and plugin to the compiler that allows you to explicitly state what you
expect from the compilers optimizations, and have the compiler check
that it actually happens. This can be used by library authors to test
their promises, but also by users to learn more about what the compiler
does with their code.

In this talk, you will discover the tale of broken promises in commonly
used Haskell libraries, and you will learn how these promises can be
checked automatically using` inspection-testing`.

---

The building is right across the street from the Sunnyvale Caltrain station.

We will have someone in the lobby to let you in until about 7:00. After, 7:00 please leave a comment here, or text[masked] and we can send someone to let you in.

Please note that there is free 3hr street and garage available parking near the building. However, you can NOT park where there are gates and/or ticket machines controlling access to the garages.

If you park in the garage (or walk through the garage), you can take the garage elevator to the 1st floor of building 100 and then take the building elevators to the 2nd floor. (The garage elevators will be open late, you can also get into the building this way if you can't get a hold of one of us.)