binary
binary copied to clipboard
Efficient, pure binary serialisation using ByteStrings in Haskell.
Brought up [here](https://cardano.org/wp-content/uploads/2018/08/report.pdf#%5B%7B%22num%22%3A12%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C62.692913386%2C597.699302373%2C0%5D). Check that the keys of `Set`/`Map`/`IntSet`/`IntMap` really are ascending when deserializing. **This requires adding an extra `Ord` constraint to the `Set` and `Map` instances**. If the keys...
Previously, `TypeRep (a -> b)` could only be deserialized if `a` and `b` both had kind `*`. Change that to allow any kinds of the form `TYPE rep`. Fixes #140
Hi, I've just run into the following situation, while trying to figure out why cross compiling template haskell to raspberry pi doesn't work anymore. I believe it used to work...
Deserialized `TypeRep`s don't share any structure with each other, which can potentially waste a lot of space. For example, if I fill a giant `Set` with deserialized `Dynamic` values, the...
We can't currently deserialize arrow types `p -> q` when `p` or `q` have non-`*` kinds. See https://phabricator.haskell.org/D4137
``` .hs instance Binary (Proxy a) where put _ = put () get = (get :: Get ()) $> Proxy ``` or some such. "base:Data.Proxy - Since: 4.7.0.0"
Turned out it's easy to fix the slow `runGetIncremental` problem: just provide an initial chunk, so that a small getter will return `Done` quickly. The `noMeansNo` and extra `Decoder` still...
After some profiling, i came to the conclusion that current running logic is too complex, in order to support `bytesRead`, we have two `Decoder` type, the overhead of `runGetIncremental` is...
I heard on IRC that this should never be the case, so I provided a benchmarked counterexample https://github.com/ghorn/binary-counterexample stats here: http://ghorn.github.io/binary-counterexample/