[devel] re-writing GNU C extensions

Ivan Zakharyaschev imz на altlinux.org
Вс Янв 31 02:28:58 MSK 2016


On Sun, 31 Jan 2016, Alexey Tourbin wrote:

> Мужчина, прежде чем переходить к поэтапному планированию, вы должны были
> убедиться в принципиальной осуществимости сабжа, rewritng GNU C extensions.

Сужение задачи до кода, где не берутся указатели на вложенные функции, 
было понятно сразу. Проверил -- в сообщениях в devel такое уточнение не 
прозвучало, что неправильно, конечно; теперь исправлено, хоть и 
"напоследок".

> Я вам доказываю, что сабж в принципе неосуществим в достаточно широком
> классе случаев.
> Так, техника трамполайнов неосуществима на стадии компиляции. Поэтому

Хорошо.

> вы не сможете
> избавиться от всех вложенных функций, даже если вы вскоре разберётесь
> с механикой
> редактирования AST в language-c.

Если порассуждать теоретически пока на эту тему: даже с задачей в общей 
постановке какой-то путь можно увидеть, учитывая, что мы имеем дело с 
репозиторием open-source проектов. Где-то уже имеется упомянутый Кириллом 
вариант функции вроде qsort_r; где нет (но нужно, потому что в функцию 
передали указатель на вложенную функцию где-то, где её использовали) -- 
можно механически породить такой вариант на C. Осуществимо, но анализ 
нельзя ограничить одним C translation unit или даже пакетом.

Я это пишу не ради спора, с тем, что:

> Так, техника трамполайнов неосуществима на стадии компиляции. Поэтому

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

>> Да, пока хороших идей по 2) нет -- как хорошо развернуть такой код на этапе
>> компиляции. Если будут у кого-нибудь продуманные предложения, интересно их
>> узнать.
>
> Мужчина, то есть вы хотите получать деньги за свою работу, которая,
> как заранее известно,
> ни к чему не ведет, кроме обмена умными высказываниями. Сматывайте удочки.

Сборка Sisyphus на платформах без GCC.

>> Пока задачи решать 2) у нас нет, потому что мы хотим продвинуться в том,
>> чтобы уметь собирать не-GCC те пакеты, которые в Sisyphus успешно
>> собираются. А trampolines и executable stack в Sisyphus не пропускаются --
>> glebfm@ рассказывал:
>
> Напоследок вы сужаете постановку задачи, ссылаясь на авторитетные
> мнения сельских дедов,
> которые доводят до нашего сведения, что использовать трамполайны
> строго запрещается.

Best reagrds,
Ivan


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