Skip to content
Snippets Groups Projects
  1. Jun 07, 2015
    • Aria Stewart's avatar
      Fix typo in CONTRIBUTING.md · 24797279
      Aria Stewart authored
      24797279
    • Scott Vokes's avatar
      v0.4.0 release · 496e981b
      Scott Vokes authored
      API Changes:
      
      1. The limits for the window and lookahead size options have changed.
      The minimum lookahead bits option (-l) is now 3 (previously, 2), and the
      maximum is the window bits - 1 (previously, equal to the window bits).
      
      Bug Fixes:
      
      1. There was an edge case in the internal buffering where window bits of
      4 and lookahead bits of 2 could cause up to 3 bytes of data to be lost
      from the end of the bytestream. Thanks to @unixdj for reporting this,
      with detailed notes on how to reproduce it.
      
      2. Using a lookahead bits setting equal to the window bits (e.g. -w 8 -l
      8) could lead to an infinite loop. Aside from fixing the root cause, now
      the lookahead size must be smaller than the window size -- an equal
      lookahead size will always lead to worse compression, and should
      probably have never been a valid setting. Found by @unixdj.
      
      3. A few compiler warnings due to signed/unsigned warnings have been
      resolved.
      
      Other Improvements:
      
      1. The logic for determining whether a pattern substitution is
      worthwhile has been improved, potentially leading to better compression.
      Decoders from earlier releases should have no problems processing the
      output from newer encoders.
      
      2. A benchmarking suite has been added, to measure the impact of changes
      on speed and compression ratios.
      
      3. The encoder and decoder state machines have been streamlined,
      reducing overall complexity. Thanks again to @unixdj, who saw
      opportunities to simplify things while investigating other issues, and
      did most of the work.
      
      4. Notes on example usage and configuration have been added to the README.
      
      5. Initial notes for potential contributors (CONTRIBUTING.md) have been
      added.
      
      6. The theft-based property tests are now exploring the full state space
      of the program. Previously, some of the test cases weren't varying the
      window or lookahead sizes, only the input data. This led to a couple
      bugs (1 and 2 above) going undetected. Now all three are changed, as
      well as the input buffer size for the decoder.
    • Scott Vokes's avatar
      Update copyright years in license. · 9c3afd7b
      Scott Vokes authored
      Three cheers for actively maintained projects.
      9c3afd7b
    • Scott Vokes's avatar
    • Scott Vokes's avatar
      a9ca0cd9
    • Scott Vokes's avatar
      Merge branch 'develop' · de92281f
      Scott Vokes authored
      Conflicts:
      	heatshrink_encoder.c
      
      Merge several PRs and other changes on `develop` over in preparation for
      0.4.0 release.
      
      Closes #16.
      (Addressed directly by 15ebaddc, and indirectly by several other changes.)
      de92281f
    • Scott Vokes's avatar
    • Scott Vokes's avatar
      Initial work on a CONTRIBUTING.md. · 2021b175
      Scott Vokes authored
      Closes #26.
      2021b175
    • Scott Vokes's avatar
    • Vadim Vygonets's avatar
      Process tag bit sooner in decoder · 86699925
      Vadim Vygonets authored
      Fix the bug where last 7 bits are not processed.
      
      Test case:
      $ echo -n aaaa | ./heatshrink -w4 -l2 | ./heatshrink -dw4 -l2 | hexdump -C
      
      expected output:
      00000000  61 61 61 61                                       |aaaa|
      00000004
      
      bug:
      00000000  61                                                |a|
      00000001
      
      Conflicts:
      	heatshrink_decoder.c
      86699925
    • Scott Vokes's avatar
    • Scott Vokes's avatar
      Add compression benchmarking script. · b9541371
      Scott Vokes authored
      Download and cache the Canterbury Corpus, compress files in it with
      various settings, and report on the compression ratios.
      
      Closes #24.
      b9541371
  2. May 31, 2015
  3. May 24, 2015
    • Scott Vokes's avatar
      Merge pull request #15 from unixdj/signed · a01e1e00
      Scott Vokes authored
      Fix signed/unsigned comparison
      a01e1e00
    • Scott Vokes's avatar
      Change MIN_LOOKAHEAD_BITS from 2 to 3 to prevent ambiguity. · 15ebaddc
      Scott Vokes authored
      As reported by @unixdj, there is a case where a few bytes can be
      dropped from the end of the bytestream when used with a window_sz2
      of 4 and lookahead_sz2 of 2 (-w 4 -l 2):
      
          $ echo -n aaaa | ./heatshrink -e -w4 -l2 | ./heatshrink -d -w4 -l2
          a   # should be "aaaa"
      
      While st_check_for_input can treat 7 bits as sufficient input when
      -w is 4 and -l is 2, that creates a corresponding issue where 1
      spillover bit from the previous byte leads to filler of 0b000 0000,
      which is interpreted as a marker to repeat (0b0) from 1 byte back
      (0b0000) for 1 byte (0b00), leading to a duplication of the last
      byte of input. Using a w,l pair where w+l < 7 leads to trailing
      bits that are ambiguous, so raise the minimum lookahead bits to 3.
      
      This problem does not occur with -w 4 -l 3, or any other valid config.
      15ebaddc
    • Scott Vokes's avatar
      Make all theft tests vary window and lookahead size; refactor tests. · 25c18261
      Scott Vokes authored
      This is to ensure the full state space is explored. malloc (and re-use,
      after zeroing) large in-memory buffers for use in the tests, as these
      will not potentially fill the way smaller stack-allocated ones can.
      25c18261
    • Scott Vokes's avatar
      Update to v1.0.0 of greatest. · 553c7332
      Scott Vokes authored
      553c7332
  4. May 14, 2015
  5. May 13, 2015
  6. May 11, 2015
Loading