summaryrefslogtreecommitdiffstats
path: root/ChangeLog
blob: ed480ff1a9806cffddf96e52ae0e23d09c909e8f (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
2024-01-21  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.11 released.
	* 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.
	* configure, Makefile.in: New variable 'MAKEINFO'.

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

	* Version 1.10 released.
	* main.cc (getnum): Show option name and valid range if error.
	  (check_lib): Check that LZ_API_VERSION and LZ_version_string match.
	* configure: Set variable LIBS.
	* Improve several descriptions in manual, '--help', and man page.
	* plzip.texi: Change GNU Texinfo category to 'Compression'.
	  (Reported by Alfred M. Szmidt).

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

	* Version 1.9 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.
	* main.cc: New option '--check-lib'.
	* Replace 'decompressed', 'compressed' with 'out', 'in' in output.
	* decompress.cc, dec_stream.cc, dec_stdout.cc:
	  Continue testing if any input file fails the test.
	  Show the largest dictionary size in a multimember file.
	* main.cc: Show final diagnostic when testing multiple files.
	* decompress.cc, dec_stream.cc [LZ_API_VERSION >= 1012]: Avoid
	  copying decompressed data when testing with lzlib 1.12 or newer.
	* compress.cc, dec_stream.cc: Start only the worker threads required.
	* dec_stream.cc: Splitter stops reading when trailing data is found.
	  Don't include trailing data in the compressed size shown.
	  Use plain comparison instead of Boyer-Moore to search for headers.
	* lzip_index.cc: Improve messages for corruption in last header.
	* decompress.cc: Shorten messages 'Data error' and 'Unexpected EOF'.
	* main.cc: Set a valid invocation_name even if argc == 0.
	* Document extraction from tar.lz in manual, '--help', and man page.
	* plzip.texi (Introduction): Mention tarlz as an alternative.
	* plzip.texi: Several fixes and improvements.
	* testsuite: Add 8 new test files.

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

	* Version 1.8 released.
	* Rename File_* to Lzip_*.
	* main.cc: New options '--in-slots' and '--out-slots'.
	* main.cc: Increase default in_slots per worker from 2 to 4.
	* main.cc: Increase default out_slots per worker from 32 to 64.
	* 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 ).
	* plzip.texi: Improve description of '-0..-9', '-m', and '-s'.
	* configure: New option '--with-mingw'.
	* configure: Accept appending to CXXFLAGS; 'CXXFLAGS+=OPTIONS'.
	* INSTALL: Document use of CXXFLAGS+='-D __USE_MINGW_ANSI_STDIO'.

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

	* Version 1.7 released.
	* compress.cc: Use 'LZ_compress_restart_member' and replace input
	  packet queue by a circular buffer to reduce memory fragmentation.
	* compress.cc: Return one empty packet at a time to reduce mem use.
	* main.cc: Reduce threads on 32 bit systems to use under 2.22 GiB.
	* main.cc: New option '--loose-trailing'.
	* Improve corrupt header detection to HD = 3 on seekable files.
	  (On all files with lzlib 1.10 or newer).
	* 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: Do not add a second .lz extension to the arg of -o.
	* Show dictionary size at verbosity level 4 (-vvvv).
	* main.cc (cleanup_and_fail): Suppress messages from other threads.
	* list.cc: Add missing '#include <pthread.h>'.
	* plzip.texi: New chapter 'Output'.
	* plzip.texi (Memory requirements): Add table.
	* plzip.texi (Program design): Add a block diagram.

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

	* Version 1.6 released.
	* The option '-l, --list' has been ported from lziprecover.
	* Don't allow mixing different operations (-d, -l or -t).
	* main.cc: Continue testing if any input file is a terminal.
	* 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.5 released.
	* main.cc: New option '-a, --trailing-error'.
	* main.cc (main): Delete '--output' file if infd is a terminal.
	* main.cc (main): Don't use stdin more than once.
	* plzip.texi: New chapters 'Trailing data' and 'Examples'.
	* 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-09  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.4 released.
	* Option '-0' now uses the fast encoder of lzlib 1.7.

2015-01-22  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.3 released.
	* dec_stream.cc: Don't use output packets or muxer when testing.
	* Make '-dvvv' and '-tvvv' show dictionary size like lzip.
	* lzip.h: Add missing 'const' to the declaration of 'compress'.
	* plzip.texi: New chapters 'Memory requirements' and
	  'Minimum file sizes'.
	* Makefile.in: New targets 'install*-compress'.

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

	* Version 1.2 released.
	* main.cc (close_and_set_permissions): Behave like 'cp -p'.
	* dec_stdout.cc, dec_stream.cc: Make 'slot_av' a vector to limit
	  the number of packets produced by each worker individually.
	* plzip.texinfo: Rename to plzip.texi.
	* plzip.texi: Document the approximate amount of memory required.
	* Change license to GPL version 2 or later.

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

	* Version 1.1 released.
	* Show progress of compression at verbosity level 2 (-vv).
	* SIGUSR1 and SIGUSR2 are no longer used to signal a fatal error.

2013-05-29  Antonio Diaz Diaz  <antonio@gnu.org>

	* Version 1.0 released.
	* compress.cc: Change 'deliver_packet' to 'deliver_packets'.
	* Scalability of decompression from/to regular files has been
	  increased by removing splitter and muxer when not needed.
	* The number of worker threads is now limited to the number of
	  members when decompressing from a regular file.
	* configure: Options now accept a separate argument.
	* Makefile.in: New targets 'install-as-lzip' and 'install-bin'.
	* main.cc: Use 'setmode' instead of '_setmode' on Windows and OS/2.
	* main.cc: Define 'strtoull' to 'std::strtoul' on Windows.

2012-03-01  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.9 released.
	* Minor fixes and cleanups.
	* configure: Rename 'datadir' to 'datarootdir'.

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

	* Version 0.8 released.
	* main.cc: New option '-F, --recompress'.
	* decompress.cc (decompress): Show compression ratio.
	* main.cc (close_and_set_permissions): Inability to change output
	  file attributes has been downgraded from error to warning.
	* Small change in '--help' output and man page.
	* Change quote characters in messages as advised by GNU Standards.
	* main.cc: Set stdin/stdout in binary mode on OS2.
	* compress.cc: Reduce memory use of compressed packets.
	* decompress.cc: Use Boyer-Moore algorithm to search for headers.

2010-12-03  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.7 released.
	* Match length limits set by options -1 to -9 have been changed
	  to match those of lzip 1.11.
	* decompress.cc: A limit has been set on the number of packets
	  produced by workers to limit the amount of memory used.
	* main.cc (open_instream): Don't show the message
	  " and '--stdout' was not specified" for directories, etc.
	  Exit with status 1 if any output file exists and is skipped.
	* main.cc: Fix warning about fchown return value being ignored.
	* testsuite: Rename 'test1' to 'test.txt'. New tests.

2010-03-20  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.6 released.
	* Small portability fixes.
	* plzip.texinfo: New chapter 'Program Design'.
	  Add missing description of option '-n, --threads'.
	* Fix debug statistics.

2010-02-10  Antonio Diaz Diaz  <ant_diaz@teleline.es>

	* Version 0.5 released.
	* Parallel decompression has been implemented.

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

	* Version 0.4 released.
	* main.cc (show_version): Show the version of lzlib being used.
	* Code reorganization. Class Packet_courier now coordinates data
	  movement and synchronization among threads.

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

	* Version 0.3 released.
	* New option '-B, --data-size'.
	* Output file is now removed if plzip is interrupted.
	* This version automatically chooses the smallest possible
	  dictionary size for each member during compression, saving
	  memory during decompression.
	* main.cc: New constant 'o_binary'.

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

	* Version 0.2 released.
	* New options '-s, --dictionary-size' and '-m, --match-length'.
	* 'lacos_rbtree' has been replaced with a circular buffer.

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

	* Version 0.1 released.
	* This version is based on llzip-0.03 (2009-11-21), written by
	  Laszlo Ersek <lacos@caesar.elte.hu>. Thanks Laszlo!
	  From llzip-0.03/README:

            llzip is a hack on my lbzip2-0.17 release. I ripped out the
            decompression stuff, and replaced the bzip2 compression with
            the lzma compression from lzlib-0.7. llzip is mainly meant
            as an assisted fork point for the lzip developers.
            Nonetheless, I tried to review the diff against lbzip2-0.17
            thoroughly, and I think llzip should be usable on its own
            until something better appears on the net.


Copyright (C) 2009-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.