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

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

Автор: SCINER
Дата сообщения: 19.12.2007 23:56
Все сделал. Но Arc.exe в директории Tests не появляется =(
В чем интересно дело?
Может из-за того, что там нет файла Utils.hs.
Но почему его нет?
Там вообще только 9 файлов. А я так думаю, что должно быть 25?

Вот завершение компиляции:

Цитата:
E:\fa0404|► ghc.exe --make Arc.hs -iCompression -threaded -cpp -fglasgow-exts -fallow-undecidable-instances -fallow-overlappin
g-instances -fallow-incoherent-instances -fno-monomorphism-restriction -fbang-patterns -DFREEARC_PACKED_STRINGS -DFREEARC_WIN -D
FREEARC_INTEL_BYTE_ORDER -optc-DFREEARC_WIN -optc-DFREEARC_INTEL_BYTE_ORDER C:\temp\out\FreeArc/Environment.o C:\temp\out\FreeAr
c/URL.o C:\temp\out\FreeArc/CompressionLibrary.o C:\temp\out\FreeArc/C_PPMD_Parser.o C:\temp\out\FreeArc/C_PPMD_Compress.o C:\te
mp\out\FreeArc/C_PPMD_Decompress.o C:\temp\out\FreeArc/C_LZP.o C:\temp\out\FreeArc/C_LZMA.o C:\temp\out\FreeArc/C_BCJ.o C:\temp\
out\FreeArc/C_GRZip.o C:\temp\out\FreeArc/C_Dict.o C:\temp\out\FreeArc/C_REP.o C:\temp\out\FreeArc/C_MM.o C:\temp\out\FreeArc/C_
TTA.o C:\temp\out\FreeArc/C_Tornado.o C:\temp\out\FreeArc/C_Delta.o C:\temp\out\FreeArc/C_External.o C:\temp\out\FreeArc/C_Encry
ption.o -lstdc++ -lwininet C:\Base\Compiler\ghc\gcc-lib\CRT_noglob.o -optl -s -optl --large-address-aware -odir C:\temp\out\Free
Arc -hidir C:\temp\out\FreeArc -o Tests\Arc.exe +RTS -A10m -H50m -M300m
[ 1 of 25] Compiling UTF8Z ( UTF8Z.hs, C:\temp\out\FreeArc/UTF8Z.o )
[ 2 of 25] Compiling CompressionLib ( Compression/CompressionLib.hs, C:\temp\out\FreeArc/CompressionLib.o )
[ 3 of 25] Compiling Process ( Process.hs, C:\temp\out\FreeArc/Process.o )
[ 4 of 25] Compiling FilePath ( FilePath.hs, C:\temp\out\FreeArc/FilePath.o )
[ 5 of 25] Compiling Utils ( Utils.hs, C:\temp\out\FreeArc/Utils.o )

Utils.hs:214:2:
Ambiguous occurrence `forever'
It could refer to either `Utils.forever', defined at Utils.hs:212:0
or `Control.Monad.forever', imported from Control.Monad at Utils.hs:11:0-19

Автор: Bulat_Ziganshin
Дата сообщения: 20.12.2007 01:13

Цитата:
Ambiguous occurrence `forever'


вероятно, ты установил ghc 6.8, а не 6.6.1 как я. либо поставь старую версию, либо замени этот ид-р во всей программе на другой

и ещё: для получения листинга архива лучше использовать unarc - это быстрее. формат вызова можно найти в настройках для TC
Автор: PAQer
Дата сообщения: 20.12.2007 12:49
euheny
Булат наверно имел ввиду, что это "реальная альтернатива rar и 7-zip" для людей, которые серьёзно интересуются архиваторами как таковыми.
Автор: SCINER
Дата сообщения: 20.12.2007 13:31
Да. я поставил http://www.haskell.org/ghc/dist/6.8.2/ghc-6.8.2-i386-windows.exe
А где его сменить идентификатор 6.6.1? Я поиском нигде не нашел такой строки кроме как в файлах readme.txt и History.txt.
Автор: Benchmark
Дата сообщения: 20.12.2007 13:37
PAQer

Цитата:
это "реальная альтернатива rar и 7-zip" для людей, которые серьёзно интересуются архиваторами как таковыми


Так оно и есть.

Если вспомнить историю архиваторов, стандартами становились не просто новые программы, а те, которые вносили что-то инновационное. Например Zip в свое время стал "продвинутым вариантом" ARC'a (старого, а не нынешнего). ARJ внес помимо улучшенного сжатия огромное количество настроек командной строки, многотомные архивы. Затем появился RAR с еще лучшей компрессией, полноэкранным интерфейсом и т.д.

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

FreeARC - приятное исключение. Мало того, что он исключительно эффективный компрессор, так еще и "юзер-ориентированный". После реализации функций, обещанных в версиях 0.41 и 0.42, FreeARC по функционалу станет в один ряд с лучшими нынешними архиваторами + предоставит ряд собственных уникальных на данный момент функций. И я не вижу причин, почему он не смог бы набрать значительную популярность, как это сделал тот же 7zip.

Автор: Bulat_Ziganshin
Дата сообщения: 20.12.2007 14:31

Цитата:
Да. я поставил http://www.haskell.org/ghc/dist/6.8.2/ghc-6.8.2-i386-windows.exe
А где его сменить идентификатор 6.6.1? Я поиском нигде не нашел такой строки кроме как в файлах readme.txt и History.txt.

(хватаясь за голову) замени forever в *.hs на hrenvam


Цитата:
реальная альтернатива rar и 7-zip

мне лично даже возможностей 7-zip не хватает, не говоря уж об использовании ccm или uharc как основного архиватора. так что fa = фичи от rar + сжатие от 7zip + что ещё удалось придумать
Автор: SCINER
Дата сообщения: 20.12.2007 15:00

Цитата:
hrenvam

А если серьезно?
Автор: sabio
Дата сообщения: 20.12.2007 15:27

Цитата:
А если серьезно?

Это и есть серьезно.
Нужно заменить идентификатор forever на какой-либо другой уникальный.
Все потому, что в 6.8 forever уже "занят". А в 6.6.1 его еще не было.
В общем, hrenvam или любое другое достаточно уникальное значение должны решить проблему.
Автор: slech
Дата сообщения: 20.12.2007 16:50
Bulat_Ziganshin
когда можно ждать версию 0.41 с GUI.
Автор: Bulat_Ziganshin
Дата сообщения: 20.12.2007 22:11

Цитата:
когда можно ждать версию 0.41 с GUI.

берёшь время выхода 0.40. добавляешь к нему месяц. накидываешь ещё N месяцев на все остальные мои дела
Автор: PAQer
Дата сообщения: 20.12.2007 22:19
Я вот тут подумал как еще можно улучшить степень сжатия исполняемых файлов - сегментировать внутренние ресурсы (ResourceSection), если таковые имеются, по типу (текст/графика ico+bmp/wav'ы) и паковать их уже блоками. Как вам идейка?
Автор: Bulat_Ziganshin
Дата сообщения: 20.12.2007 23:18

Цитата:
сегментировать

буквально сегодня читал об этом у Шелвина - http://compression.ru/sh/flt32.txt

думаю, что это нужно будет сделать как часть реализации общей идеи сегментации. а на данный момент я собрался сделать автоопределение типа файлов - ибо кол-во пользователей, не способных/не имеющих времени настроить arc.groups уже становится великовато. вон и на китайском форуме уже пишут, что fa нередко сжимает хуже 7zip - подозреваю что это связано именно с неправильным определением типа файла
Автор: Benchmark
Дата сообщения: 21.12.2007 00:11
Bulat_Ziganshin

Цитата:
а на данный момент я собрался сделать автоопределение типа файлов

И это правильно.

На мой взгляд автоопределение типа и сохранение опций упаковки внутри архива - первоочередные задачи.
Автор: Bulat_Ziganshin
Дата сообщения: 21.12.2007 01:03

Цитата:
На мой взгляд автоопределение типа и сохранение опций упаковки внутри архива - первоочередные задачи

что ж, тогда второе тоже добавлю. думаю, к выходным уже что-нибудь сюда выложу
Автор: PAQer
Дата сообщения: 21.12.2007 01:10

Цитата:
буквально сегодня читал об этом у Шелвина - http://compression.ru/sh/flt32.txt

а у меня эта идея возникла когда 0.4 версия появилась, где-то так...


Цитата:
собрался сделать автоопределение типа файлов - ибо кол-во пользователей, не способных/не имеющих времени настроить arc.groups уже становится великовато. вон и на китайском форуме уже пишут, что fa нередко сжимает хуже 7zip - подозреваю что это связано именно с неправильным определением типа файла


Да, на личном опыте уже убедился в проигрывании 7-зипу при неких условиях. Но ведь в 7-зипе нет определения по типу файлов, так, только по расширению. И в фриарке сортировка посложней будет. Может просто сделать ключ отключающий "умную" сортировку? Или может даже в дефаулте это сделать?
Автор: SCINER
Дата сообщения: 21.12.2007 01:17

Цитата:
unarc - это быстрее. формат вызова можно найти в настройках для TC

Ok, спасибо.

Возник вопрос. При команде arc create -ep1 c:\1.wrc c:\totalcmd\ файлы в листинге в своих именах лишаются корневой для них папки «totalcmd». Ведь в данном случае все файлы должны начинаться имхо с totalcmd\

Думаю, необходимо добавить ключ -ep4, т.к. существующие не удовлетворяют данному требованию:

-ep0 – записывает голое имя файла без каталога
-ep1 – исключает из имени файла часть, заданную в командной строке
-ep2 – расширяет имя до полного имени файла на диске, за исключением “d:\” или “/”
-ep3 – записывает полное абсолютное имя

Автор: ICESCREAM
Дата сообщения: 21.12.2007 01:49
Bulat_Ziganshin

Цитата:
а на данный момент я собрался сделать автоопределение типа файлов - ибо кол-во пользователей, не способных/не имеющих времени настроить arc.groups уже становится великовато

А собирался еще в старой теме
Автор: egor23
Дата сообщения: 21.12.2007 01:55
Bulat_Ziganshin

Цитата:
fa нередко сжимает хуже 7zip - подозреваю что это связано именно с неправильным определением типа файла

Расширение - есть условность, за которым может быть всё что угодно.
+ *.exe, *.dll - fa жмёт хуже т.к. имеется только bcj.

PAQer

Цитата:
сегментировать внутренние ресурсы (ResourceSection), если таковые имеются, по типу (текст/графика ico+bmp/wav'ы) и паковать их уже блоками. Как вам идейка?

В WinRK вроде как реализовано.
Bulat_Ziganshin Если будете делать реализацию похожую на WinRK предусматрите её отключение, т.к:
1. благотворно сказывается на степени сжатия (увеличивается).
2. в случае битости архива извлечь данные из него не представляется возможным.

Кстати про битые\неполные архивы:

Цитата:
по отдельности. но это пока первая реализация, будет эта фича популярна - можно будет думать об оптимизациях

Если есть посекторный CRC в архиве:
1. Сделайте распаковку архива с пропуском битых солид-блоков.
2. Сделайте распаковку битых солид-блоков до битого участка.
Автор: Bulat_Ziganshin
Дата сообщения: 21.12.2007 03:19

Цитата:
я собрался сделать автоопределение типа файлов

первая проба - как обычно, в arc.arc. чисто чтобы посмеяться. свои докадки выводит прямо на экран:

$text FreeArc.htm
$compressed funny_cats_Goblin.wmv
$binary Arc.exe

Добавлено:

Цитата:
Думаю, необходимо добавить ключ -ep4, т.к. существующие не удовлетворяют данному требованию:

то, что тебе нужно, делается как раз по умолчанию

Автор: SCINER
Дата сообщения: 21.12.2007 10:06
Нет. Опция по умолчанию этого не делает.
Наврено я неверно объяснил.
Допустим если добавить папку C:\GtkRun\2.8\etc\fonts\
то файлы в архиве должны сохранятся только с родительской папкой, а не полным путем, например:

fonts\fonts.conf
fonts\fonts.dtd
fonts\local.conf


а по умолчанию они сохраняются так:
GtkRun\2.8\etc\fonts\fonts.conf
GtkRun\2.8\etc\fonts\fonts.dtd
GtkRun\2.8\etc\fonts\local.conf
Автор: egor23
Дата сообщения: 21.12.2007 11:38
SCINER
идите в обход

Arc.exe a a -dpC:\GtkRun\2.8\etc\ fonts\

Добавлено:
хотя это не выход
Автор: Bulat_Ziganshin
Дата сообщения: 21.12.2007 14:07
а вот и пример:

C:\FIDO\Disk_Q\Тексты\Russian>Arc.exe a a -r *.doc
было:
Compressed 32 files, 22.513.310 => 5.925.978 bytes. Ratio 26.3%
Compression time 82.68 secs, speed 272 kb/s. Total 89.24 secs

стало:
Compressed 32 files, 22.513.310 => 5.251.564 bytes. Ratio 23.3%
Compression time 42.83 secs, speed 526 kb/s. Total 46.71 secs
Автор: PAQer
Дата сообщения: 21.12.2007 16:04
Bulat_Ziganshin
Это за счет чего такой выигрыш?
Автор: Benchmark
Дата сообщения: 21.12.2007 16:15

Цитата:
Это за счет чего такой выигрыш?

Попробую догадаться.

Раз FIDO, значит там могли быть мессажки в jam-базах. А это расширения (*.jdt, *.jhr и т.д.) Ни один архивер на сегодняшний день эти расширения не знает, хотя по сути это текстовые файлы. И если раньше (до автоопределения) они жались lzma, то теперь должны сжиматься ppmd.

p.s. маленький оффтоп. Ни у кого нет очень старого (1.38 или старее) RAR'a ? у меня тут просто коллекция старых архиваторов, вот и ищу неспешно
Автор: Bulat_Ziganshin
Дата сообщения: 21.12.2007 17:46

Цитата:
Это за счет чего такой выигрыш?

это у меня русская фантастика, doc-файлы. у них бывают и 8, и 16-разрядные кодировки, поэтому в arc.groups они записаны в группу binary. детектинг типа файлов - это для них как раз то что доктор прописал
Автор: squxe
Дата сообщения: 21.12.2007 22:35
А как насчёт групп $obj $wav $bmp? А то у меня всегда одно из 3 $text $binary $compressed... А так идея очень правильная! Правда у меня выигрыш в сжатии порядка 0.1-1.2% (но и тестировал совсем немного). Мелочь, но всё равно приятно!
Автор: Bulat_Ziganshin
Дата сообщения: 21.12.2007 22:41

Цитата:
А как насчёт групп $obj $wav $bmp?

побойся бога, это ж самый первый "подход к снаряду"

Добавлено:

Цитата:
Правда у меня выигрыш в сжатии порядка 0.1-1.2%

это значит, что у тебя очень хороший arc.groups или очень правильные файлы, подходящие под мой arc.groups
Автор: Benchmark
Дата сообщения: 21.12.2007 23:17
Попробовал как раз на той своей древней jam-базе с фидопочтой

Получилось следующее:

оригинальный размер - 93.152.803 байт
FreeArc 0.40 pre-release4 (старый): 23.705.309 байт, 137.63 с.
FreeArc 0.40 (новый с автодетектом): 22.916.286 байт, 83.89 с. (!!!)

Оба раза жал в режиме -mx. То есть автодетект дал не только 800 кил выигрыша, но и очень нехилый бонус в скорости. Приятно
Автор: egor23
Дата сообщения: 21.12.2007 23:33
Bulat_Ziganshin

Цитата:
первая проба - как обычно, в arc.arc.

а зачем внутри вдовесок идут файлики за 24.11.07?
Автор: Bulat_Ziganshin
Дата сообщения: 22.12.2007 00:26

Цитата:
Правда у меня выигрыш в сжатии порядка 0.1-1.2%

на практике усреднённый выигрыш наверно и будет не больше 1%. всё же многие файлы правильно определяются уже сейчас - в arc.groups как-никак 400 строчек кроме того, у этого первого варианта есть свои недостатки, дальше детектинг станет поточнее


Цитата:
а зачем внутри вдовесок идут файлики за 24.11.07?

дык надо же использовать arc x http://... arc.exe ! вообще, можно и на 7zip перейти, хотя мне казалось, что с .arc, который можно распаковать прямо с сети, даже удобней

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Установка и настройка SAMS


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