File: ChangeLog

package info (click to toggle)
lbzip2 2.5-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,624 kB
  • sloc: ansic: 27,584; sh: 4,306; perl: 154; makefile: 70
file content (922 lines) | stat: -rw-r--r-- 27,073 bytes parent folder | download | duplicates (6)
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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
2014-03-26  Mikolaj Izdebski  <zurgunt@gmail.com>

	Release version 2.5

	Fix performance bug in sequential compressor code
	* src/compress.c (do_collect_seq): Release collect semaphore before
	compressing block.  This improves performance a lot.

	Fix block ordering during compression
	* src/compress.c: Replace order deque with next position pointer
	stored in work block.  This way block order doesn't have to be defined
	sequentially.

2014-03-09  Mikolaj Izdebski  <zurgunt@gmail.com>

	Release version 2.4

	Update copyright notice in usage help

	Add release notes for version 2.4

	Document --small

	Document --sequential

	Add ---sequential CLI switch

	Don't remove build-aux/.gitignore during cleanup

2014-02-16  Mikolaj Izdebski  <zurgunt@gmail.com>

	Avoid scanning in sequential mode

2014-02-09  Mikolaj Izdebski  <zurgunt@gmail.com>

	Implement sequential collector

	Introduce order queue to compressor

	Implement restartable collector
	Now collector can potentially be stopped and restarted, allowing input
	blocks to be much smaller than compression block.  This feature used
	to be implemented in older versions of yambi.

	Reorder code in package_merge()

2014-02-08  Mikolaj Izdebski  <zurgunt@gmail.com>

	Cache current leaf weight at current depth in curr_weight[]

	Reduce branching in Package-Merge
	Add sentinel at the beginning of leaf_weight[] allows skipping bounds
	check, which reduces branches in a tight loop.

	Use memcpy() instead of bcopy()
	memcpy() can be faster for non-overlapping memory regions.  Also using
	constant length should be faster as optimizing compilers are expected
	to fully inline and unroll the whole memcpy() call.

2014-02-02  Mikolaj Izdebski  <zurgunt@gmail.com>

	Wrap lines which exceed 80 characters

	Rewrite cost computation code

	Code length counts don't need to be global

	Optimize assign_codes() and add tracing code

	Rename confusing variable lookup to code

	Make variables names in prefix encoder more human-readable

	Integrate Package-Merge with encoder

	Port new Package-Merge implementation from Java

	Compute cost when assigning prefix code

	Remove old implementation of Package-Merge

	Add .gitignore files

2014-01-27  Mikolaj Izdebski  <zurgunt@gmail.com>

	Update copyright notices

	Fix parser bug (overrun2)
	* src/parse.c (parse): Backport parser bugfix from lbzip2-java
	commit 4424921.

	Rewrite Package-Merge
	* src/encode.c (package_merge): Rewrite from scratch basing on
	Java implementation in lbzip2-java.

2014-01-18  Mikolaj Izdebski  <zurgunt@gmail.com>

	Add reproducer for parser bug

2013-12-10  Mikolaj Izdebski  <zurgunt@gmail.com>

	Document code in process.h

	Document block header parsing functions

	Remove dead code
	* src/parse.c (parse): Remove code that is executed
	  under condition that is asserted to be false.

	Explain existence of two different block parsing algorithms

	Avoid integer overflow with some 32-bit versions of Perl
	build-aux/make-crctab.pl: Avoid using arthmetic operators
	in favor of bit shift and immediate constants.

2013-10-27  Mikolaj Izdebski  <zurgunt@gmail.com>

	Fix another typo in tests/codelen20.c

	Fix a typo in tests/codelen20.c

	Add test case for bug #12 (rhbz#1017957)

	Properly initialize base code sentinel in make_tree()
	* src/decode.c (make_tree): make sure that base code sentinel
	(base[21]) is always set to plus infinity.  Fixes #12.

2013-10-13  Mikolaj Izdebski  <zurgunt@gmail.com>

	Update automake to 1.14
	* configure.ac: Bump automake version to 1.14.
	* tests/Makefile.am: Update to use new test driver API.
	* build-aux/autogen.sh: Remove build-aux/compile during cleanup.

2013-09-22  Mikolaj Izdebski  <zurgunt@gmail.com>

	Release version 2.3

	Complete ChangeLog

	Add Serhii Khilinich to THANKS

	Add website link to --version report

	Add website link to manual page

	Add website link to README

2013-07-21  Mikolaj Izdebski  <zurgunt@gmail.com>

	Fix assertion
	* src/encode.c (package_merge): Fix assertion about remaining number
	of non-singleton trees uppon Package Merge completion.

	Small comment improvements

2013-06-30  Mikolaj Izdebski  <zurgunt@gmail.com>

	Fix typos in prefix decoder code

2013-06-29  Mikolaj Izdebski  <zurgunt@gmail.com>

	Remove unused retriever FSM state
	* src/decode.c: Remove S_TRAILER enum.

2013-06-26  Mikolaj Izdebski  <zurgunt@gmail.com>

	Optimize Huffman algorithm
	* src/encode.c (build_tree): Rewrite loop body to minimize number of
	  comparisons and branches.

	Extract transmission cost computation as a separate function
	* src/encode.c (transmission_cost): New function.

2013-06-23  Mikolaj Izdebski  <zurgunt@gmail.com>

	Fix a typo in ALGORITHM

	Avoid compiler warnings in Package Merge mode
	* src/encode.c (make_code_lengths): Define V only when it's used.

	Add prefix coder sanity check
	* src/encode.c (make_code_lengths): Verify if Kraft's inequality is
	  satisfied.

	Reimplement Package Merge algorithm
	* src/encode.c (package_merge): Rewrite from scratch.

2013-06-22  Mikolaj Izdebski  <zurgunt@gmail.com>

	During cleanup remove all files genared by autotools
	build-aux/autogen.sh: Remove test-driver during cleanup.

2013-03-30  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix incorrect usage of foreach() macro
	src/signals.c (pending): Call foreach() macro with second argument
	as array, not pointer to array.

2013-03-28  Mikołaj Izdebski  <zurgunt@gmail.com>

	Improve comments in decode.c

2013-03-27  Mikołaj Izdebski  <zurgunt@gmail.com>

	Don't hardcode MAX_CODE_LENGTH
	* src/deocde.c (make_tree): Use constant MAX_CODE_LENGTH instead of
	hardcoding its value.

2013-03-02  Mikolaj Izdebski  <zurgunt@gmail.com>

	Add release note for Debian bug 700680

	Fix Debian bug 700680
	src/main.c (input_init): Allow input files not to be regular files when
	outputting to stdout or to the bit bucket.

2012-10-28  Mikolaj Izdebski  <zurgunt@gmail.com>

	Document copying with -cdf

	Copy files only with --stdout
	process.c (work): Allow copying files only when output fd is stdout.

	Add NEWS entry for v2.3

2012-10-21  Mikolaj Izdebski  <zurgunt@gmail.com>

	Assert that the first group is always coded by the first tree

	Fix a deadlock and enable file copying with -d -f
	src/process.c (copy_on_input_avail): Decrement out_slots semaphore.
	(copy_on_write_complete): Increment out_slots semaphore.
	(copy_terminate): Rename from never; raise SIGUSR2 if terminal
	condition is met.

2012-10-20  Mikolaj Izdebski  <zurgunt@gmail.com>

	Avoid shadowing auto variable

	Fix assertion failure, closes #8
	src/encode.c (generate_initial_trees): Rewrite from scratch.

2012-09-14  Mikolaj Izdebski  <zurgunt@gmail.com>

	Minor comment improvements and whitespace changes

2012-09-11  Mikolaj Izdebski  <zurgunt@gmail.com>

	Fix dead initialization bug

2012-08-06  Mikolaj Izdebski  <zurgunt@gmail.com>

	Ignore --small
	src/main.c (main): Reset small to zero.

	Improve initial tree generation
	* src/encode.c (generate_initial_trees): During initial set
	  paritioning round set cardinalities to the nearest instead of
	  rounding up. This decreases standard deviation of the size of trees
	  and thus improves compression.

	Add THANKS

	Document bugs fixed

	Explicitly license auxiliary programs under GPLv3+
	* tests/minbzcat.c: Relicense under GPLv3+.
	* tests/timeout.c: Add explicit license terms.

	Rebase to the newest version of yambi
	* ALGORITHM: Fix a typo.
	* Makefile.am: Remove yambi subdirectory.
	* build-aux/autogen.sh: Implement new directory structure layout.
	* build-aux/make-crctab.pl: Likewise.
	* build-aux/style-check.pl: Likewise.
	* configure.ac: Lower autoconf requirement. Optimize runtime by adding
	  gl_ASSERT_NO_GNULIB_TESTS and gl_ASSERT_NO_GNULIB_POSIXCHECK. Add
	  new compiler warnings. Implement new option "--enable-tracing".
	  Implement new directory structure layout.
	* src/Makefile.am: Import from newer version of yambi.
	* src/common.h: Likewise.
	* src/compress.c: Likewise.
	* src/decode.c: Likewise.
	* src/decode.h: Likewise.
	* src/divbwt.c: Likewise.
	* src/encode.c: Likewise.
	* src/encode.h: Likewise.
	* src/expand.c: Likewise.
	* src/main.c: Likewise.
	* src/main.h: Likewise.
	* src/parse.c: Likewise.
	* src/process.c: Likewise.
	* src/process.h: Likewise.
	* src/signals.c: Likewise.
	* src/signals.h: Likewise.
	* tests/Makefile.am: Likewise.
	* tests/cve2.bz2: Likewise.
	* src/lbunzip2.c: Remove file.
	* src/lbunzip2.h: Likewise.
	* src/lbzip2.c: Likewise.
	* src/lbzip2.h: Likewise.
	* src/pqueue.c: Likewise.
	* src/pqueue.h: Likewise.
	* yambi/Makefile.am: Likewise.
	* yambi/collect.c: Likewise.
	* yambi/decode.c: Likewise.
	* yambi/decode.h: Likewise.
	* yambi/divsufsort.c: Likewise.
	* yambi/emit.c: Likewise.
	* yambi/encode.c: Likewise.
	* yambi/encode.h: Likewise.
	* yambi/prefix.c: Likewise.
	* yambi/private.h: Likewise.
	* yambi/retrieve.c: Likewise.
	* yambi/transmit.c: Likewise.
	* yambi/yambi.h: Likewise.

2012-06-23  Mikolaj Izdebski  <zurgunt@gmail.com>

	Update ChangeLog

	Bump version to 2.2

	Simplify AUTHORS file

	Add workaround for Debian bug #673378
	* yambi/retrieve.c (YBdec_retrieve): Return YB_UNDERFLOW if in_avail is 0.
	This Works around dDebian bug #673378.

	Revert "Implement double-ended queue."
	* src/deque.c: Delete file.
	* src/deque.h: Likewise.

2012-02-22  Mikołaj Izdebski  <zurgunt@gmail.com>

	Implement double-ended queue.
	* src/deque.c: New file.
	* src/deque.h: New file.
	* src/Makefile.am: Add deque.[ch].

	Make pqueue_pop() return the popped element
	* src/pqueue.c (pqueue_pop): Return popped element.
	* src/pqueue.h (pqueue_pop): Change function prototype.

	Don't print EPIPE and EFBIG fatal errors
	* src/main.c (DEF): Skip printing fatal error messages if error number
	is EPIPE or EFGIG.

	Cleanup yambi code
	* yambi/divsufsort.h: Delete header file.
	* yambi/Makefile.am: Remove reference to divsufsort.h.
	* yambi/divsufsort.c: Include encode.h instead of divsufsort.h.
	Change cyclic_divbwt() function name to YBpriv_cyclic_divbwt().
	* yambi/encode.h (YBpriv_block_sort, YBpriv_sais): Remove prototypes
	of previously removed functions.
	* yambi/encode.c (YBenc_work): Replace reference to cyclic_divbwt()
	with YBpriv_cyclic_divbwt().
	* yambi/private.h (SLong): Remove unused type definition.

2012-02-21  Mikołaj Izdebski  <zurgunt@gmail.com>

	Implement new error handling

	Fix a bug in tandem repeat sort code
	* yambi/divsufsort.c (trsort): Fix a bug introduced in 336008f
	by altering the main trsort loop invariant. Adding a pre-condition
	of `-n < *SA' seems to fix the issue.

2012-02-16  Mikołaj Izdebski  <zurgunt@gmail.com>

	Remove obsolete shallow factor
	* yambi/collect.c, yambi/encode.h: Get rid of shallow_factor.
	* yambi/yambi.h: Remove YB_DEFAULT_SHALLOW #definition.
	* src/lbzip2.c (work_compr): Remove YB_DEFAULT_SHALLOW

2012-02-02  Mikołaj Izdebski  <zurgunt@gmail.com>

	Update copyright dates

	Disable load0 test

	Add version 2.2 entry in NEWS

	Update references in ALGORITHM

	Deprecate `--exponential'
	* build-aux/pretty-usage.pl, man/lbzip2.1: Update `--exponential' info.
	* src/main.c, src/lbzip2.c, src/lbzip2.h: Drop support for exponential.

2012-01-09  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix undefined behavior in divsufsort
	* yambi/divsufsort.c (trsort): Add bounds checks before moving pointer
	beyond allocated space.

	Extend bugfix from ca8e703c
	* yambi/divsufsort.c: Apply patch provided by Yuta Mori.

	Fix a bug with sorting periodic strings
	yambi/divsufsort.c (tr_introsort): Add depth condition.

	Integrate divsufsort with yambi
	* yambi/collect.c, yambi/encode.h: Let mtfv[] and SA[] share space
	and block[] be a separate array.
	* yambi/encode.c: Use divsufsort instead of old blocksort code.

	Adjust divsufsort to yambi
	* yambi/divsufsort.c: Remove include guardians. Define sauchar_t,
	saint_t and saidx_t in terms of <inttypes.h>. Remove __inline.
	(MAX): Remove unused macro. (construct_SA): Remove unused function.
	(construct_BWT): Remove unused parameter `m'. (cyclic_divsufsort):
	Remove unused function. (cyclic_divbwt): Write resulting BWT
	transform to SA[] instead of separate output array. Replace malloc()
	with xmalloc(). Optimize code for case with no B* suffixes.
	* yambi/divsufsort.h: Remove C++ code. Remove unused prototype.

	Import code from cyclic-divsufsort-lite
	yambi/divsufsort.c, yambi/divsufsort.h: New files.

	Remove existing block-sorting code
	yambi/blocksort.c, yambi/sais.c: Remove files.

2012-01-07  Mikołaj Izdebski  <zurgunt@gmail.com>

	Integrate new block-sorting code with yambi
	yambi/collect.c: Share block[] and mtfv[] space for better cache
	perfoemance and lower memory usage.
	yambi/encode.c: Read BWT characters from bwt[] and not block[].
	yambi/encode.h: Add YBpriv_sais() prototype. Add bwt field to YBenc_s.
	yambi/private.h: Implement peekb() and pokeb() macros.
	build-aux/style-check.pl, yambi/Makefile.am: Mention yambi/sais.c.

	Refactor block-sorting code
	yambi/blocksort.c: Refactor quicksort and bucket sort code for better
	readability. Remove BPR code. Remove code copyrighted by Juliad Seward
	and the corresponding license block.

	Import cyclic-sais
	yambi/sais.c: Import from cyclic-sais 1.0 by Yuta Mori.

2011-12-25  Mikolaj Izdebski  <zurgunt@gmail.com>

	Remove unused constants
	* src/lbunzip2.c: Remove magic_mask and magic_hdr definitions.

	Remove unused constant definition
	* yambi/yambi.h: Remove YB_CANCELED macro definition.

2011-12-23  Mikolaj Izdebski  <zurgunt@gmail.com>

	Import new test case -- load0
	* tests/load0.bz2: Initial version.
	* tests/Makefile.am: Add load0.bz2 as a new test.

	Limit time and memory usage during tests
	* tests/timeout.c: Initial version.
	* tests/Makefile.am: Build timeout from timeout.c.
	* tests/Tester: Try limiting virtual memory usage with `ulimit -v'.
	Run decompresion subprocesses with alarm set to 1 minute.

	Make minbzcat be more compatible with bzip2
	* tests/minbzcat.c (main): Count block size digit as part of stream
	header. Fixes #3.

	Add check for fatal signals in tester
	* tests/Tester: Add checks for subprocess exit codes >= 128. All tests
	in which either lbzip2 or minbzcat exited because of unhandled signals
	are treated as failed.

2011-12-04  Mikołaj Izdebski  <zurgunt@gmail.com>

	Add two more test cases.
	* tests/incomp: Initial version.
	* tests/incomp-1.bz2, tests/incomp-2.bz2: Generate using tests/incomp.
	* tests/README: Update to mention incomp-[12].bz2.
	* tests/Makefile.am: Add the new test cases.

	Fix bug #5
	* src/lbunzip2.c (work_decompr): Assign w2w_blk->bs100k
	to w2m_blk->bs100k only if YB_OK == ybret. Fixes: #5. This bug caused
	files with input blocks larger than 1 MiB to be rejected by lbunzip2.
	* tests/ch255.bz2: Add as a regression test for bug #5.
	* tests/Makefile.am: Re-enable crc1.bz2, add ch255.bz2.

	Workaround bug #5
	* src/lbunzip2.c (mux): Disable stream CRC check. Fixes #5.
	* tests/Makefile.am: Exclude crc1.bz2 from test cases.

2011-11-24  Mikołaj Izdebski  <zurgunt@gmail.com>

	Get rid of AM_MAINTAINER_MODE
	* configure.ac: Remove AM_MAINTAINER_MODE, which was included by
	accident.

2011-11-23  Mikołaj Izdebski  <zurgunt@gmail.com>

	Bump version to 2.1

	Fix a use-after-free vulnerability in lbunzip2
	* src/lbunzip2.c (work_retrieve.c): Move access to s2w_blk before
	work_release() call. Fixes #4.

2011-11-11  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix build error on OpenBSD 5.0
	* src/main.c (opts_setup): Use _SC_THREAD_THREADS_MAX conditionally.

2011-11-05  Mikołaj Izdebski  <zurgunt@gmail.com>

	Update autogen.sh to remove gitlog-to-changelog
	* build-aux/autogen.sh: Remove gitlog-to-changelog with -r option.

2011-11-02  Mikołaj Izdebski  <zurgunt@gmail.com>

	Update and improve documentation
	* README: Add Laszlo Ersek's copyright notice.
	* yambi/blocksort.c: Add example Manber-Myers algorithm implementation.

2011-10-31  Mikołaj Izdebski  <zurgunt@gmail.com>

	Include ChangeLog.old in tarball
	* Makefile.am: Add ChangeLog.old to EXTRA_DIST.

	Create changelogs
	* build-aux/autogen.sh: Add gitlog-to-changelog Gnulib module.
	* ChangeLog.old: Import from v0.23.
	* ChangeLog: Generate with build-aux/gitlog-to-changelog.

2011-10-30  Mikołaj Izdebski  <zurgunt@gmail.com>

	Minor documentation cleanup

	Add BOOTSTRAP

	Add filenames and short desc to license blocks

	Run automated spelling check

	Make tests/Tester more portable

2011-10-29  Mikołaj Izdebski  <zurgunt@gmail.com>

	Make install and uninstall targets work

	Add list of subdirs to README

	Extend AUTHORS

	Import ALGORITHM

	Add a minimal README

	Cleanup manpage

2011-10-28  Mikołaj Izdebski  <zurgunt@gmail.com>

	Add scantab.h to noinst_HEADERS

2011-10-27  Mikołaj Izdebski  <zurgunt@gmail.com>

	Minor code cleanups to avoid gcc warnings
	 * Add extra braces in generated scantab.h
	 * Add __attribute__((printf, ...)) to log_fatal()
	 * Add extra switch case in lbunzip2 parser

	Make file sizes unsigned integers (uintmax_t)

	Remove SETX from lbunzip2

2011-10-23  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix Tester to support VPATH builds

	Display progress info during decompression

	Improve error messages in lbunzip2 muxer

	Move progress info printing code to main.c

	Fix a bug that prevented VPATH build from working

	Reimplement lbunzip2 magic pattern scanner as DFA

2011-10-22  Mikołaj Izdebski  <zurgunt@gmail.com>

	Cleanup and improve lbunzip2 header parser
	Improvements implemented:
	 * block overruns are detected (fixes `overrun.bz2')
	 * stream CRCs are computed and checked (fixes `crc1.bz2')
	 * initial stream headers are parsed (fixes `trash.bz2' and `void.bz2')
	 * files with gaps between streams are rejected (fixes `gap.bz2')
	 * minor speed enchancements

	NEWS were updated to reflect recent improvements.

2011-10-22  Mikołaj Izdebski  <zurgunt@gmail.com>

	Implement initial header parser for lbunzip2
	Partly fixes `gap.bz2' bug. For now the parser isn't detecting
	parse errors and parsing results (CRC and bs100k) are unused.

	Reorder scanner code in lbunzip2.c

	Pad lbunzip2 input blocks to multiple of 32 bits

2011-10-20  Mikołaj Izdebski  <zurgunt@gmail.com>

	Add more files to EXTRA_DIST
	Fix a typo in style-check.pl naming.

2011-10-18  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix a minor bug in autogen.sh

2011-10-17  Mikołaj Izdebski  <zurgunt@gmail.com>

	Reimplement BPR algorithm

2011-10-13  Mikołaj Izdebski  <zurgunt@gmail.com>

	Improve comments in blocksort.c, prefix.c and retrieve.c

2011-10-08  Laszlo Ersek  <lacos@caesar.elte.hu>

	trivial typo fix in man page

2011-10-07  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix -Wno-unknown-warning-option

	Narrow usage text width to 79 characters

	Add missing _Noreturn attributes

	Add -Wno-unknown-warning-option for clang

	Remove Trace() macros

	Turn off warnings about unreachable code

	Link lbunzip2 and lbzcat manpages to lbzip2

	Use uintmax_t for block identifiers

	Import a newer version of minbzcat

2011-10-04  Mikołaj Izdebski  <zurgunt@gmail.com>

	Unset LBZIP2 et al. in tests/Tester

	Import and extend lbzip2 manpage

2011-09-27  Mikołaj Izdebski  <zurgunt@gmail.com>

	Print version and usage info on stdout, not stderr
	Add build-aux/pretty-usage.pl to help maintaining usage message.

2011-09-23  Mikołaj Izdebski  <zurgunt@gmail.com>

	autogen.sh: set IFS to space-tab-newline

	Add make-crctab.pl

	Style fixups based on style-check.pl report

	Add build-aux/style-check.pl

2011-09-22  Mikołaj Izdebski  <zurgunt@gmail.com>

	Move autogen.sh to build-aux/

	Fix a bug with displaying an error message

2011-09-20  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix a typo in tests/cve.c
	A typo in tests/cve.c caused tests/cve.bz2 to be invalid. Update both.

2011-09-19  Mikołaj Izdebski  <zurgunt@gmail.com>

	minbzcat: add checks for Kraft's inequality

	Fix a typo in yambi/Makefile.am

	Write initial NEWS

	Import basic test cases

	Add noinst_HEADERS in src and yambi subdirs

2011-09-14  Mikołaj Izdebski  <zurgunt@gmail.com>

	Replace AC_SYS_LARGEFILE with largefile Gnulib module
	Downgrade to autoconf 2.67 to ease development on Debian stable.
	Import realloc-gnu module. Remove redundant checks from configure.ac.

2011-09-12  Mikołaj Izdebski  <zurgunt@gmail.com>

	Rename the project back to lbzip2

2011-09-11  Mikołaj Izdebski  <zurgunt@gmail.com>

	In lbunzip2 initialise `scan' with all ones, not all zeros
	This decreases probability of finding false-positives when looking
	for the magic bit pattern.

	Remove split_chkstart()
	Upcoming stream parser obsoletes split_chkstart().

	Prioritize decompressing earlier blocks
	Decompress retrieved blocks basing on their position within the
	stream, not FCFS.

	Replace lacos_rbtree with pqueue

	Fix a bug related to htonl() usage

	Drop fupport for LBZIP2_TRACE_ALLOC
	Replace home-made xalloc() with xmalloc() provided by Gnulib.

	Disable compiler warnings about aggregate return

2011-09-10  Mikołaj Izdebski  <zurgunt@gmail.com>

	Reduce memory usage during decompression

2011-09-09  Mikołaj Izdebski  <zurgunt@gmail.com>

	Remove emacs file variables

	Add missing copyright notices

	Implement smarter scanner in lbunzip2
	Redesign yambi's retrieve pass.  Remove IBS structure and related
	functions from yambi API.  Perform yambi's retrieve pass directly
	during lbunzip2's scan pass and not during decompress pass.

2011-09-07  Mikołaj Izdebski  <zurgunt@gmail.com>

	Read 32 bits at time in lbunzip2

	Add #include <sys/types.h> for size_t
	Include sys/types.h instead of stddef.h for size_t.

	Guard config.h inclusions
	Surround #include <config.h> with #ifdef HAVE_CONFIG_H.

	Make use of SIZE_MAX
	Replace (size_t)-1 with SIZE_MAX.

	Improve configure.ac

	Added -r option to autogen.sh

	Delete corr-perf.sh, malloc_trace.pl and test.sh

	Optimize lbunzip2 state machine

2011-08-28  Mikołaj Izdebski  <zurgunt@gmail.com>

	Restore atime and mtime with nanosec accuracy

	Convert gettimeofday() calls to gettime()

	Don't display file name with progress info

2011-08-26  Mikołaj Izdebski  <zurgunt@gmail.com>

	Add a configure switch to enable warnings

2011-08-25  Mikołaj Izdebski  <zurgunt@gmail.com>

	Rename to bzimp2
	Update externally visible names to bzimp2. Remove man page.
	Split usage and version printing options.

	Fix GCC compatibility bugs

2011-08-23  Mikołaj Izdebski  <zurgunt@gmail.com>

	Remove .cvsignore

	Add more checks to configure.ac

2011-08-20  Mikołaj Izdebski  <zurgunt@gmail.com>

	Include <config.h> in all source files

	Replace utime() with fdutimens()

	Create autogen.sh

	Migrate to GNU build system
	Move lbzip2 source files to "src" subdirectory. Remove Makefiles.
	Create initial "configure.ac" and "Makefile.am" files.

2011-08-19  Mikołaj Izdebski  <zurgunt@gmail.com>

	Display progress info during compression

	Display compression ratio in verbose mode

2011-08-16  Mikołaj Izdebski  <zurgunt@gmail.com>

	Remove redundant includes

2011-08-15  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix a compatibility bug

2011-08-14  Mikołaj Izdebski  <zurgunt@gmail.com>

	Add support for decompressing randomized blocks

2011-08-13  Mikołaj Izdebski  <zurgunt@gmail.com>

	Minor comments and code cleanup
	Add more coments on prefix code decoding. Remove a potential
	incompatibility with platforms that don't use U2 encoding for signed
	integers. Remove unused auto variables. Replace loops zeroing bigger
	arrays with calls to bzero().

2011-08-12  Mikołaj Izdebski  <zurgunt@gmail.com>

	Minor formatting cleanup

	Eliminate SIZES() macro
	Get rid of SIZES() to simplify the code.

	Introduce xread() and xwrite()
	Generalize existing I/O code and create xread() and xwrite() to ease
	maintaintenance.  Pack "fd", "sep" and "fmt" into struct filespec
	to emphasise their close relationship and simplify the code.

2011-08-11  Mikołaj Izdebski  <zurgunt@gmail.com>

	Clean up the code
	Minor code cleanups:
	 * move nested function declaration to global scope,
	 * convert K&R function definitions to ANSI,
	 * move common macros to header file,
	 * remove unused auto variables,
	 * make pointer casts not strip the const qualifier,
	 * change some variable types between signed and unsigned,
	 * add missing copyright notices,
	 * correct intentation in lbzip2.c,
	 * remove white spaces from end of lines,
	 * replace tabs by spaces (except from Makefiles).

	Improve compression performance
	The main block sorting algorithm is reworked to behave better
	in average case while remaining fast enough in the worst case.

2011-08-09  Mikołaj Izdebski  <zurgunt@gmail.com>

	Make decompression error messages more datailed
	Implement Yberr_detail() -- a function returning a textual
	representation of decompression error codes. Make use of
	Yberr_detail() in lbunzip2.c.

2011-07-30  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix a buffer overflow in yambi decompression code
	Fix a security vulnerability.  A specially crafted compressed file
	could potentially cause a buffer overflow in YBibs_retrieve.

	Some minor optimizations and cleanups:
	 * utilize htonl() and nothl() for (hopefully) faster memory access
	 * remove outdated code that wasn't used anyways
	 * change default values of some yambi tuning parameters
	 * reorder some struct members; move bigger arrays to the end
	 * remove some automatic variables to reduce register pollution

2011-07-30  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix a bug in sorting algorithm implementation
	Fix a bug in main sorting algorithm implementation.

	Fix two different bugs
	Fix a bug in decompression code that was caused by a typo.
	Fix a compatibility issue in yambi/private.h.

2011-07-29  Mikołaj Izdebski  <zurgunt@gmail.com>

	Fix a bug in lbzip2 compresion code
	This commit fixes a bug that was introduced in the previous commit.

	Minor enchancements:
	 * implement --exponential command line switch with the same semantics
	   as bzip2's equivalent
	 * reduce average-case memory consumption in compression mode
	   by about 3.5 MB per worker

	Minor cleanups:
	 * remove unused code
	 * remove whitespaces from end of source code lines
	 * replace some tabs with spaces
	 * correct line indentation
	 * remove bogus __builtin_prefetch'es
	 * remove GPLv2 as now the code in under GPLv3+ only
	 * remove README as it doesn't reflect current code
	 * remove ChangeLog as it was obsoleted by migration to git

2011-07-28  Mikołaj Izdebski  <zurgunt@gmail.com>

	Import a newer version of yambi
	Import a newer version of yambi, which contains compression code.
	Remove libbz2 compatibility layer from yambi.  Modify lbzip2 and lbunzip2
	so that they use yambi's API directly, without the compatibility layer.
	Update Makefiles.  Remove dependency on libbz2.

	Remove lbunzip2_single
	Remove lbunzip2_single, as upcoming sequential decompressor is
	obsoleting it.

2011-07-26  Laszlo Ersek  <lacos@caesar.elte.hu>

	base decompression on newly imported yambi
	Import yambi. Adapt Makefiles and decompression modules.

	import lbzip2-0.23