[sisyphus] ABI/API changes

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Сен 14 16:19:31 MSD 2005


On Wed, Sep 14, 2005 at 02:22:18PM +0300, Andrei Bulava wrote:
> 2) wxGTK2 будет ломаться до тех пор, пока инициатива at@, прочитавшего
> people.redhat.com/drepper/dsohowto.pdf, не дойдёт до разработчиков GTK2;

Да не дойдёт.  Есть две технические проблемы, я о них уже писал.

1) ld/ldlang.c не позволяет одновременно иметь дефолтный интерфейс без
названия и версионированные интерфейсы с названием.  Это аццки неудобно.
И зачем тогда soname нужен?

2) libtool не понимает version scripts.  То есть ему можно впарить через
-Wl,--version-script=symver.map, но это не портабельно, разработчики
GTK2 на такое не пойдут.

Самим пока придётся кашу варить.

> ответа на вопрос, как сделать диагностику несовместимости API перед
> запуском программы, а не в момент вызова функции - зато рассказывали о

Несовместимость на уровне семантики никак проверить нельзя.
Несовместимость на уровне сигнатуры функции в C++ хорошо проверяется
за счёт symbol mangling.  В Си такого нет, можно попробовать извлекать
прототипы функций из хедеров.  perldoc h2xs.

> P.S. Ткните, пожалуйста, меня в описание методик отслеживания изменений
> API/ABI в языках, отличных от C/C++. Меня интересуют Scheme, Perl,
> Python, Ruby. Спасибо.

А методика простая.  Сначала делается дамп API/ABI для версии 1.0.
Потом делается дамп API/ABI для версии 2.0.  Потом запускается чудная
команда diff.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20050914/73e49640/attachment-0003.bin>


Подробная информация о списке рассылки Sisyphus