[sisyphus] ABI/API changes

Alexey Tourbin at на altlinux.ru
Ср Сен 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.
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.ru/pipermail/sisyphus/attachments/20050914/73e49640/attachment.bin


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