TechEmpower/FrameworkBenchmarks — pull request #104 by brendanhay (2013-04-06 15:25:22+00:00)
Title: Haskell/Snap: Fix installation procedure and replace json/HDBC with aeson/mysql-simple

This PR makes a couple of modifications to the Snap benchmark:

* Removes the `cabal` handwaving from `installer.py` (it had a typo in it anyway) and relies on `cabal install` to correctly install dependencies specified in `snap/bench/snap.cabal` and build the resulting binary via `snap/bench/setup.py`.
* Replaces `json` and `HDBC` dependencies with `aeson` and `mysql-simple` respectively.

The reasoning for the switch is primarily because of performance and is also an attempt to more accurately reflect what is considered 'the norm' with respect to dependencies.

> `json` uses `parsec3` internally - a String based parser, as opposed to `aeson` using `attoparsec` which is an incremental ByteString based parser.

> The `*-simple` class of database libraries for MySQL, PostgreSQL, etc. have better performance than `HDBC`.