Цитата: Как результат проведенной работы - забирайте http://www.sharemania.ru/0227103
Возможно, это первая такая попытка собрать вместе все изменения FreeArc.
а можешь дальше это улучшить? во-первых, 0.41-0.43 - это только планы, а не что-то реализованное. во-вторых, вот история версий до 0.20:[more]History
0.01 16.06.04 Option "-r", simple wildcards (?*)
0.02 17.06.04 Added modules FileInfo, MyLib
0.03 18.06.04 Option "-x", grouping filespecs by directory
0.04 19.06.04 New module ArcOptions for options parsing
0.05 19.06.04 Option "-o"
0.06 19.06.04 Filesorting use functions application, FileInfo saves basename and extension
(40.617 files:: ~50 megs, 12 Mreductions, 21 secs (w/o sorting filenames))
( 44 Mreductions, 55 secs ("-oen"))
( 61 Mreductions, 68 secs ("-oen" with strLower))
New module ArcFilelist which returns list of files to archive
fiSize=0!!!
Option "--emptydirs"
0.07 20.06.04 Option "-g" and sorting by group
0.08 20.06.04 Compiling regexprs, FileInfo saves lowercased extension
(40.617 files:: 6 Mreductions, 11 secs (w/o getModificationTime))
( 7 Mreductions, 17 secs (w/o sorting filenames);rar33 - 3.9 secs)
( 43 Mreductions, 55 secs ("-oen" w/o strLower fiBasename))
( 55 Mreductions, 64 secs ("-oen"))
( 191 Mreductions,157 secs ("-ogen"); rar33 - 9.7 secs)
0.09 23.06.04 Archive creation
0.10 25.06.04 Archive extraction
0.11 10.07.04 GHC compatibility
(37.500 files : - 7.39 secs - w/o getModificationTime)
( 160/40 mbytes - 12.46 secs - without sorting)
( 226 mbytes - 15.61 secs - "-ogen")
( 20.00 secs - "-ogen" with getFileSize)
Using stat!
( 75/45 mb 6.98 secs - w/o sorting; rar33 - 6.65 secs, 5 mb)
( 111/52 mb 8.64 sec - "-oen")
( 142/62 mb 10.29 sec - "-ogen"; rar33 - 7.74 secs)
try PackedStrings:
( 400/43 mb 9.33 sec - w/o sorting)
( 519/60 mb 11.14 sec - "-oen")
( 600/60 mb 12.78 sec - "-ogen")
GHCi:
( 148 mb 12.74 sec - w/o sorting)
( 248 mb 18.43 sec - "-oen")
( 673 mb 39.64 sec - "-ogen")
Hugs (now fiSize is real!!!):
( 112mred 1150/37 mb 68.34 sec - w/o sorting)
( 152mred 2133/40 mb 103.69 sec - "-oen")
( 259mred 3377/42 mb 178.42 sec - "-ogen")
0.12 28.07.04 Благодаря хранению fiPathname вместо fiFullname потребность в
памяти снижена в 2-3 раза (15/27/30 mb). При этом программа
даже ускорилась на 10-15% благодаря упрощению сборки мусора
Added "ArchiveFormat" description
0.13 29.07.04 First version that creates archives in Universal Archive Format
0.14 11.08.04 Archive updating + commands "djlvex"
Supports wildcards in archive names for commands "adlvex"
Supports "-r" for recursive archives searching with commands "dlvex"
0.15 17.08.04 Add/extract empty dirs, build paths
Support for multiple datablocks / directory blocks
0.16 29.08.04 Fast I/O via memory buffers, so add/extract with "-m0"
now close to speed of rar/7zip:
Add Extract
Arc: 1.0 3.6 seconds (for 1000 files, 8mb total)
RAR: 0.8 3.0
7z: 0.5 2.3
Removing duplicates from list of files to archive
Proper joining of filelists for updating solid archives
Options --nodata/--nodir, rereads fileinfo before compression
Saves/checks CRC, restores file datetime stamp
Command "t"
0.17 23.09.04 Display progress when working and print statistics when finished
Compress and extracts data using PPMD
0.18 29.09.04 Proper output for commands "l" and "v"
Option -m (-m0..-m5, -m0=ppmd:o6:mem24m - both RAR and 7-zip syntax
Option --dm (compression method for archive directory)
Separate thread for asynchronous files reading with 16 mb read-ahead
To-do:
encodeDirectory(?) - не хватает стёка при обработке 100 тысяч файлов
intellectual file sorting
обновление архивов
извлечение данных из нескольких солид-блоков
Зимние файлы получают неправильное время при распаковке!!
Обработка ошибок!!
Русские имена файлов
избавиться от заголовков datablocks, чтоб быстрее читать оглавление архива
хранить смещение конца блока данных относительно начала блока каталога
fiFullname --> fiNameOnDisk/fiNameInArchive
--basedir=
--recompress/--optimize - распаковать во временный каталог и сжать снова в оптимальном порядке (-o)
поддержка multiple data streams (a-la 7zip)
проверить слияние каталога архива с -on и списка файлов с диска с -oen
doesFileExists/-y
-se;100 - каталоги по расширению, солид-блоки по 100 файлов (-s=zip/arj/cabarc/7zip)
files.bbs
команды m/u/f
опция -jt
[/more]
в третьих, её имхо нет смысла расписывать по каждой версии отдельно - иногда их сменялось несколько в один день. в четвёртых, историю старых версий можно найти в форумах, например
http://forum.compression.ru/viewtopic.php?t=1627 и
http://forum.compression.ru/viewtopic.php?t=2081