Added binary tarballs for ruby dependencies to work around cmake download failures against github (http://cloud.github.com/downloads/jjyg/dfhack/)
Stockpile iterator.

Efficient way to operate on all items stored on a stockpile.
Doesn't currently check whether the items match the stockpile settings,
but does ignore empty containers assigned to the stockpile.
Switching autotrade to use StockpileIterator.

This should speed it up a bit, and prevents it from marking a stream of empty bins.
Convenience method to collect a vector from StockpileIterator.
Adding getStockpileContents to the Lua API.
Canonical way to find the stockpile by id.
Switching stockflow to the internal getStockpileContents.

This should speed it up over checking each space individually, but no longer counts spaces with empty assigned bins and barrels as empty.
Removing dead duplicate code.
Support for global onLoadWorld.init/onUnloadWorld.init scripts
Removed hackwish crash.

It's mostly a user error issue, but it is certainly not one that's hard to come across.
Add a variant of printall() that uses ipairs
Add hotkeys plugin
Documentation updates for the hotkeys plugin.
update exportlegends for DF40.x

Better code and also exports the new maps.  Extending to also export
site maps would be cool eventually.
enable UI plugins, add keybindings

The UI plugins are one of the major reasons for most players to use
dfhack, so they should be enabled by default.   The other additions seem
to be semi-standard keybindings for those functions
(http://redd.it/2fuaaf)
Update NEWS

Add unlisted changes in 0.40.11-r1

Also include NEWS in installation directory
Close file opened in load_patch() on success

Fixes #327
Change search key from 's' to 'q' on unit/job lists

Avoids a conflict with the "suspend job" option (added in 0.40.12)
job_material_category -> dfhack_material_category

Fixes #330 - submitted by @finndibaenn
Add '@' documentation to dfhack.lua