[Haskell-cafe] ANN: HaskellTorrent/Combinatorrent v0.2.0

Goodbye HaskellTorrent, hello Combinatorrent! Due to the internationally acclaimed Boing!'er Shae Erisson, HaskellTorrent has been renamed into Combinatorrent. We thus present Combinatorrent v0.2, Easter eggs release. This release marks yet another milestone in getting a decent bittorrent client for Haskell. There are still some performance regressions to be eliminated, but overall it looks far better than in the v0.1.1 release. Also, the system leaks memory, albeit very slowly (or so sayeth the great heap profiler). This is the focus for the next version. We might also look into integrating the FAST extension, since it plugs a series of problematic spots in the original bittorrent protocol specification. If you want to hack on Combinatorrent, there are a lot of interesting things to do. I try, deliberately, to keep tasks around which can be used to gain foothold in the source code. Any level of skill is needed and I am happy to help a newbie if he or she gets stuck on something. The source code is at http://github.com/jlouis/combinatorrent should you want to tinker with it. Any kind of patch is welcome, be it fixes or improvements to the goat teleporter. So come help us avoiding success! Apart from numerous small optimizations and bug fixes, we can present the following big whats-new thingies (with an imaginary neon-red blinking what's new sign): NEW STUFF: * Directory Watching: Every 5 seconds, we wake up to check a directory for new torrents. A .torrent file dropped into the directory will subsequently be downloaded automatically. * Support multiple torrents at once: If given multiple torrents on the command-line the client will now download all of them. * Download rarest piece first: Use the psqueue package for getting access to a priority search queue and use it to maintain a histogram over rare pieces. Always try to get the rarest piece first. * Change all use of CML to STM: Overall, it looks like this change improved the code. There are still some need for cleanup after the bomb was thrown, but it does look like it will turn out positively. If CML put you off the track for hacking on Combinatorrent, you can now do it with STM! * Introduce RTS benchmarks: See http://jlouis.github.com/combinatorrent where we plot SVG-based sparklines for various key RTS parameters over time (works best in Opera or Chrome). A slow-changing regression has a much harder time hiding now. * Fix issue #3: A grave bug in the Piece Manager made the assertions fail when endgaming. Fix. -- J.