Simplifying Execution Traces

Date
Tags concurrency, dejafu, haskell, programming, research
Target Audience People interested in the dejafu internals.
Epistemic Status This is describing the current state of a wip branch, which may yet be changed.

Using Hedgehog to Test Déjà Fu

Date
Tags concurrency, dejafu, haskell, hedgehog, programming, property-based testing
Target Audience People interested in dejafu or in property-based testing.
Attention Conservation Notice There is a fairly long preamble before I get to the Hedgehog stuff, which you can jump to directly if you don't really care about how the Déjà Fu side of this works.

100 Prisoners

Date
Tags concurrency, dejafu, haskell, programming
Target Audience Mostly me.
Attention Conservation Notice There's a more polished version of this in my thesis, go read that instead.

Writing a Concurrency Testing Library (Part 2): Exceptions

Date
Tags concurrency, dejafu, haskell, minifu, programming
Target Audience Haskell programmers.
Epistemic Status This is building up to a simplified form of dejafu, which is based on published research.
Attention Conservation Notice Still no fancy testing.

Writing a Concurrency Testing Library (Part 1)

Date
Tags concurrency, dejafu, haskell, minifu, programming
Target Audience Haskell programmers.
Epistemic Status This is building up to a simplified form of dejafu, which is based on published research.
Attention Conservation Notice This is setting up the basic types and functions we'll need, no fancy testing in this post.

A Multithreaded Runtime for Deja Fu

Date
Tags concurrency, dejafu, haskell, programming, research
Target Audience People interested in the dejafu internals.
Epistemic Status This isn't actually the implementation dejafu uses now, but it's close enough (and simple enough) to help understanding.

irc-client-1.0.0.0

Date
Tags haskell, irc-client, programming, release notes
Target Audience Haskell programmers.
Attention Conservation Notice irc-client is a Haskell library for writing, you guessed it, IRC clients.

Improving Performance by Discarding Traces

Date
Tags dejafu, haskell, programming, release notes
Target Audience Haskell programmers.

Property-testing Side Effects

Date
Tags coco, dejafu, haskell, programming
Target Audience Haskell programmers.
Attention Conservation Notice dejafu-0.7.0.0 can check if a concurrent program is equivalent to or a refinement of another, using observational equivalence of side-effects.

Haskell Style Guide

Date
Tags haskell, programming
Target Audience Haskell programmers.
Epistemic Status Totally unsubstantiated opinions.

Implementing Polymorphism

Date
Tags coco, haskell, programming, research, type checking
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

Blub Crisis

Date
Tags programming
Target Audience Not you

Mixing and Matching Variables

Date
Tags coco, haskell, programming, research
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

Generating Typed Expressions

Date
Tags coco, code generation, haskell, programming, research
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

Representation & Evaluation of Typed Expressions

Date
Tags coco, programming, research
Target Audience Haskell programmers.
Epistemic Status I wrote this memo to work out how to implement CoCo. So this all works and is, mostly, still implemented like this.

NixOS, GHCi, and Mueval

Date
Tags haskell, howto, nixos, programming, tech
Target Audience The intersection of NixOS and Haskell users.
Epistemic Status Was accurate and true at one point, but NixOS does like to change how things are done...

C is not Turing-complete

Date
Tags c, programming, semantics
Target Audience C programmers & language lawyers.
Epistemic Status Based on my interpretation of the C11 spec.
Attention Conservation Notice Because of how pointers are defined in the C standard, an isolated C program is equivalent in computational power to a pushdown automata.

Three Months of Go (from a Haskeller's perspective)

Date
Tags haskell, go, programming
Target Audience Haskell programmers & Go programmers.
Attention Conservation Notice This is mostly just an opinionated rant.

Systematic Concurrency Testing and Daemon Threads

Date
Tags concurrency, programming, research
Target Audience Mostly me, & possibly concurrency testing nerds.
Epistemic Status I guess it's possible I've misunderstood every paper on concurrency testing I've read and they actually do address this topic.
Attention Conservation Notice There's a subtlety in partial-order techniques when daemon threads are involved which has caught me out a couple of times.

Strict-by-default vs Lazy-by-default

Date
Tags haskell, programming
Target Audience Haskell programmers.
Attention Conservation Notice In every discussion of Haskell, the issue of strict vs lazy evaluation comes up. I think laziness is the better default.

Concurrency and Typeclass Laws

Date
Tags dejafu, haskell, programming, semantics
Target Audience Haskell programmers.
Attention Conservation Notice By calling dejafu from within a property test, we can check laws of classes which do concurrency.

dejafu-0.1.0.0

Date
Tags dejafu, haskell, programming, release notes
Target Audience Haskell programmers.
Attention Conservation Notice dejafu is a Haskell library for testing concurrent programs.

Reducing Combinatorial Explosion

Date
Tags concurrency, programming, research
Target Audience Mostly me, & possibly concurrency testing nerds.
Epistemic Status Summarises existing research.