-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
541 lines (438 loc) · 18.2 KB
/
ChangeLog
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
2024-10-20 Konstantin Kushnir <chpock@gmail.com>
* RELEASE TAG 1.9.0
2024-10-20 Konstantin Kushnir <chpock@gmail.com>
* Improve statibility to thread tests
2024-10-19 Konstantin Kushnir <chpock@gmail.com>
* Add attributes for files / dirs / VFS root
* Add ::cookfs::sha256 command if c-crypto is enabled
2024-10-17 Konstantin Kushnir <chpock@gmail.com>
* Use the compsize / uncompsize keys in pages info
2024-10-16 Konstantin Kushnir <chpock@gmail.com>
* Add support for -metadata for VFS root attributes
* Add support for -pages for VFS root attributes
* Store pagesize/smallfilesize/smallfilebuffer properties as fsindex
metadata and use these values after reopening
2024-10-13 Konstantin Kushnir <chpock@gmail.com>
* Cleanup sources
2024-10-12 Konstantin Kushnir <chpock@gmail.com>
* Add a fileset feature to VFS
* Allow to link with zlib directly (without Tcl layer)
* Allow to link with mbedtls and use its crypto functions
* Allow to build without Tcl callbacks
2024-10-10 Konstantin Kushnir <chpock@gmail.com>
* Add a fileset feature to fsindex
2024-10-09 Konstantin Kushnir <chpock@gmail.com>
* Refactor tests
2024-10-03 Konstantin Kushnir <chpock@gmail.com>
* Improve deduplication. Detect adding a file with the same contents
and using previously allocated disk space.
2024-09-15 Konstantin Kushnir <chpock@gmail.com>
* Fix a bug with opening local files when their path starts as a VFS mount
point
* Equalize error messages for decryption failures, as different error
messages led to flaky test
* Fix 'glob' on mounted volumes like 'mount:/'
* Improve thread stability by fixing possible double frees
2024-09-14 Konstantin Kushnir <chpock@gmail.com>
* Fix -eofchar issue on Windows and Tcl 9.0b3
2024-09-09 Konstantin Kushnir <chpock@gmail.com>
* Fix compatibility with Tcl 9.0b3
2024-09-07 Konstantin Kushnir <chpock@gmail.com>
* Refactor threads tests to make them more reliable
* Fix possible deadlock
2024-08-23 Konstantin Kushnir <chpock@gmail.com>
* Fix a bug where mounting an archive with an invalid password in
read-write mode did not return an error
2024-08-05 Konstantin Kushnir <chpock@gmail.com>
* Fix build on Windows (MINGW64) with internal debugging enabled
* Add tests for gethead/getheadmd5/gettail/gettailmd5
* Fix gethead/gettail on memory mapped files
* Fix memleaks for getheadmd5/gettailmd5
2024-08-04 Konstantin Kushnir <chpock@gmail.com>
* Use memory-mapped file for readonly mounts
2024-08-03 Konstantin Kushnir <chpock@gmail.com>
* Fix build on Windows 32-bit with Tcl9
2024-07-29 Konstantin Kushnir <chpock@gmail.com>
* Fix build error in some environments when brotli is enabled
2024-07-27 Konstantin Kushnir <chpock@gmail.com>
* Fix the build for Tcl9 and with --enable-internal-debug
2024-07-27 Konstantin Kushnir <chpock@gmail.com>
* Bumped version to 1.9.0
2024-07-27 Konstantin Kushnir <chpock@gmail.com>
* RELEASE TAG 1.8.0
2024-07-26 Konstantin Kushnir <chpock@gmail.com>
* Add C API for mounting cookfs with parameters
2024-07-25 Konstantin Kushnir <chpock@gmail.com>
* Add support for encryption
* Add MD5 validation for pgindex/fsindex data
* Add MD5 validation for pages
* Add CI configuration with --disable-c-crypto
2024-07-20 Konstantin Kushnir <chpock@gmail.com>
* Refactor storage format
2024-07-08 Konstantin Kushnir <chpock@gmail.com>
* Add procedures for AES encryption/decryption
* Rename crypt->crypto
2024-07-07 Konstantin Kushnir <chpock@gmail.com>
* Add basic cryptographic functions
* Add 1 test case for threads
2024-06-23 Konstantin Kushnir <chpock@gmail.com>
* Bumped version to 1.8.0
2024-06-23 Konstantin Kushnir <chpock@gmail.com>
* RELEASE TAG 1.7.0
2024-06-23 Konstantin Kushnir <chpock@gmail.com>
* Add support for brotli compression
* Refactor code
2024-06-21 Konstantin Kushnir <chpock@gmail.com>
* Refactor compression functions
2024-06-20 Konstantin Kushnir <chpock@gmail.com>
* Add support for Zstandard compression
* Use resonable default compression levels
2024-06-19 Konstantin Kushnir <chpock@gmail.com>
* Add support for specifying the compression level
* Add minor fixes to documentation according to recent changes
* Fix possible crash with malformed archives
2024-06-18 Konstantin Kushnir <chpock@gmail.com>
* Add multi-threading support
2024-06-07 Konstantin Kushnir <chpock@gmail.com>
* Improve error handling
* Thread support preparation: eliminate Tcl_Obj usage for paths
* Thread support preparation: eliminate Tcl_Obj usage for vfs
* Thread support preparation: eliminate Tcl_Obj usage for fsindex metadata
2024-06-07 Konstantin Kushnir <chpock@gmail.com>
* Thread support preparation: eliminate Tcl_Obj usage by pages object
2024-06-06 Konstantin Kushnir <chpock@gmail.com>
* Bumped version to 1.7.0
2024-06-06 Konstantin Kushnir <chpock@gmail.com>
* RELEASE TAG 1.6.0
2024-06-03 Konstantin Kushnir <chpock@gmail.com>
* Provide proper operation between interps for c-vfs
* Fix a bug with unmounting volumes
2024-06-02 Konstantin Kushnir <chpock@gmail.com>
* Don't allow deleting pages/fsindex that are in use
* Optimize c-readerchannel
* Add a full-featured mount command for use from C
* Fix debug build on 32-bit platforms
2024-06-01 Konstantin Kushnir <chpock@gmail.com>
* Add in-memory vfs feature
* Change XZ format to plain LZMA
* Remove sha1/sha256 hash functions
* Add a simple mount command for use from C
2024-05-31 Konstantin Kushnir <chpock@gmail.com>
* Fix build and tests for Windows platform
* Add support for attributes
* Fix build with --disable-xz
2024-05-30 Konstantin Kushnir <chpock@gmail.com>
* Fix multiple memory leaks
* Add feature to build without Tcl commands
* Add support for Tcl 9.0
* Treat compiler warnings as errors
2024-05-29 Konstantin Kushnir <chpock@gmail.com>
* Fix a regression when register volume and unregister with vfs::unmount
* Add memory leak hunter to tests
2024-05-28 Konstantin Kushnir <chpock@gmail.com>
* Add cppcheck
2024-05-27 Konstantin Kushnir <chpock@gmail.com>
* Fix a bug when deleting the last entry from small file buffer
* Add support for optimize list command for c-vfs
2024-05-26 Konstantin Kushnir <chpock@gmail.com>
* Add tests for writer
* Fix build without c-pages, but with c-fsindex
* Add the ability to detect truncated archives
* Replace all memory related API to debug-enabled
* Optimize block statistics in fsindex
2024-05-25 Konstantin Kushnir <chpock@gmail.com>
* Add support for writer in C
2024-05-21 Konstantin Kushnir <chpock@gmail.com>
* Add support for vfs in C
* Make the writer object available for C functions
* Make the ::cookfs::Unmount command preferred over vfs::unmount
* Make the ::cookfs::Unmount command accept both fsid and mount point
* Update 7z lib (xz/lzma2 support) from 23.01 to 24.05
* Fix compiler warnings in --enable-internal-debug mode
* Add a presentation from the original authors
* Add multiple configurations to github workflows
* Fix clang compiler warnings
2024-05-18 Konstantin Kushnir <chpock@gmail.com>
* Provide successful operation when tcl files unavailable. CookFS should
work when readerchannel.tcl memchan.tcl pages.tcl fsindex.tcl unavailable,
but C module contains all required functionality.
* Return Tcl error from writer when closing a channel
* Refactor internal names for procedures/objects
2024-05-17 Konstantin Kushnir <chpock@gmail.com>
* Add support for c-writerchannel. This removes the dependency on vfs::memchan and improves memory utilization/performance
2024-05-15 Konstantin Kushnir <chpock@gmail.com>
* Refactor Tcl/C code
* Add support for changecount subcommand for fsindex
* Add support for import subcommand for fsindex (undocumented)
2024-05-10 Konstantin Kushnir <chpock@gmail.com>
* Make pkgconfig.tcl file optional, implement it in C
2024-05-06 Konstantin Kushnir <chpock@gmail.com>
* Bumped version to 1.6.0
* Fix undefined behaviour
2024-05-05 Konstantin Kushnir <chpock@gmail.com>
* RELEASE TAG 1.5.0
2024-05-04 Konstantin Kushnir <chpock@gmail.com>
* Fix build error when c-pages is disabled
* Use crc32 hash in tcl-pages by default. This removes the mandatory md5 package requirement.
* Fix random test errors for cookfsVfs-1.9 because the file time is set to the current time and it will differ by a few seconds when the file is created
* Optimize compiler/linker flags
* Fix locked files during tests
* Add a makefile recipe for generating documentation
* Add a smart cache feature
* Add README
* Fix missing file pkgconfig.tcl
2024-05-03 Konstantin Kushnir <chpock@gmail.com>
* Fix missed quotes in pages.test
2024-04-29 Konstantin Kushnir <chpock@gmail.com>
* Don't install binaries before test/shell/gdb make recipes
* Fix the make recipes test/shell/gdb
* Add the make recipe 'package'
* Make tests fail with an error on unsuccessful run
* Detect tclsh correctly on Windows platform
* Add Github workflow
* Enable xz feature by default
2024-04-06 Konstantin Kushnir <chpock@gmail.com>
* Add basic benchmarks
* Add a function to fsindex to find out how many files are using a particular block
2024-04-01 Konstantin Kushnir <chpock@gmail.com>
* Fix the build when xz is not enabled
* Fix potential buffer overflow
2024-03-31 Konstantin Kushnir <chpock@gmail.com>
* Search for cookfs index in the last 64k bytes of a file
2024-03-30 Konstantin Kushnir <chpock@gmail.com>
* Fix positioning bug in readerchannel
2024-03-29 Konstantin Kushnir <chpock@gmail.com>
* Add procedures for md5/sha1/sha256 hashes
* Fix minor compiler warnings
2024-03-24 Konstantin Kushnir <chpock@gmail.com>
* Fix pkgconfig for xz feature status
* Don't load tcl versions of ::pages and ::fsindex by default
* Don't use xz compression when it is inefficient
* Add tests for all compression methods
2024-03-23 Konstantin Kushnir <chpock@gmail.com>
* Set compression level 9 for xz
* Make test cookfsVfs-1.9 more verbose as it fails randomly
2024-03-17 Konstantin Kushnir <chpock@gmail.com>
* Refactor tests to not depend on source files
2024-03-14 Konstantin Kushnir <chpock@gmail.com>
* Bumped minimum Tcl version to 8.5.0
* Enable compiler warnings
* Fix minor issues from compiler warnings
2024-03-14 Konstantin Kushnir <chpock@gmail.com>
* Add support for xz compression and use it by default
2012-05-22 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/writer.tcl: Use [array startsearch]/[array next]/[array anymore] instead of [array get] to package small files - reduces memory usage
2012-03-12 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added support for dataoffset command to return offset to specific pages
* generic/pages.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* tests/pages.test:
2012-02-28 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added more verbose error information to cookfs
* generic/pages.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* tests/vfs.test:
* tests/pages.test:
2011-12-20 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added support for getting currently set compression using pages and mount command
* generic/pagesCompr.c:
* generic/pages.h:
* generic/pagesCompr.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* scripts/cookvfs.tcl:
* tests/vfs.test:
* tests/pages.test:
2011-12-15 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Added support for changing compression on the fly in VFS layer
* scripts/pages.tcl:
* tests/common.tcl:
* tests/vfs.test:
2011-12-14 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added option to change compression on the fly
* generic/pages.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* tests/pages.test:
2011-12-07 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added support for -alwayscompress flag
* generic/pagesCompr.c:
* generic/pages.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* tests/pages.test:
2011-12-04 Wojciech Kocjan <zoro2@users.sourceforge.net>
* configure: Bumped version to 1.3.2
* configure.in:
* scripts/vfs.tcl:
* scripts/pages.tcl:
* scripts/fsindex.tcl:
* scripts/optimize.tcl:
* scripts/memchan.tcl:
* scripts/cookvfs.tcl:
* scripts/readerchannel.tcl:
* scripts/writer.tcl:
* pkgconfig.tcl.in:
* doc/cookfs_pages.n:
* doc/cookfs_fsindex.n:
* doc/cookfs.n:
* doc/cookfs_pages.html:
* doc/cookfs_fsindex.html:
* doc/cookfs.html:
* doc/cookfs_pages.man:
* doc/cookfs_fsindex.man:
* doc/cookfs.man:
2011-11-29 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/pages.tcl: Fix for bug in pure Tcl and Tcl 8.4 on Windows
2011-11-22 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/vfs.tcl: Fix delete operation working properly for pure Tcl and C implementations
* tests/vfs.test:
2011-11-22 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/fsindex.tcl: Fix for utime command handling in pure Tcl version
* tests/fsindex.test:
* scripts/vfs.tcl:
Release 1.3.1
2011-09-22 Wojciech Kocjan <zoro2@users.sourceforge.net>
* configure: Bumped version to 1.3.1
* configure.in:
* pkgconfig.tcl.in:
* scripts/vfs.tcl:
* scripts/pages.tcl:
* scripts/fsindex.tcl:
* scripts/optimize.tcl:
* scripts/memchan.tcl:
* scripts/cookvfs.tcl:
* scripts/readerchannel.tcl:
* scripts/writer.tcl:
* doc/cookfs_pages.n:
* doc/cookfs_fsindex.n:
* doc/cookfs.n:
* doc/cookfs_pages.html:
* doc/cookfs_fsindex.html:
* doc/cookfs.html:
* doc/cookfs_pages.man:
* doc/cookfs_fsindex.man:
* doc/cookfs.man:
2011-09-21 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/readerchannel.c: Fixed issue with [load] command not working properly with C-based readerchannel
* generic/readerchannelIO.c:
* generic/readerchannelIO.h:
* scripts/vfs.tcl:
2011-09-13 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Rework of C code after feedback from Andreas Kupries regarding compiling on various platforms
* generic/pagesCompr.c:
* generic/readerchannelIO.c:
* generic/fsindexIO.c:
2011-08-22 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Added -nodirectorymtime to support recreating same archive over time
* scripts/vfs.tcl:
2011-06-06 Wojciech Kocjan <zoro2@users.sourceforge.net>
* configure: Change version to 1.3, add support for filesize and smallbuffersize commands to pages and vfs handle
* configure.in:
* scripts/vfs.tcl:
* scripts/pages.tcl:
* scripts/fsindex.tcl:
* scripts/optimize.tcl:
* scripts/memchan.tcl:
* scripts/cookvfs.tcl:
* scripts/readerchannel.tcl:
* scripts/writer.tcl:
* pkgconfig.tcl.in:
* tests/vfs.test:
* tests/pages.test:
* doc/cookfs_pages.n:
* doc/cookfs_fsindex.n:
* doc/cookfs.n:
* doc/cookfs_pages.html:
* doc/cookfs_fsindex.html:
* doc/cookfs.html:
* doc/cookfs_pages.man:
* doc/cookfs_fsindex.man:
* doc/cookfs.man:
* generic/pages.c:
* generic/pages.h:
* generic/pagesCmd.c:
2011-06-02 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/writer.tcl: Added code to detect duplication of small files, initial version (only entire files duplicated)
* tests/vfs.test
2011-05-28 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/pages.tcl: Added finding endoffset in last 4kB of file -endoffset if not specified
* generic/pages.c:
* tests/pages.test: Test cases for finding endoffset
2011-05-23 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pagesCompr.c: Added support for using [zlib] command for (de)compressing zlib based pages
* scripts/pages.tcl:
* generic/pages.c:
* generic/pages.h:
2011-05-05 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added [$pages cachesize] command to allow modifying cache size
* generic/pages.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* scripts/cookvfs.tcl: Change cache size if -pagesobject passed when mounting
* tests/pages.test: Tests for [$pages cachesize]
* tests/common.tcl:
2011-04-08 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/pages.tcl: Added support for [$pages dataoffset] in pure Tcl version
* tests/pages.test: Test cases for [$pages dataoffset]
2011-03-31 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Added writeFiles subcommand to allow direct writing to cookfs archive
* doc/cookfs.n:
* doc/cookfs.html:
* doc/cookfs.man:
2011-03-20 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Properly handle mounting as volume if -volume option is specified
* tests/vfs.test:
2011-03-20 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Fix in -setmetadata not being stored if being only operation
* tests/vfs.test:
2011-03-18 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Added -setmetadata to Mount command; used to set metadata when mounting, for tools such as tabs
* tests/vfs.test:
* doc/cookfs.n:
* doc/cookfs.html:
* doc/cookfs.man:
2011-03-18 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/cookvfs.tcl: Added -fsindexobject to Mount command; used by cookit to retrieve metadata before mounting binary
* tests/vfs.test:
* doc/cookfs.n:
* doc/cookfs.html:
* doc/cookfs.man:
2011-03-14 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Changed a+ mode for writing to {RDWR CREAT} to prevent [tell] reporting incorrect location after writing index when using Tcl 8.4 on Windows
* scripts/pages.tcl:
2011-03-11 Wojciech Kocjan <zoro2@users.sourceforge.net>
* doc/cookfs.man: Updated documentation for internal hash/pagehash method
* doc/cookfs_pages.man:
* doc/cookfs.html:
* doc/cookfs_pages.html:
* doc/cookfs.n:
* doc/cookfs_pages.n:
2011-03-11 Wojciech Kocjan <zoro2@users.sourceforge.net>
* configure.in: Changed internal debugging so it is enabled at build time rather than just #if 0 / #if 1
* configure:
* generic/cookfs.h:
2011-03-10 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Added support for crc32 as alternate checksum algorithm
* generic/pagesCompr.c:
* generic/pages.h:
* generic/pagesCmd.c:
* scripts/pages.tcl:
* scripts/cookvfs.tcl:
* tests/vfs.test:
* tests/pages.test:
2011-03-10 Wojciech Kocjan <zoro2@users.sourceforge.net>
* scripts/fsindex.tcl: Support for metadata in pure Tcl version of cookfs
* configure:
* configure.in:
2011-02-21 Wojciech Kocjan <zoro2@users.sourceforge.net>
* generic/pages.c: Cookfs index not updated if no changes to pages are made
* generic/pages.h:
* scripts/pages.tcl:
* scripts/writer.tcl:
* tests/vfs.test:
* tests/pages.test
2011-01-31 Wojciech Kocjan <zoro2@users.sourceforge.net>
* Started logging changes