FreeArc Fork

Shegorat

Lord of Madness
Администратор
@Edison007, только что проверил
Код:
Z:\FreeArc>Arc a -r --dirs -s; -ep1 -di=acmwfdte# -i2 --logfile=farc.log -lc- -dm=lzma:a1:ht4:8mb:lc1:lp0:pb0:fb64 --cache=128mb --append -w.\ -ds=ens -m=4x4:r0:b8mb:lzma:d8m data3.arc packeddata\*
FreeArc 0.67.1 (March 07 2021) Creating archive: data3.arc using 4x4:b8mb:r0:lzma:8mb:normal:32
Memory for compression 380mb, decompression 17mb, cache 128mb
Started: 0.00 sec
Compressing 1 file of 331,957,042 bytes: 0.00 sec
  Using 4x4:b8mb:r0:lzma:8mb:normal:32
  Memory for compression 380mb, decompression 17mb
  Solid block compression results (112.281 seconds)
    4x4:b8mb:r0:lzma:8mb:normal:32: 102,868,005 bytes in 0.078 seconds

  Writing directory: 10.39 sec
  Found 1 directory names: 10.39 sec
  Directory written: 10.39 sec
Compressed 1 file, 331,957,042 => 102,868,005 bytes. Ratio 30.99%        
Compression time: cpu 112.28 sec/real 10.39 sec = 1080%. Speed 31.94 mB/s
All OK
Код:
Z:\FreeArc>Arc a -r --dirs -s; -ep1 -di=acmwfdte# -i2 --logfile=farc.log -lc- -dm=lzma:a1:ht4:8mb:lc1:lp0:pb0:fb64 --cache=128mb --append -w.\ -ds=ens -m=4x4:r0:b8mb:mdt4:lzma:d8m data3.arc packeddata\*
FreeArc 0.67.1 (March 07 2021) Creating archive: data3.arc using 4x4:mdt4:b8mb:r0:lzma:8mb:normal:32
Memory for compression 380mb, decompression 17mb, cache 128mb
Started: 0.00 sec
Compressing 1 file of 331,957,042 bytes: 0.01 sec
  Using 4x4:mdt4:b8mb:r0:lzma:8mb:normal:32
  Memory for compression 380mb, decompression 17mb
  Solid block compression results (112.281 seconds)
    4x4:mdt4:b8mb:r0:lzma:8mb:normal:32: 102,868,005 bytes in 0.047 seconds

  Writing directory: 10.35 sec
  Found 1 directory names: 10.35 sec
  Directory written: 10.35 sec
Compressed 1 file, 331,957,042 => 102,868,005 bytes. Ratio 30.99%          
Compression time: cpu 112.28 sec/real 10.36 sec = 1084%. Speed 32.04 mB/s
All OK

P.S. Arc.exe -- SHA-1 D3D061B1F185C1DE600977B64866DFE6D48CCBFE

Смотри где у тебя конфликт. Возможно со старыми facompress*
 
Последнее редактирование:

Edison007

Ветеран
Модератор
По хэшу совпадает, вычислил, что не работает с опцией -i2, с i1 - нормально, очень непонятное поведение. И по поводу опции mtd, а она для unarc.exe/dll как обрабатывается?
 

Edison007

Ветеран
Модератор
В общем понятно. Если в сжимаемом файле есть русские символы и использовать опцию i2, то тогда такая ошибка вылазит. Видимо arc.exe пытается вывести в консоль имя файла, но что-то мешает
 

Shegorat

Lord of Madness
Администратор
В общем понятно. Если в сжимаемом файле есть русские символы и использовать опцию i2, то тогда такая ошибка вылазит. Видимо arc.exe пытается вывести в консоль имя файла, но что-то мешает
Понял, принял. Проблема с кодировкой в консоли

И по поводу опции mtd, а она для unarc.exe/dll как обрабатывается?
Так же, как и для arc.exe ограничивает количество потоков при распаковки, по сути mdt == max_decompression_threads
А потом уже вступает механизм -ld, который может зарезать до 1-го потока
 
Последнее редактирование:

Edison007

Ветеран
Модератор
Так же, как и для arc.exe ограничивает количество потоков при распаковки, по сути mdt == max_decompression_threads
А потом уже вступает механизм -ld, который может зарезать до 1-го потока
Я немного не о том) внутри 4x4 и так была опция, которая контролировала кол-во потоков, но только для упаковки. Я же в свою очередь просил опцию, которую можно было бы указать unarc.exe. По типу: unarc.exe x -dpUnpacked -w.\_TEMP\ -o+ -mtd1 data3.arc
 

Shegorat

Lord of Madness
Администратор
@Edison007, ты вполне ясно выразился, что опция нужна для 4x4
3. Опция, которая указывала бы для 4х4 в момент распаковки сколько потоков использовать.
Я сделал опцию для 4x4 которая ограничивает количество тредов при распаковке

Сейчас ты говоришь совсем о другом. А именно опция наподобие -lc/-ld, которая бы контролировала общее количество потоков при распаковке.
Для этого надо куда больше времени, т.к. надо добавить поддержку в интерфейсы (сейчас не все алгоритмы реализуют многопоток)
 

Edison007

Ветеран
Модератор
Да, немного недопонимания)
Я сделал опцию для 4x4 которая ограничивает количество тредов при распаковке
Всё так, но в момент распаковки никак не выйдет что-то указать в цепочку сжатия, поэтому я думал очевидным, что нужно выносить опцию.
 

Shegorat

Lord of Madness
Администратор
Всё так, но в момент распаковки никак не выйдет что-то указать в цепочку сжатия, поэтому я думал очевидным, что нужно выносить опцию.
Просто такая опция будет иметь эффект на всё приложение.
Есть определенная иерархия опций и параметров, и нужно понимать что опции архиватора имеют больший приоритет, нежели опции алгоритма
 

Ele

Новичок
@Shegorat
Is there a way to add support for splitting the current archive, especially when using groups (masks)? As a new CLS file or as an internal method...
 

zettend

Старожил
Стоит использовать прямо сейчас либу? Без всяких препроцессоров и прочего, просто голый FreeArc?
И сядет ли либа без проблем на ISFreeArcExtract?
 

Shegorat

Lord of Madness
Администратор
Стоит использовать прямо сейчас либу? Без всяких препроцессоров и прочего, просто голый FreeArc?
Сейчас билд полностью совместим со старыми версиями. Единственный конфликт может быть с facompress.dll, т.к. там есть функция вычисления CRC32, которая может экспортироваться.
 

sergey3695

Ветеран
Модератор
@Shegorat, при попытке распаковать пустой файл с именем архива (создать файл, переименовать в архив) вешается основной поток, -14 сообщение есть (fa_callback(error, -14, 0, ERROR: this is not FreeArc archive or this archive is corrupt)), но дальше почему-то что-то опять пошло ни так (еще один бесконечный луп походу).

изображение_2021-07-06_030958.png
 

Shegorat

Lord of Madness
Администратор
@sergey3695, А если файл не пустой, но не архив?
Вообще это фишка, когда можно добавить к sfx/exe архив, и unarc пробегает по файлу, проверяет сигнатуру FA архива.
unarc.exe так же виснет?
 
Сверху