ALT Linux Team development discussions
 help / color / mirror / Atom feed
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/


  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