| 1 |
root |
1.53 |
|
| 2 |
root |
1.55 |
TODO: try unaligned copy again in decompressor |
| 3 |
|
|
TODO: allow size-optimised binaries by avoiding unrolling |
| 4 |
root |
1.57 |
TODO: implement lzf_c_best in lzf. |
| 5 |
root |
1.59 |
|
| 6 |
|
|
3.8 (unreleased) |
| 7 |
|
|
- support a state arg for lzf_c_best. |
| 8 |
root |
1.55 |
|
| 9 |
root |
1.58 |
3.7 (unreleased) |
| 10 |
|
|
- add lzf_c_best.c, a slower but better compressor. |
| 11 |
root |
1.54 |
- switch to a multiplicative hash (developed with Steinar Gunderson), |
| 12 |
|
|
which is faster on modern cpus and compresses a bit better. The old |
| 13 |
|
|
hash function which uses only shifts is still available. |
| 14 |
|
|
- allow user configurable hash table slots, which makes it possible |
| 15 |
|
|
to use e.g. 16 bit offsets for a smaller hashtable (if your data is |
| 16 |
|
|
always < 64kb). |
| 17 |
root |
1.53 |
- use _WIN32, not WIN32, when testing for windows (fails with bcc), |
| 18 |
|
|
patch by Tamas Tevesz. |
| 19 |
root |
1.57 |
- try to port to win64+gcc, which is non-posix but doesn't have _int64 |
| 20 |
root |
1.56 |
(reported by Maciej Adamczyk). |
| 21 |
root |
1.53 |
|
| 22 |
root |
1.52 |
3.6 Mon Feb 7 17:37:31 CET 2011 |
| 23 |
root |
1.47 |
- fixed hash calculation in C♯ version (Tiago Freitas Leal). |
| 24 |
root |
1.48 |
- unroll copy for small sizes, use memcpy for larger sizes, |
| 25 |
|
|
greatly speeding up decompression in most cases. |
| 26 |
|
|
- finally disable rep movsb - it's a big loss on modern intel cpus, |
| 27 |
|
|
and only a small win on amd cpus. |
| 28 |
root |
1.52 |
- improve C++ compatibility of the code. |
| 29 |
root |
1.50 |
- slightly improve compressor speed. |
| 30 |
root |
1.51 |
- halved memory requirements for compressor on 64 bit architectures, |
| 31 |
|
|
which can improve the speed quite a bit on older cpus. |
| 32 |
root |
1.47 |
|
| 33 |
root |
1.46 |
3.5 Fri May 1 02:28:42 CEST 2009 |
| 34 |
|
|
- lzf_compress did sometimes write one octet past the given output |
| 35 |
|
|
buffer (analyzed and nice testcase by Salvatore Sanfilippo). |
| 36 |
|
|
|
| 37 |
root |
1.44 |
3.4 Tue Sep 2 06:45:00 CEST 2008 |
| 38 |
|
|
- the fix from 3.3 introduced a compression bug, which is fixed in |
| 39 |
root |
1.45 |
this release (which explains the mysterious prerelease...). Thanks |
| 40 |
root |
1.44 |
once more to Clément Calmels. |
| 41 |
|
|
|
| 42 |
root |
1.43 |
3.3 Mon Aug 25 03:17:42 CEST 2008 |
| 43 |
|
|
- lzf_compress could access memory after the given input buffer |
| 44 |
|
|
when outputting back references. reported with nice testcase |
| 45 |
|
|
by Clément Calmels. |
| 46 |
root |
1.41 |
|
| 47 |
root |
1.43 |
3.2 Fri May 9 18:52:23 CEST 2008 |
| 48 |
root |
1.42 |
- include a workaround for failing POSIX and real-world compliance |
| 49 |
|
|
on 64 bit windows (microsoft claims to support POSIX, but is far |
| 50 |
|
|
from it). (bug found and analysed nicely by John Lilley). |
| 51 |
root |
1.41 |
|
| 52 |
root |
1.39 |
3.1 Fri Nov 30 11:33:04 CET 2007 |
| 53 |
|
|
- IMPORTANT BUGFIX: a too long final literal run would corrupt data |
| 54 |
root |
1.40 |
in the encoder (this was introduced in 3.0 only, earlier versions |
| 55 |
|
|
are safe). |
| 56 |
root |
1.39 |
|
| 57 |
root |
1.38 |
3.0 Tue Nov 13 22:13:09 CET 2007 |
| 58 |
root |
1.37 |
- switched to 2-clause bsd with "GPL v2 or any later version" option. |
| 59 |
root |
1.33 |
- speed up compression by ~10-15% in common cases |
| 60 |
|
|
by some manual unrolling. |
| 61 |
root |
1.37 |
- import some compiler tricks from JSON::XS, for further speed-ups. |
| 62 |
root |
1.33 |
- tune hash functions depending on ULTRA_FAST or VERY_FAST settings. |
| 63 |
|
|
- for typical binary data (e.g. /bin/bash, memory dumps, |
| 64 |
|
|
canterbury corpus etc.), speed is now comparable to fastlz, but |
| 65 |
|
|
with better compression ratio. with ULTRA_FAST, it's typically |
| 66 |
root |
1.34 |
3-15% faster than fastlz while still maintaining a similar ratio. |
| 67 |
|
|
(amd64 and core 2 duo, ymmv). thanks a lot for the competition :) |
| 68 |
root |
1.37 |
- undo inline assembly in compressor, it is no longer helpful. |
| 69 |
root |
1.35 |
- no changes to the decompressor. |
| 70 |
root |
1.36 |
- use a HLOG of 16 by default now (formerly 15). |
| 71 |
root |
1.32 |
|
| 72 |
root |
1.30 |
2.1 Fri Nov 2 13:34:42 CET 2007 |
| 73 |
root |
1.31 |
- switched to a 2-clause bsd license with GPL exception. |
| 74 |
root |
1.28 |
- get rid of memcpy. |
| 75 |
|
|
- tentatively use rep movsb on x86 and x86_64 (gcc only) for a |
| 76 |
|
|
moderate speed improvement. |
| 77 |
root |
1.60 |
- applied patch by Kein-Hong Man to make lzf.c compile under |
| 78 |
root |
1.29 |
the crippled mingw32 environment. |
| 79 |
root |
1.18 |
|
| 80 |
root |
1.27 |
2.0 Fri Feb 16 23:11:18 CET 2007 |
| 81 |
root |
1.24 |
- replaced lzf demo by industrial-strength lzf utility with behaviour |
| 82 |
|
|
similar other compression utilities. Thanks for Stefan Traby for |
| 83 |
|
|
rewriting it! |
| 84 |
root |
1.27 |
- fix state arg prototype. |
| 85 |
root |
1.23 |
|
| 86 |
root |
1.22 |
1.7 Wed Sep 27 17:29:15 CEST 2006 |
| 87 |
root |
1.26 |
- remove bogus "unlzf" patch. |
| 88 |
root |
1.20 |
note to self: never accept well-meant patches. |
| 89 |
root |
1.21 |
- make lzf more robust in presence of padding bytes or sudden eof. |
| 90 |
root |
1.20 |
|
| 91 |
root |
1.18 |
1.6 Fri Jul 7 17:31:26 CEST 2006 |
| 92 |
|
|
- the lzf example utility will now uncompress if invoked |
| 93 |
|
|
as "unlzf" (patch by Scott Feeney). |
| 94 |
|
|
- add CHECK_INPUT option that adds more checks for input |
| 95 |
|
|
data validity. |
| 96 |
|
|
- help applications that do not pass in the correct length |
| 97 |
|
|
(such as php) by returning either EINVAL or E2BIG. |
| 98 |
root |
1.19 |
- default HLOG size is now 15 (cpu caches have increased). |
| 99 |
|
|
- documentation fixes. |
| 100 |
root |
1.18 |
|
| 101 |
root |
1.16 |
1.51 Thu Apr 14 22:15:46 CEST 2005 |
| 102 |
|
|
- incorporated C♯ implementation of both the en- and decoder, |
| 103 |
root |
1.43 |
written by "Oren J. Maurice". |
| 104 |
root |
1.17 |
You can find it in the cs/ subdirectory. |
| 105 |
root |
1.16 |
- make FRST, NEXT IDX overridable if lzf_c.c is directly included |
| 106 |
|
|
in the code. |
| 107 |
|
|
|
| 108 |
root |
1.15 |
1.5 Tue Mar 8 20:23:23 CET 2005 |
| 109 |
|
|
- incorporated improvements by Adam D. Moss, |
| 110 |
|
|
which includes a new VERY_FAST mode which is |
| 111 |
|
|
a bit slower than ULTRA_FAST but much better, |
| 112 |
|
|
and enabled it as default. |
| 113 |
root |
1.12 |
|
| 114 |
root |
1.13 |
1.401 Thu Mar 3 18:00:52 CET 2005 |
| 115 |
root |
1.12 |
- use cstring in c++, not string.h. |
| 116 |
root |
1.14 |
- change of contact address. |
| 117 |
root |
1.12 |
|
| 118 |
root |
1.11 |
1.4 Wed Dec 15 08:08:49 CET 2004 |
| 119 |
root |
1.10 |
- very very slight tuning of the hashing function. |
| 120 |
|
|
|
| 121 |
pcg |
1.9 |
1.3 Thu Mar 25 15:41:17 CET 2004 |
| 122 |
|
|
- changed license of lzf core code to explicitly allow |
| 123 |
|
|
relicensing under the GPLv2. |
| 124 |
pcg |
1.8 |
- added VPATH support as suggested by Björn Eriksson. |
| 125 |
|
|
|
| 126 |
pcg |
1.6 |
1.2 Mon Dec 29 13:47:28 CET 2003 |
| 127 |
|
|
- avoid spurious memory accesses after the to-be-compressed |
| 128 |
|
|
memory region. originally reported by Michal Zalewski. |
| 129 |
pcg |
1.7 |
- flip LZF_STACK_ARG meaning (to be correct). |
| 130 |
pcg |
1.6 |
|
| 131 |
pcg |
1.5 |
1.1 Tue Dec 23 05:48:32 CET 2003 |
| 132 |
pcg |
1.4 |
- removed #warn directive, it's not worth the hassle. |
| 133 |
pcg |
1.5 |
- add LZF_STACK_ARG and AVOID_ERRNO configurations |
| 134 |
|
|
for embedded systems. |
| 135 |
|
|
- make it compile cleanly as c++. |
| 136 |
|
|
- some small documentation and code fixes. |
| 137 |
pcg |
1.4 |
|
| 138 |
root |
1.3 |
1.0 Sun Nov 17 12:37:37 CET 2002 |
| 139 |
root |
1.2 |
- slightly better compression ratio, almost unmeasurably |
| 140 |
|
|
slower. |
| 141 |
root |
1.3 |
- some documentation fixes. |
| 142 |
root |
1.2 |
|
| 143 |
|
|
0.4 Thu Jun 13 14:11:10 CEST 2002 |
| 144 |
root |
1.1 |
- typoe fix. |
| 145 |
|
|
- lzf demo program now properly decompresses small files. |
| 146 |
|
|
- fix another 64 bit issue, found by Laurent Deniel. |
| 147 |
|
|
|
| 148 |
|
|
0.3 Tue Jan 16 13:21:14 CET 2001 |
| 149 |
|
|
- fix silly beginners 32/64 bit mistake. |
| 150 |
|
|
|
| 151 |
|
|
0.2 Thu Jan 4 05:56:42 CET 2001 |
| 152 |
root |
1.3 |
- now totally independent of autoconfig, for |
| 153 |
root |
1.1 |
easy inclusion into other programs. |
| 154 |
|
|
- much better fine-tuning, faster and better than 0.1. |
| 155 |
|
|
|
| 156 |
root |
1.3 |
0.1 2000 |
| 157 |
root |
1.1 |
- initial release. |