From: Alexey Tourbin <at@altlinux.ru> To: ALT Linux Team development discussions <devel@lists.altlinux.org> Subject: Re: [devel] I: repocop test for %{get_version ...} is disabled. Date: Thu, 23 Aug 2012 10:06:23 +0400 Message-ID: <20120823060622.GA5634@altlinux.org> (raw) In-Reply-To: <20120823050344.GA23461@t60p.mithraen.ru> On Thu, Aug 23, 2012 at 09:03:44AM +0400, Денис Смирнов wrote: > On Thu, Aug 23, 2012 at 01:29:44AM +0400, Алексей Турбин wrote: > AT> Гарантия разрешимости символов, которую дают set-версии, довольно высокая: > AT> в предельном случае, когда по сравнению с предыдущей версией требуется > AT> всего один новый символ, она зафиксирована на уровне не хуже 2^{-10} > AT> т.е. около 0.1%. Когда требуется два новых символа, гарантия уже > AT> подскакивает до милионной. > > Это не такой уж маленький процент при нашей пакетной базе. Однако > увеличение объема индексов apt до создания более эффективной системы, мне > кажется, неприемлимо. Процент довольно маленький - если бы людей лечили с такой эффективностью, мы бы жили в более счастливом мире. Попробуй удалить один используемый символ из библиотеки, проверка срабатывает в среднем в 1535 из 1536 случаев. Это уже на уровне человеческого фактора. Попробуй удалить два используемых символа - проверка срабатывает, грубо говоря, уже всегда. Насчет индексов апта - set-версии составляют в них не более половины. Их удалось ужать до практичного размера. Так что полагаю, что разговоры насчет объема индексов apt и создания "более эффективной системы" политически мотивированы. $ l /var/cache/apt/pkgcache.bin -rw-r--r-- 1 at rpm 58513368 Aug 22 03:31 /var/cache/apt/pkgcache.bin $ strings /var/cache/apt/pkgcache.bin |grep ^set: |wc -c 25803870 $ У меня еще подключен репозиторий x86_64-i586, что делает размер правдоподобным: $ strings /var/lib/apt/lists/_ALT_Sisyphus_x86%5f64_base_pkglist.classic |grep ^set: |wc -c 13820628 $ strings /var/lib/apt/lists/_ALT_Sisyphus_x86%5f64-i586_base_pkglist.classic |grep ^set: |wc -c 11934095 > А вот у заведомо излишних зависимостей есть большая проблема -- они резко > усложняют частичные обновления, что для меня более критичная проблема. Зависимости %get_version не заведомо излишни, а просто они безосновательны и глупы: зависимости должны выражать необходимые и достаточные условия, а с помощью оператора >= можно выразить лишь достаточные условия, да и то с очень большой натяжкой, поскольку сохранение обратной совместимости в новых версиях ничем не гарантируется. Короче, подписчикам следут меньше думать о том, что set-версии не дают "абсолютной гарантии". Гарантия очень большая, а абсолютную гарантию, как известно, дает только страховой полис. That said, интересно подумать, что можно еще извлечь из set-версий. Над чем я думал: можно внести поддержку прототипов по схеме, похожей на C++ mangling - это довольно сложно, но не архисложно. Информацию о прототипах можно извлекать из .debug файлов, которые автоматически создаются на стадии brp-debuginfo. Над чем еще не думал: можно ли таким образом контролировать структуру VMT в C++ (по некоторым данным, к этому классу можно отнести около 1% изученных случаев бинарной несовместимости). > -- > С уважением, Денис > > http://mithraen.ru/
next prev parent reply other threads:[~2012-08-23 6:06 UTC|newest] Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-08-22 19:56 Igor Vlasenko 2012-08-22 20:53 ` Alexey Tourbin 2012-08-22 21:16 ` Michael Shigorin 2012-08-22 21:29 ` Dmitry V. Levin 2012-08-23 6:09 ` Igor Vlasenko 2012-08-23 7:42 ` Alexey Tourbin 2012-08-23 8:22 ` Igor Vlasenko 2012-08-23 10:33 ` Sergey V Turchin 2012-08-23 13:03 ` Alexey Tourbin 2012-08-23 15:26 ` Sergey V Turchin 2012-08-24 0:40 ` Alexey Tourbin 2012-08-24 10:47 ` Sergey V Turchin 2012-08-22 21:11 ` Денис Смирнов 2012-08-22 21:29 ` Alexey Tourbin 2012-08-22 23:24 ` Alexey Tourbin 2012-08-23 5:03 ` Денис Смирнов 2012-08-23 6:06 ` Alexey Tourbin [this message] 2012-08-23 8:04 ` Michael Shigorin 2012-08-23 8:58 ` Alexey Tourbin 2012-08-23 10:48 ` Michael Shigorin 2012-08-23 16:38 ` Денис Смирнов 2012-08-24 0:52 ` Alexey Tourbin 2012-08-24 4:12 ` Денис Смирнов 2012-08-24 14:13 ` Alexey Tourbin 2012-08-24 17:52 ` Денис Смирнов 2012-08-27 11:02 ` Ildar Mulyukov 2012-08-27 16:05 ` Alexey Tourbin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20120823060622.GA5634@altlinux.org \ --to=at@altlinux.ru \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git