ANN: deepseq-bounded, seqaid, leaky

Andrew Seniuk rasfar at gmail.com
Fri Dec 19 13:07:33 UTC 2014


This trio of related packages explores strictness control in a variety of
ways.

deepseq-bounded provides classes and generic functions to artificially
force evaluation, to extents controlled by static or dynamic configuration.

seqaid puts that into practise, providing a GHC plugin to auto-instrument
your package with a strictness harness, which is dynamically optimisable
during runtime.  This is supported directly in the GHC compilation
pipeline, without requiring (or performing!) any edits to your sources.

leaky is a minimal, prototypic executable that leaks space under current
state-of-the-art compilation (GHC 7.8.3 -O2, at the present time).

deepseq-bounded
  hackage: https://hackage.haskell.org/package/deepseq-bounded
  homepage: http://www.fremissant.net/deepseq-bounded

seqaid
  hackage: https://hackage.haskell.org/package/seqaid
  homepage: http://www.fremissant.net/seqaid

leaky
  hackage: https://hackage.haskell.org/package/leaky
  homepage: http://www.fremissant.net/leaky

Reddit discussion for the three together:

http://www.reddit.com/r/haskell/comments/2ps8f5/ann_deepseqbounded_seqaid_leaky/

Easiest way to try them all, is to install seqaid and run the demo:

  cabal install seqaid
  seqaid demo

This tests seqaid on a local copy of the leaky source package.

It turned out to be routine to extend deepseq-bounded and seqaid to
dynamically configurable parallelisation (paraid?).  Many other wrappers
could be explored, too!  Maybe seqaid should be renamed to koolaid or
something...

It's a pretty complicated system, and just first release, so there's bound
to be lots of problems.  I've not set up a bug tracker, but will maintain a
casual list of bugs and feature requests at

  http://www.fremissant.net/seqaid/trac

and will set up a proper tracker if there's interest.

Any isssues (or comments), I'm here, or on the reddit discussion (or email).

Andrew Seniuk
rasfar on #haskell
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20141219/96177b27/attachment.html>


More information about the ghc-devs mailing list