Ru-Board.club
← Вернуться в раздел «Программы»

» FreeArc: бесплатный open-source архиватор - Часть 3

Автор: Eric_Allman
Дата сообщения: 31.08.2010 14:17

Цитата:
а unarc.pas - это мусор, который ты забыл стереть?


Да, именно. Выброси его из архива.
Да копирайты зачем, творчество же народное. Но можешь написать Kpa3 )
Кстати, Булат, мне вот уже начинает нравится твой архивер, но он аскетичный очень. Может впоследствии его сделать более дружественным, как WinRar?
Автор: egor23
Дата сообщения: 31.08.2010 14:52
Eric_Allman

Цитата:
Кстати, Булат, мне вот уже начинает нравится твой архивер, но он аскетичный очень. Может впоследствии его сделать более дружественным, как WinRar?


Сделайте красивый архиватор.
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 14:53
Eric_Allman
после выпуска 0.70 именно этим и займусь. а что конкретно ты хотел бы предложить? может, сформулируешь своё видение удобной программы?
Автор: Eric_Allman
Дата сообщения: 31.08.2010 14:56

Цитата:
после выпуска 0.70 именно этим и займусь. а что конкретно ты хотел бы предложить? может, сформулируешь своё видение удобной программы?


Ну, интерфейс, я считаю, требуется диаметрально противоположный текущему. Вообще разработка интерфейса штука тонкая, но можно попробовать сбацать что-нибудь такое, что будет гораздо более безболезненно продвигаться в массы. Я вот помню, как вышел новый винрар 3.0 и выше. И люди плевались, что старыми версиями не могут новые архивы распаковывать. Однако как-то быстро все это забылось.
Заслуга многих популярных программ и утилит - именно интерфейс. Winamp, Winrar.
В данный момент FreeArc напоминает мне freeBSD где не знаешь где и что выставить. На досуге могу попробовать накидать примерную форму. Посмотришь, вдруг потом пригодится.
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 14:57
диаметрально противоположный - это как?
Автор: Eric_Allman
Дата сообщения: 31.08.2010 15:03

Цитата:
диаметрально противоположный - это как?


Ну, менее "сложный", что ли, чем сейчас. В данный момент там будто приборная панель ТУ-154 ) Как-то попроще надо что ли.
Не знаю, стоит ли настаивать на полном drag-n-drop'е. Помню, жестко поимел себе мозг, когда это реализовывал.
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 15:26
из личной переписки:

Цитата:
Добрый день. А когда у Вас намечается выход версии 0.70? На оф. сайте:
"Версия 0.70 (август 2010)
полная поддержка zip, rar, 7z и других архивных форматов"

Как бы завтра уже сенябрь, а версии все нет и нет.
За архиватор спасибо, пользуюсь


думаю сёдня-завтра выпущу rc, а там неделя-две ещё потребуется
Автор: Eric_Allman
Дата сообщения: 31.08.2010 15:29

Цитата:
За архиватор спасибо, пользуюсь


Я с ним столкнулся, когда пересобирал пиратскую сборку Wolfenstein. Буквально на позапрошлой неделе.
Распакованная она весит 5 гб. Запакованная пиратами - 4.3 гиг.
Поначалу ломал голову, ибо 7зип ее ужимал только в 4.7 не менее, а на болванку это не лезло. Вот немного погуглил, наткнулся на freearc ). Зажал им сам, и убедился, что 7zip с задачей не справился.
Автор: egor23
Дата сообщения: 31.08.2010 15:42
Bulat_Ziganshin
офф.сайт помер?
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 15:42
а я как-то на пробу скачал 10 игрушек размеров в 3+ гига с местного трекера и схватился за голову - 8 или 9 из них были упакованы моей программой с разжатием через батники. тут я схватился за голову и принялся писать скрипт под Inno


Цитата:
Не знаю, стоит ли настаивать на полном drag-n-drop'е.

для delphi воообще-то есть http://melander.dk/download/DragDrop20100817.zip - я за минуту d&d сварганил. вот только freearc написан не на delphi..


Цитата:
В данный момент там будто приборная панель ТУ-154 ) Как-то попроще надо что ли.

ясно. надо подтянуть народ вместе чтобы сообразить что сделать. и наверно начать с нуля, отставив все нынешние наработки в сторону

Добавлено:
egor23
авария у хостера, через 15 минут обещают поднять
Автор: qqqbbb
Дата сообщения: 31.08.2010 16:10
первое что отпугнет неопытного юзера это кол-во вкладок и то что они дублируют содержание вкладки main. надо во вкладке main сделать галку advanced mode которая даст доступ к остальным вкладкам.

еще было бы удобно если б окно которое появляется когда сжимаются/разжимаются файлы не менялось в размере и запоминало свое расположение на экране. кнопку continue в этом окне можно переименовать в resume чтобы не было 2 кнопок которые начинаются с одной буквы
Автор: Profrager
Дата сообщения: 31.08.2010 16:12
Bulat_Ziganshin

Цитата:
перед выходом вызывай UnloadDLL

спасибо. Теперь все отлично работает

Eric_Allman
Цитата:
Доставляю страждущим пример распаковки архива на Delphi (используя unarc.dll) с прогрессбаром.
Код не приводил в божеский вид, отдельным юнитом не оформлял, ибо там все просто.

я бы кое-чего добавил/подправил) А то очень сырой код)

Цитата:
В данный момент там будто приборная панель ТУ-154 )

а как по мне, чем больше опций, тем лучше, потому как мне в данный момент их не хватает, потому использую консольный вариант.

Bulat_Ziganshin
Цитата:
вот только freearc написан не на delphi..

тут поможет выпуск freearc.dll
Автор: V2driver
Дата сообщения: 31.08.2010 16:48
Eric_Allman спасибо!
ПС Вы в комплект забыли положить unarc.dll поэтому я боюсь за совместимость.
ПС потестил:
Всё отлично распаковывается, но поумолчанию: Архив для распаковки videos.arc
Когда финальная версия??
Автор: Eric_Allman
Дата сообщения: 31.08.2010 17:24

Цитата:
Когда финальная версия??


Да черт его знает, я тут еще обнаружил странную болячку.
Для этого нужно взять архив побольше, метров на 100, чтоб успевать экспериментировать.

Грузим мой "проект", жмем "распаковать".
Жмем отмену.
Жмем еще раз "распаковать".
И еще раз отмену.

Теперь по нажатию кнопки "распаковать" программа вылетает, будто ей послали Close;

Пока еще не совсем вкурил почему так.

Архив дополнил файлом unarc.dll, всё лежит по старой ссылке.

Добавлено:

Цитата:
я бы кое-чего добавил/подправил) А то очень сырой код)


Дык за ради бога, я даже буду рад, вон в предыдущем моем сообщении уже обнаружился жучок. Хотелось бы сегодня уже прозреть во всех нюансах и закончить с этим.

Добавлено:
Гм... Stack overflow там.
Автор: V2driver
Дата сообщения: 31.08.2010 17:36

Цитата:
Да черт его знает, я тут еще обнаружил странную болячку.
Для этого нужно взять архив побольше, метров на 100, чтоб успевать экспериментировать.

Грузим мой "проект", жмем "распаковать".
Жмем отмену.
Жмем еще раз "распаковать".
И еще раз отмену.

Теперь по нажатию кнопки "распаковать" программа вылетает, будто ей послали Close;

Пока еще не совсем вкурил почему так.


Проверил:
Вылетов небыло!
Ось Win XP sp3 оригинальный образ с оф сайта мелкософтовцев...
unarc.dll с Addons\InnoSetup FreeArc 0.666 (May 20 2010)
файл весом 229мб...


Добавлено:
Eric_Allman
И спасибо за обновлённый архив, щас и на новой Длл проверю..
Автор: Eric_Allman
Дата сообщения: 31.08.2010 17:41
Автор: spectrumist
Дата сообщения: 31.08.2010 18:07
Планируется ли 64х битная версия под linux, и если да, то в какие сроки ?
Автор: Eric_Allman
Дата сообщения: 31.08.2010 19:24
Таки ошибка до сих пор актуальна. При многократном старте/отмене распаковки возникает переполнение стека.

Автор: egor23
Дата сообщения: 31.08.2010 19:34
Eric_Allman
осторожней, забанят
Автор: Eric_Allman
Дата сообщения: 31.08.2010 19:40

Цитата:
осторожней, забанят


Да это ладно, проксей много и впн всяческих. ПРОЕКТ НЕ ПРОЕКТИРУЕТ!!!
Автор: Profrager
Дата сообщения: 31.08.2010 19:45
Eric_Allman
вот моя немного поправленная версия
http://rghost.ru/2498065
с отображением ошибок и т.д.
unarc.dll - последняя версия от Булата, на других работоспособность не проверял
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 19:51

Цитата:
Планируется ли 64х битная версия под linux, и если да, то в какие сроки ?

технически это возможно, но сложно и не очень актуально. может, через несколько лет сделаю

сейчас и на 32-битную версию много нареканий, а я не понимаю, что с ней надо сделать чтобы у всех работало. смысл тратить кучу времени на 64-битку, которая точно также ни у кого не будет работать?


Цитата:
При многократном старте/отмене распаковки возникает переполнение стека.

вероятно у меня такой режим работы просто не был предусмотрен dll-то делалась для распаковки в инсталяторах, а там такого не бывает. исправлю, но по срокам не обещаю

Добавлено:

Цитата:
первое что отпугнет неопытного юзера это кол-во вкладок и то что они дублируют содержание вкладки main. надо во вкладке main сделать галку advanced mode которая даст доступ к остальным вкладкам.

еще было бы удобно если б окно которое появляется когда сжимаются/разжимаются файлы не менялось в размере и запоминало свое расположение на экране. кнопку continue в этом окне можно переименовать в resume чтобы не было 2 кнопок которые начинаются с одной буквы

спасибо, записал
Автор: spectrumist
Дата сообщения: 31.08.2010 19:57
У меня везде ubuntu 64 bit, и тоже очень хочется паковать и распаковывать таким мощным архиватором
Автор: Profrager
Дата сообщения: 31.08.2010 19:58
Bulat_Ziganshin
дело скорее всего не в dll, в моем случае подобного не возникает, раз 15 распаковывал/отменял. Единственное виснет когда быстро нажать распаковать, а потом отмена, но это уж наверняка мой косяк)
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 20:02
spectrumist
пользуйся 32-битной, если так сильно хочется
Автор: spectrumist
Дата сообщения: 31.08.2010 22:29
Мне удалось запустить arc и freearc на 64bit, (unarc работает). Проблема была в том, что он пытался загрузить 64х битную libgmp.so.3, поэтому скачал 32х битную в /lib32, после чего запустились arc и freearc, но freearc при этом отписывает в консоль:


libgvfscommon.so.0: cannot open shared object file: No such file or directory
Failed to load module: /usr/lib/gio/modules/libgvfsdbus32.so
/usr/lib/gio/modules/libgvfsdbus.so: wrong ELF class: ELFCLASS64
Failed to load module: /usr/lib/gio/modules/libgvfsdbus.so
Автор: Bulat_Ziganshin
Дата сообщения: 31.08.2010 22:32
spectrumist
спроси тут
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 00:41
new version:

* 4x4, grzip: reliable error handling
* Addons\LZMA-x64: external LZMA compressor that's compatible with internal one, allowing to use up to lzma:1g:max compression if you have enough RAM and 4x4:lzma for externals' multithreading
* [External compressor:XXX] sections: noheader=0 for external analogs of internal compressors, <stdin> and <stdout> specifiers to work w/o tempfiles
* ArcShellExt: "Archive operations" submenu for arbitrary files, configurable at "Explorer integration" page
* --nodates: don't store filetimes in archive
* unarc.dll: load facompress*.dll from the same directory as unarc.dll and unload them by UnloadDLL() (FreeArcExtract should not be called after UnloadDLL)
* Addons\Delphi: one more example of unarc.dll usage
* Linux: decreased thread priority for all (de)compression threads except for main one



LZMA-x64 readme:

Цитата:
In order to use 64-bit external LZMA (de)compression, add contents of arc-lzma-x64[-filter].ini to arc.ini.
Alternatively, you can use -cfg=arc-lzma-x64[-filter].ini option to change INI file for one command.

Please note that ini files provide multitude of command settings, from file-to-file to stdin-to-stdout mode.
With GUI FreeArc.exe, you can use only file-to-file mode as configured in arc-lzma-x64.ini.
With console Arc.exe, you can use any mode, including the most efficient one,
stdin-to-stdout mode as configured in arc-lzma-x64-filter.ini.

Also mention that lzma-freearc-x64.exe supports only subset of the FreeArc LZMA codec parameters.
Run lzma-freearc-x64.exe without parameters to see the list of options supported.

Usage examples:

FreeArc.exe create archive -cfg=arc-lzma-x64.ini -m=lzma:d1g -t
Arc.exe create archive -cfg=arc-lzma-x64-filter.ini -m=lzma:d1g -t
Arc.exe create archive -cfg=arc-lzma-x64-filter.ini -m=rep:1g+exe+delta+4x4:b64m:lzma:d64m


More examples of external compressors taking benefits of <stdin> or <stdout> support:

Код: [External compressor:bcj2]
mem = 50
packcmd = 7za a -m0=BCJ2 -mmt=on -si $$arcpackedfile$$.7z <stdin>
unpackcmd = 7za e -si -so $$arcpackedfile$$.7z <stdout>
packedfile = $$arcpackedfile$$.7z

[External compressor:srep]
;options = l%d (minimal match length, default=512)
packcmd = srep {options} $$arcdatafile$$.tmp - <stdout>
unpackcmd = srep -d - $$arcdatafile$$.tmp <stdin>

[External compressor:slugx]
cmem = 260
dmem = 130
packcmd = {compressor} c <stdin> : <stdout> :
unpackcmd = {compressor} d <stdin> : <stdout> :
Автор: Profrager
Дата сообщения: 01.09.2010 07:33
Bulat_Ziganshin

Цитата:
LZMA-x64 readme

не ожидал так скоро) круто круто) А я то думаю для чего эта папочка LZMA-x64 в сорцах была..) Особенно порадовало, что теперь поддерживаются <stdin> и <stdout>..кстати можно же было бы сделать и для GUI варианта такое.. Мой винт теперь будет доволен меньше на него темп-файлов будут скидывать)

Добавлено:

Цитата:
external LZMA compressor that's compatible with internal one
т.е. распаковывать можно будет обычными средствами freearc'а? Без lzma-freearc-x64.exe?
Автор: Bulat_Ziganshin
Дата сообщения: 01.09.2010 10:03

Цитата:
т.е. распаковывать можно будет обычными средствами freearc'а? Без lzma-freearc-x64.exe?

да, конечно. собственно что я сделал:

1. откомпилял пример из lzma sdk 64-битным icl'ем (и запатчил под amd)
2. убрал из него немного лишнего чтобы формат сжатых данных был как у моего внутреннего lzma (нормальный lzma.exe из SDK записывает 13 байт параметров в начало сжатого файла, у меня они хранятся в оглавлении архива)
3. добавил поддержку header=0 в FreeArc - с этой настройкой он не записывает доп. заголовок перед данными, сжатыми этим внешним компрессором
4. добавил <stdin> и <stdout> как обозначения того, что данная команда читает данные с stdin или пишет результат на stdout. к сожалению, в гуишном FreeArc.exe это почему-то не работает, я постараюсь разобраться
5. если команда использует и <stdin> и <stdout>, то её stderr скрывается, так что на экране не остаётся вообще никакого мусора - всё точь-в-точь как при использовании внутренних алгоритмов

в результате теперь при наличии достаточного объёма ОЗУ можно использовать lzma-x64 для сжатия со словарём 512-1024 мб в макс. режиме. или использовать 4x4:lzma на пару десятков гиг. и всё это будет распаковываться встроенным lzma - если хватит 32-битной памяти. а можно и внешним, в режиме фильтра временных файлов всё равно не будет

что можно сделать ещё: внешний lzma должен воспринимать все те же параметры, что и внутренний, подчиняться всей той же механике ограничения памяти/словаря и вызываться автоматом для солид-блоков размером, скажем, от 50 мб. тогда пользователь сможет вообще не замечать - внутренний там алгоритм или внешний

кстати, интересно сравнить с тем, что в планах партии было записано:

Цитата:
Compressor: лучше всего для толстых алгоритмов использовать внешние компрессоры. уже сейчас можно взять compressor.exe и использовать его подобным образом. в будущем же compressor будет совместим по формату данных с внутренними алгоритмами так, что к примеру можно будет упаковать внешним lzma со словарём в 1 гиг, а распаковывать внутренним. понятно, будут 32 и 64-разрядные версии, причём компилироваться они будут ICC, что увеличит скорость на 10-20%. fa будет автоматом соображать хватит ли ему наличной памяти для выполнения операции или лучше отдать её на откуп внешней программе. fa научится работать с внешними упаковщиками через stdin/stdout, что позволит использовать их так же удобно, как и внутренние алгоритмы - никакой записи на диск пормежуточных данных, актуальный индикатор прогресса и т.д.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Opera (часть 14)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.