Precomp

Precomp 0.4.7

Нет прав для скачивания

Shegorat

Lord of Madness
Администратор
Пользователь Shegorat обновил ресурс Precomp новой записью:

Precomp v.0.4.7 [22.02.2019]

Изменения:
  • Merge with the excellent preflate library to support recompression of all zLib streams - thanks to Dirk Steinke
  • Support lzma filters (-lf) for improved compression of executables, audio and structured data (issue #75)
  • Support for zLib streams larger than 2 GB (see issue #65)
  • Changed to CMake for easier builds
  • Fixed crashes when running multiple instances of Precomp in the same directory (see issue #87)
  • Corrected -pdfbmp statistics (see issue #27)...
Узнать больше об этом обновлении...
 

L-e-o-N

Старожил
Я пытаюсь использовать последние precomp 0.46, используя -intense и -brute для обработки файлов, но поскольку это несовместимо ни с IsPrecomp, ни с PrecompInside, он не может показать прогресс в ISDone 0.6 Final. Мой вопрос: есть ли другой способ добиться прогресса во время декомпрессии с помощью этой конкретной версии?

https://github.com/schnaader/precomp-cpp/releases/tag/v0.4.6
На форуме есть библиотека cls-precomp с ней можно использовать новые версии precomp-a в freearc-е. Есть некоторые проблемы (о которых я писал выше), но я пропатчил файлы прекомпа и теперь он работает хорошо. Пропатченные файлы прилагаю. В этом прекомпе НЕВОЗМОЖНО включить упаковку mp3 и сжатие выходных данных (аргумент -c), единственное не понял почему, но не работает в режиме intense (только в режиме brute), однако не стоит волноваться, эта версия работает в этом режиме довольно шустро
 

Вложения

Последнее редактирование:

Mr.Weegley

Новичок
Ошибка -1 unarc.dll

Использую precomp.exe из архива выше для упаковки. кладу его же к распаковке. Использую cls-precomp.dll из того что есть на форуме, где в архиве прекомпы до 0.4.6. Кстати, 0.4.6 из того архива тоже не робит. Распаковывать пытаюсь так:
Код:
        if not SrepInit(ExpandConstant('{app}\'),512,0) then break;
        if not PrecompInit(ExpandConstant('{app}\'),128,PCFVer) then break;
        if not FileSearchInit(false) then break;

        if not ISArcExtract ( 0, 100, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
Ошибка выше. Работает только с той версией что в precompinside :(
Но 0.4.7 даёт лучшее сжатие :( Хочется его. Есть варианты?
 

Mr.Weegley

Новичок
Сейчас попробую.
UPD
Попробовал. Это тот же cls-precomp что и тут.
Использую те прекомпы что в комплекте разных версий.
Прочитал в описании что нужно класть cls-precomp.dll рядом с упаковщиком. Положил.
Код:
Compressed 14 files, 7,688,176 => 2,163,705 bytes. Ratio 28.1%
Compression time: cpu 4.86 secs, real 473.95 secs. Speed 16 kB/s
All OK
8минут на упаковку 7мб :) как то уж очень долго. (Оказалось - из за запуска на внешнем хдд. Запустил на SSD - понятно, всё быстро) Плюс - в этом режиме временная папка создаётся рядом с упаковщиком. cls.ini игнорится. Надо запускать на ССД :( %TEMP%\ не используется :(
И прогресс при упаковке тоже не показывается :(
Версия precomp 0.4.7 вылетает без сообщений об ошибках.
Вроде распаковывается. Ещё бы 0.4.7 прикрутить...
Начал паковать большой объём - вылет при упаковке. А в связи с отсутствием вывода precomp при упаковке - понять изза чего - не получится. Опции precomp задаются библиотекой и изменить их никак нельзя. Итог - остаюсь на Precompinside c версией 0.4.3. Печалька :(
 
Последнее редактирование:

L-e-o-N

Старожил
Сейчас попробую.
UPD
Попробовал. Это тот же cls-precomp что и тут.
Использую те прекомпы что в комплекте разных версий.
Прочитал в описании что нужно класть cls-precomp.dll рядом с упаковщиком. Положил.
Код:
Compressed 14 files, 7,688,176 => 2,163,705 bytes. Ratio 28.1%
Compression time: cpu 4.86 secs, real 473.95 secs. Speed 16 kB/s
All OK
8минут на упаковку 7мб :) как то уж очень долго. (Оказалось - из за запуска на внешнем хдд. Запустил на SSD - понятно, всё быстро) Плюс - в этом режиме временная папка создаётся рядом с упаковщиком. cls.ini игнорится. Надо запускать на ССД :( %TEMP%\ не используется :(
И прогресс при упаковке тоже не показывается :(
Версия precomp 0.4.7 вылетает без сообщений об ошибках.
Вроде распаковывается. Ещё бы 0.4.7 прикрутить...
Начал паковать большой объём - вылет при упаковке. А в связи с отсутствием вывода precomp при упаковке - понять изза чего - не получится. Опции precomp задаются библиотекой и изменить их никак нельзя. Итог - остаюсь на Precompinside c версией 0.4.3. Печалька :(
Я где то выше выкладывал пропатченый precomp 0.4.7 предназначенный для cls-precomp/cls-precompmt попробуй его, он работает только в brute режиме, но довольно шустро (может даже шустрее чем в 0.4.3 в intense режиме), что касается временной папки, то это зависит только от библиотеки. Я лично использую многопоточную cls-precompmt, там где нужен один поток я в cls.ini вручную его указываю, и все работает
 

Mr.Weegley

Новичок
Я где то выше выкладывал пропатченый precomp 0.4.7 предназначенный для cls-precomp/cls-precompmt попробуй его, он работает только в brute режиме, но довольно шустро (может даже шустрее чем в 0.4.3 в intense режиме), что касается временной папки, то это зависит только от библиотеки. Я лично использую многопоточную cls-precompmt, там где нужен один поток я в cls.ini вручную его указываю, и все работает
Сейчас пробую, но
Опции precomp задаются библиотекой и изменить их никак нельзя.
По всей видимости, как раз поэтому прекомп 0.4.7 (патченный) вылетает. Она ему задаёт -intense0
cls-precompmt нашел на fileforums - упаковка малого архива вроде робит. попробую прикрутить распаковку и большой архив. Спасибо за наводку
 
Последнее редактирование:

Mr.Weegley

Новичок
Неа. Пакует 100+, сжатие вроде бы ничего, но спотыкается на распаковке (unarc.dll -1) :(
 

Mr.Weegley

Новичок
Рядом с unarc.dll лежит cls-precomp/cls-precompmt, cls.ini? Какие настройки лежат в cls.ini?
Конечно, всё на месте. В cls.ini всё по умолчанию:
Код:
[CLS]
Threads=75%
Brute=0
Temp=
Спотыкается он на одном и том же месте(в данном случае 37%). Уже вылетело из башки - распаковал ли он тот маленький архив. Может беда из-за того что бОльший паковал не одним потоком. Вчера психанул и удалил папку с тестами мпрекомпа. Сейчас сначала решу проблему с тем что у пары человек выдало на моём репаке ошибку "недостаточно памяти для распаковки". Кстати, паковалось с -ld1024. Может, до 512 убавить? Предыдущий был с -ld512 вопросов не было. Хотя у него там 12гб оперы вроде. В общем, сначала надо пережать, видимо, репак с -ld512, а потом можно продолжить изыскания будет.
Сумбур получился, но просто времени нет нормально сформулировать.

Возможно позже напишу собственный cls фильтр для нового precomp-a
Если бы работало как нонешний precompinside это было бы прям подарком.
 

L-e-o-N

Старожил
Конечно, всё на месте. В cls.ini всё по умолчанию:
Код:
[CLS]
Threads=75%
Brute=0
Temp=
Спотыкается он на одном и том же месте(в данном случае 37%). Уже вылетело из башки - распаковал ли он тот маленький архив. Может беда из-за того что бОльший паковал не одним потоком. Вчера психанул и удалил папку с тестами мпрекомпа. Сейчас сначала решу проблему с тем что у пары человек выдало на моём репаке ошибку "недостаточно памяти для распаковки". Кстати, паковалось с -ld1024. Может, до 512 убавить? Предыдущий был с -ld512 вопросов не было. Хотя у него там 12гб оперы вроде. В общем, сначала надо пережать, видимо, репак с -ld512, а потом можно продолжить изыскания будет.
Сумбур получился, но просто времени нет нормально сформулировать.


Если бы работало как нонешний precompinside это было бы прям подарком.
Дело в строке:
Код:
Temp=
Там должен быть указан существующий путь. У меня на распаковку стоит так:
Код:
Temp=.\
 

L-e-o-N

Старожил
Если бы работало как нонешний precompinside это было бы прям подарком.
К сожалению у меня не хватает ни времени ни знаний, чтобы разбираться как он работает, по этому я сделаю как cls-precomp/cls-precompmt с возможностью задавать разные параметры через freearc (в том числе количество потоков)
 

Mr.Weegley

Новичок
Да лишь бы работало с новым precomp! :)) Я даже разницу не понимаю между cls-precomp и precompinside :)
С путём попробую поэкспериментировать. А количество потоков упаковки/распаковки может влиять на ошибки? Сорян за вопросы, но не нашел про precompmt нормальной темы.
 

L-e-o-N

Старожил
Я даже разницу не понимаю между cls-precomp и precompinside
Precompinside работает подобно утилитам работающим через stdin/stdout, а cls-precomp делит файлы на куски, а затем на каждом куске запускает прекомп, из за чего прогресс-бар может немного скачкообразно работать
 

Mr.Weegley

Новичок
надо ещё покопать в сторону xtool+srep+lolz
Но блин, через 2 недели уезжать на 4 мес :( Уже когда вернусь наверное продолжу изыскания/мучения свои :)
 

Aron

Мимокрокодил
Всем Доброго дня!
Я новичек, поэтому не смог сам решить проблему.
Вопрос такой. Есть ли возможность корректно встроить в FreeArc 0.67, новую версию precomp 0.47,
чтобы она работала втесте со старой версией precomp 0.42 ?
Если тупо заменить precomp042.exe файлом precomp 0.47, переименовав его в precomp042.exe, и немного
поправить параметры в arc.ini, то вроде бы precomp 0.47 работает. Но перестают распаковываться *.arc
файлы упакованные ранее, с использованием precomp 0.42.
Могут ли precomp-ы разных версий существовать вместе, не конфликтуя? Если да, то что нужно поправить
а arc.ini, чтобы все работало?
 

vint56

Ветеран
Проверенный
Код:
[External compressor:precomp047]
header = 0
packcmd   = {compressor} -intense -cn {options} -o$$arcpackedfile$$.tmp  $$arcdatafile$$.tmp
unpackcmd = {compressor} -o$$arcdatafile$$.tmp -r $$arcpackedfile$$.tmp
 
  • Like
Реакции: Aron
Сверху