[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