ndmitchell/shake — pull request #97 by epdtry (2014-02-26 22:30:28+00:00)
Title: fix incorrect serialization of long BinLists

BinLists with more than 254 elements are supposed to be serialized as:
* The byte `255`
* The first 254 elements of the list
* The serialized version of the remainder of the list, from the 255th element onward

They are currently serialized incorrectly as:
* The byte `255`
* *All* elements of the list
* The serialized version of the remainder of the list, from the 255th element onward

The resulting bytestrings can't be deserialized correctly. In particular, I found that the lists of dependencies for some rules were being truncated during deserialization, which broke incremental builds - if a rule made more than 254 calls to `need`, it would not be rebuilt on incremental builds if only dependencies from the 255th and later `need`s were modified.