mozilla/rust — pull request #4794 by olsonjeffery (2013-02-04 22:45:51+00:00)
Title: Libuv update

Want to get this on the radar and moving forward. I'm having build issues in mingw32, so I'll probably be troubleshooting from afar on that front.

This work mostly involves:
- Updating the libuv submodule (which, in the scope of this pull req, is pointing at olsonjeffery/libuv, pending a merge into master from graydon (which is, itself, tricky)) with the last 9 months or so of changes from them (refcount refactor and numerous other codebase cleanups)
- Retooling the build process a bit, doing away with a bunch of gnarly scripting and, for the most part, just using libuv's own Makefile, which is great
- Minor updates to the API to account for the loss of `uv_refcount`, we now just do a check for any live handles during the weak task exit check in `iotask`, and barf if we encounter any lives tasks
- Adjustment to the various libuv structs, whose size changed in the intervening time

Note on the last bullet: I want to turn another another patch, soon, to change the mechanism of libuv struct mapping to be dynamic and based off of malloc'd data wrapped in a rust wrapper to alleviate the headache of maintaining these structs across multiple platforms, as the libuv API exports stuff designed specifically for this purpose. The usual weighing of benefits/tradeoffs ensues.