forked from kjn/lbzip2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathChangeLog
More file actions
922 lines (601 loc) · 26.4 KB
/
Copy pathChangeLog
File metadata and controls
922 lines (601 loc) · 26.4 KB
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