The Snap team is happy to announce the release of version 0.5.5 of the Snap Framework. Here are the changes since 0.5.3:

Bugfixes

The file upload code now uses something better than openBinaryTempFile, which uses a spectacularly dumb algorithm.

We now properly clean up uploaded temporary files when the read end of the socket dies. The root problem is that the enumerator library conceptual model doesn’t allow “bracket” for resources opened by iteratees, since the enumerator can simply choose not to inform the iteratee of an error on the read end. Our current hacky workaround is to use a GC finalizer; we’ll be fixing this properly for Snap 0.7.

Fixed a stupid bug in which activity on the write end of the socket was not extended the timeout as it should. Activity on the write end of the socket also now only extends the timeout instead of potentially shortening it.

We now call withSocketsDo inside snap-server to initialize the network on Windows.

Access to stderr in the logging code is now serialized. When two loggers started up at once, and they both could not open their output file, the error output written to stderr was garbled. Access to stderr is now serialized with a lock.