summaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: 6a6e1ab972d8e2de64c7ab40456d456f0f0d3b47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
2024-03-01  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.24.1 released.
	* main.cc: Fix compilation failure on MinGW because of mkdir.

2024-01-26  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.24 released.
	* New options '--empty-error' and '--marking-error'.
	* main.cc: Reformat file diagnostics as 'PROGRAM: FILE: MESSAGE'.
	  (show_option_error): New function showing argument and option name.
	  (main): Make -o preserve date/mode/owner if 1 input file.
	  (open_outstream): Create missing intermediate directories.
	* lzip.h: Rename verify_* to check_*.
	* configure, Makefile.in: New variable 'MAKEINFO'.
	* testsuite: New test files fox6.lz, fox6_mark.lz.

2022-01-24  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.23 released.
	* Decompression time has been reduced by 5-12% depending on the file.
	* main.cc (getnum): Show option name and valid range if error.
	* Improve several descriptions in manual, '--help', and man page.
	* lzip.texi: Change GNU Texinfo category to 'Compression'.
	  (Reported by Alfred M. Szmidt).

2021-01-04  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.22 released.
	* main.cc (main): Report an error if a file name is empty.
	  Make '-o' behave like '-c', but writing to file instead of stdout.
	  Make '-c' and '-o' check whether the output is a terminal only once.
	  Do not open output if input is a terminal.
	* configure: Build, check, and install without 'make'.
	* Replace 'decompressed', 'compressed' with 'out', 'in' in output.
	* lzip_index.cc: Improve messages for corruption in last header.
	* main.cc: Set a valid invocation_name even if argc == 0.
	* Document extraction from tar.lz in manual, '--help', and man page.
	* lzip.texi (Introduction): Mention plzip and tarlz as alternatives.
	* lzip.texi: Several fixes and improvements.
	* testsuite: Add 9 new test files.

2019-01-03  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.21 released.
	* Rename File_* to Lzip_*.
	* lzip.h (Lzip_trailer): New function 'verify_consistency'.
	* lzip_index.cc: Detect some kinds of corrupt trailers.
	* main.cc (main): Check return value of close( infd ).
	* main.cc: Compile on DOS with DJGPP.
	* Fix a GCC warning about catching std::bad_alloc by value.
	* lzip.texi: Improve description of '-0..-9', '-m', and '-s'.
	* configure: Accept appending to CXXFLAGS; 'CXXFLAGS+=OPTIONS'.
	* INSTALL: Document use of CXXFLAGS+='-D __USE_MINGW_ANSI_STDIO'.

2018-02-11  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.20 released.
	* New option '--loose-trailing'.
	* Improve corrupt header detection to HD=3.
	* main.cc: Show corrupt or truncated header in multimember file.
	* main.cc (main): Option '-S, --volume-size' now keeps input files.
	* encoder_base.*: Adjust dictionary size for each member.
	* Replace 'bits/byte' with inverse compression ratio in output.
	* Show progress of decompression at verbosity level 2 (-vv).
	* Show progress of (de)compression only if stderr is a terminal.
	* main.cc: Show final diagnostic when testing multiple files.
	* main.cc: Do not add a second extension '.lz' to the arg of '-o'.
	* decoder.cc (verify_trailer): Show stored sizes also in hex.
	  Show dictionary size at verbosity level 4 (-vvvv).
	* lzip.texi: New chapter 'Meaning of lzip's output'.

2017-04-13  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.19 released.
	* The option '-l, --list' has been ported from lziprecover.
	* Don't allow mixing different operations (-d, -l or -t).
	* Compression time of option '-0' has been slightly reduced.
	* Decompression time has been reduced by 2%.
	* main.cc: Continue testing if any input file is a terminal.
	* main.cc: Show trailing data in both hexadecimal and ASCII.
	* encoder.cc (Matchfinder_base): Check the size passed to new.
	* lzip_index.cc: Improve detection of bad dict and trailing data.
	* lzip.h: Unify messages for bad magic, trailing data, etc.

2016-05-14  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.18 released.
	* New option '-a, --trailing-error'.
	* Decompression time has been reduced by 2%.
	* decoder.cc (verify_trailer): Remove test of final code.
	* main.cc (main): Delete '--output' file if infd is a terminal.
	* main.cc (main): Don't use stdin more than once.
	* Remove decompression support for version 0 files.
	* lzip.texi: New chapter 'Trailing data'.
	* configure: Avoid warning on some shells when testing for g++.
	* Makefile.in: Detect the existence of install-info.
	* check.sh: A POSIX shell is required to run the tests.
	* check.sh: Don't check error messages.

2015-07-12  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.17 released.
	* Reorganization of the compression code.
	* lzip.texi: New chapter 'Quality assurance'.
	* Makefile.in: New targets 'install*-compress'.

2014-08-26  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.16 released.
	* Compression ratio of option '-9' has been slightly increased.
	* Compression time has been reduced by 4%.
	* Compression time of option '-0' has been reduced by 2%.
	* main.cc (close_and_set_permissions): Behave like 'cp -p'.
	* Minor improvements.
	* lzip.texinfo: Rename to lzip.texi.
	* Change license to GPL version 2 or later.

2013-09-20  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.15 released.
	* Show progress of compression at verbosity level 2 (-vv).
	* main.cc (show_header): Don't show header version.
	* Ignore option '-n, --threads' for compatibility with plzip.
	* configure: Options now accept a separate argument.
	* lzip.texinfo: New chapter 'Stream format' and appendix
	  'Reference source code'.

2013-02-17  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.14 released.
	* Multi-step trials have been implemented.
	* Compression ratio has been slightly increased.
	* Compression time has been reduced by 5%.
	* Decompression time has been reduced by 12%.
	* Makefile.in: New target 'install-bin'.
	* main.cc: Use 'setmode' instead of '_setmode' on Windows and OS/2.
	* main.cc: Define 'strtoull' to 'std::strtoul' on Windows.

2012-02-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.13 released.
	* Lziprecover has been moved to its own package.
	* main.cc (close_and_set_permissions): Inability to change output
	  file attributes has been downgraded from error to warning.
	* Compression time of option '-0' has been reduced by 2%.
	* Reorganization of the compression code.
	* Small change in '--help' output and man page.
	* Change quote characters in messages as advised by GNU Standards.
	* configure: Rename 'datadir' to 'datarootdir'.
	* 'unzcrash.cc' has been moved to package 'lziprecover'.

2011-04-30  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.12 released.
	* New option '-F, --recompress'.
	* encoder.h (update_prices): Update high length symbol prices
	  independently of the value of 'pos_state'. This gives better
	  compression for large values of '--match-length' without being
	  slower.
	* encoder.h, encoder.cc: Optimize pair price calculations, reducing
	  compression time for large values of '--match-length' by up to 6%.
	* Compression time of option '-0' has been reduced by 2%.
	* main.cc (decompress): Print only one status line for each
	  multimember file when only one '-v' is specified.
	* main.cc (decompress): Print up to 6 bytes of trailing data when
	  '-vvvv' is specified.
	* main.cc (open_instream): Don't show the message
	  " and '--stdout' was not specified" for directories, etc.
	* lziprecover.cc: If '-v' is not specified show errors only.
	* unzcrash.cc: Use Arg_parser.
	* unzcrash.cc: New options '-b, --bits', '-p, --position', and
	  '-s, --size'.

2010-09-16  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.11 released.
	* New option '-0', which produces a compression speed and ratio
	  comparable to those of 'gzip -9'.
	* fast_encoder.h, fast_encoder.cc: New files.
	* main.cc: Match length limit set by options -1 to -8 has been
	  reduced to extend range of use towards gzip. Lower numbers now
	  compress less but faster. (-1 now takes 43% less time for only 20%
	  larger compressed size).
	  Exit with status 1 if any output file exists and is skipped.
	* Compression ratio of option '-9' has been slightly increased.
	* lziprecover.cc: New option '-m, --merge', which tries to produce a
	  correct file by merging the good parts of two or more damaged copies.
	* lziprecover.cc: New option '-R, --repair' for repairing a
	  1-byte error in single-member files.
	* decoder.cc (decode_member): Detect file errors earlier to improve
	  efficiency of lziprecover's new repair capability.
	  This change also prevents (harmless) access to uninitialized
	  memory when decompressing a corrupt file.
	* lziprecover.cc: New options '-f, --force' and '-o, --output'.
	* lziprecover.cc: New option '-s, --split' to select the until now
	  only operation of splitting multimember files.
	* lziprecover.cc: If no operation is specified, warn the user and do
	  nothing.
	* main.cc: Fix warning about fchown's return value being ignored.
	* decoder.cc: '-tvvvv' now also shows compression ratio.
	* main.cc: Set stdin/stdout in binary mode on MSVC and OS2.
	* lzip.texinfo: New examples.
	* testsuite: Rename 'test1' to 'test.txt'. New tests.
	* Matchfinder types HC4 (4 bytes hash-chain) and HT4 (4 bytes
	  hash-table) have been tested and found no better than the current
	  BT4.

2010-04-05  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.10 released.
	* decoder.h: Input_buffer integrated in Range_decoder.
	* main.cc: File specified with option '-o' is now created with mode
	  0666 if umask allows it, deleted if interrupted by user.
	* main.cc: New constant 'o_binary'.
	* main.cc: Dictionary size for options -2, -3, -4 and -8 has been
	  changed to improve linearity of compressed sizes.
	* lzip.h: Fix warnings produced by over-optimization (-O3).
	* Makefile.in: Add quotes to directory names.

2010-01-17  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.9 released.
	* main.cc (main): Return at least 1 if closing stdout fails.
	* Makefile.in: Add option '--name' to help2man invocation.
	* check.sh: Use 'test1' instead of 'COPYING' for testing.

2009-09-02  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.8 released.
	* Compression time has been reduced by 4%.
	* Lzdiff and lzgrep have been moved to the new package zutils.
	* Fix warnings on systems where uint32_t != unsigned int.

2009-06-25  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.7 released.
	* decoder.h (copy_block): Fix memcpy overlap introduced in 1.6.

2009-06-22  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.6 released.
	* Decompression time has been reduced by 17%.
	* Add decompression support for Sync Flush marker.
	* Add support for the extension '.tbz' to lzdiff and lzgrep.
	* Add man pages for lzdiff, lzgrep and lziprecover.
	* encoder.cc (Matchfinder): Reduce memory use to 9x if input file is
	  smaller than dictionary size limit.
	* decoder.cc: Add extra flush calls to improve partial decompression
	  of corrupt files.
	* '--test' no longer needs '/dev/null'.
	* Remove some 'bashisms' from lzdiff and lzgrep.
	* Dictionary size for options '-1' to '-4' has been changed.
	* main.cc (signal_handler): Declare as 'extern "C"'.
	* Makefile.in: Extra files are now installed by default.
	* check.sh: Test lziprecover.
	* Add 'export LC_ALL=C' to all scripts.

2009-04-12  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.5 released.
	* lzip.h: Implement coded dictionary size in Lzip_header.
	* Fix some includes that prevented compilation with GCC 4.4.
	* 'member_size' and 'volume_size' are now accurate limits.
	* Compression speed has been improved.
	* Implement bt4 type matchfinder.
	* lzip.texinfo: New chapter 'Algorithm'.
	* Lzdiff and lzgrep now accept '-h' for '--help' and
	  '-V' for '--version'.
	* Makefile.in: Man page is now installed by default.
	* check.sh: Check that files are opened in binary mode.

2009-01-24  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.4 released.
	* Implement compression of version 1 files.
	* New options '-b, --member-size', '-S, --volume-size', and
	  '-o, --output'.
	* main.cc: Read from non-regular files if '--stdout' is specified.
	* Add 'lziprecover', a member recoverer program.
	* unzcrash.cc: Test all 1-byte errors.

2008-12-21  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.3 released.
	* This version automatically chooses the smallest possible
	  dictionary size for each file during compression, saving memory
	  during decompression.
	* Implement decompression of version 1 files.
	* check.sh: Replace 'diff -q' with 'cmp'.

2008-12-10  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.2 released.
	* encoder.cc: A 1-byte read outside allocated memory has been fixed.
	* lzip.h: Dictionary size limit has been reduced to 512 MiB because
	  setting it to 1 GiB causes overflow of a 32 bit integer.
	* Add 'lzdiff', a diff/cmp wrapper for gzip, bzip2, lzip and
	  non-compressed files.
	* Add 'lzgrep', a grep wrapper for gzip, bzip2, lzip and
	  non-compressed files.
	* 'make install-info' should now work on Debian and OS X.

2008-11-17  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.1 released.
	* Change short name of option '--dictionary-size' to '-s'.
	* Change short name of option '--match-length' to '-m'.
	* Change LONG_LONG_MAX to LLONG_MAX.

2008-10-14  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 1.0 released.
	* '-tvv' shows file version and dictionary size.

2008-09-30  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.5 released.
	* Decompression is now 1% faster.

2008-09-23  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.4 released.
	* Code cleanup for global variable 'verbosity'.
	* Regain the compression ratio of 0.2 with 5% faster speed.
	* lzip.h: Fix compilation on systems where size_t != unsigned int.

2008-09-15  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.3 released.
	* encoder.cc: Compression is now 15% faster, 1% worse.
	* main.cc (main): Make option '-t' override '-c'.
	* main.cc (decompress): Show 'done' instead of 'ok' when not testing.
	* encoder.h: Use trials[] to return the list of pairs.

2008-09-09  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.2 released.
	* encoder.cc: Small improvements in compression speed.
	* Small documentation changes.

2008-08-20  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.1 released.


Copyright (C) 2008-2024 Antonio Diaz Diaz.

This file is a collection of facts, and thus it is not copyrightable, but just
in case, you have unlimited permission to copy, distribute, and modify it.