This project is mirrored from https://github.com/kolmodin/binary. Pull mirroring updated .
  1. 12 Nov, 2015 2 commits
  2. 11 Nov, 2015 5 commits
  3. 29 Oct, 2015 2 commits
  4. 23 Oct, 2015 1 commit
    • Brian McKenna's avatar
      Add Binary Void instance · 57cf1f04
      Brian McKenna authored
      This is so that we can write and read things like [Void], or (Expr Void)
      - something I'm actually doing in Morte.
      
      https://github.com/Gabriel439/Haskell-Morte-Library/pull/26
      
      The reader always fails if you actually try to get an instance of it.
      Trying to access a void value should not happen for well-formed
      instances, for example:
      
          *Data.Binary Data.Void> decode $ encode ([] :: [Void]) :: [Void]
          []
      57cf1f04
  5. 06 Oct, 2015 1 commit
  6. 02 Oct, 2015 1 commit
  7. 28 Sep, 2015 1 commit
    • basvandijk's avatar
      Optimize roll by using foldl' instead of foldr · 1f643cbc
      basvandijk authored
      The "roll" benchmarks in the get executable show the difference:
      
        get roll
        benchmarking roll/foldr
        time                 547.4 ms   (537.8 ms .. 553.5 ms)
                             1.000 R²   (1.000 R² .. 1.000 R²)
        mean                 549.4 ms   (547.2 ms .. 550.4 ms)
        std dev              1.857 ms   (0.0 s .. 1.896 ms)
        variance introduced by outliers: 19% (moderately inflated)
      
        benchmarking roll/foldl'
        time                 434.7 ms   (426.4 ms .. 443.1 ms)
                             1.000 R²   (1.000 R² .. 1.000 R²)
        mean                 433.7 ms   (432.3 ms .. 434.7 ms)
        std dev              1.472 ms   (0.0 s .. 1.696 ms)
        variance introduced by outliers: 19% (moderately inflated)
      
      The "Integer/decode" benchmark shows the actual decoding speed.
      First the old implementation based on foldr:
      
        get Integer/decode
        benchmarking Integer/decode
        time                 552.9 ms   (540.2 ms .. 569.3 ms)
                             1.000 R²   (1.000 R² .. 1.000 R²)
        mean                 558.2 ms   (556.1 ms .. 559.3 ms)
        std dev              1.824 ms   (0.0 s .. 1.906 ms)
        variance introduced by outliers: 19% (moderately inflated)
      
      The new implementation based on foldl':
      
        get Integer/decode
        benchmarking Integer/decode
        time                 457.5 ms   (406.2 ms .. 505.6 ms)
                             0.998 R²   (0.994 R² .. 1.000 R²)
        mean                 455.9 ms   (448.3 ms .. 462.3 ms)
        std dev              10.11 ms   (0.0 s .. 11.02 ms)
        variance introduced by outliers: 19% (moderately inflated)
      1f643cbc
  8. 14 Aug, 2015 5 commits
  9. 13 Aug, 2015 3 commits
    • Lennart Kolmodin's avatar
      Add new deps to .travis.yml file. · 160246b8
      Lennart Kolmodin authored
      Due to the dependency cycle we need to manually preinstall all deps
      before we attempt to configure/build binary.
      160246b8
    • Lennart Kolmodin's avatar
      Add benchmark for Generic generated Binary instances. · 6ab893a8
      Lennart Kolmodin authored
      We use Cabal's PackageDescription as the type to serialize. It is large,
      has many levels of data types, and also uses enums and strings. It's a
      good stress test.
      
      GenericsBench defines criterion benchmarks for serialization and
      deserialization.
      
      In GenericsBenchTypes we derive the Binary instances. PackageDescription
      already defines Binary instances for the system installed Binary, but
      naturally this won't work for the benchmark - we need our own instances
      that are derived from the code in this library.
      
      The data to serialize we get from your
      .cabal/package/hackage.haskell.org/ directory, it's data from hackage,
      not autogenerated.
      GenericsBenchCache makes sure that if we rerun the benchmark we will use
      the same PackageDescriptions, even if the user has executed
      'cabal update' since the last benchmark run.
      6ab893a8
    • Lennart Kolmodin's avatar
      Compile benchmark get with -Wall. · b72bd25c
      Lennart Kolmodin authored
      b72bd25c
  10. 09 Aug, 2015 3 commits
  11. 30 Jul, 2015 3 commits
  12. 29 Jul, 2015 3 commits
  13. 28 Jul, 2015 1 commit
  14. 27 Jul, 2015 1 commit
  15. 08 Jul, 2015 1 commit
  16. 08 Jun, 2015 1 commit
  17. 06 Jun, 2015 2 commits
  18. 03 Jun, 2015 4 commits