Bugs fixed: - gzip thread was probably insufficiently lazy; either way the new testsuite explicitly tests for this now - if the enumerator threw an error, the gzip handler would hang; fixed.
… for you) to fix broken tests
What we used to do to enable debug logging is this: give the "-f debug" flag to cabal when installing snap-core, which used the C preprocessor to select a compile-time implementation for the "debug" function. What we're doing now instead is using "unsafePerformIO" to test the "DEBUG" environment variable the first time you call the debug function; subsequent calls to "debug" will re-use the fully-evaluated thunk, so you shouldn't pay a performance penalty if debug logging is turned off. We do pay a slight penalty because we can no longer inline calls to "debug", so debug overhead when debugging is off goes from a no-op to a call into a function pointer; benchmarks say the price to pay is slight and the productivity gains are enormous: set "DEBUG=1" when you invoke your server to get debugging output without recompiling the entire snap library stack.
… request body enumerator or not This reverts commit 9cd871e.
…e request body enumerator or not" This reverts commit 2b9c9ec.
…t body enumerator or not
…ts away the 'forall'
…en to the project cabal file.