The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск языка программирования Rust 1.43"
Отправлено Совершенно другой аноним, 27-Апр-20 16:56 
Имхо, проблема в том, что когда писали компилятор C под x86 (ещё во времена MSDOS, разные там BCC) c calling convention для них выглядел следующим образом:

z = func(2, 1);

push 1
push 2
call func
add sp,4
;значение z располагается в ax

после этого флаг CF уже был потерян. Потом уже придумали разные pascal, fastcall и прочее. Ну и кроме того - это для 86 архитектуры, видимо, был отдельный регистр флагов, который можно анализировать командами условных переходов. Для других архитектур всё могло быть немного иначе.

Кроме того, например, Вы написали (с таким хитрым возвратом, как Вы описали) следующий код:
ret_t ret;

ret = my_func(1, 2, 3, 4);
z = a + b * d / f + 4000;
if (ret.err)
{
}

для того, чтобы флаг CF не потерялся, его придётся где-то записать в стек, или ещё куда, сразу после возврата, чтобы после вычисления выражения вытащить и таки проанализировать.

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

Кстати, то, что Вы предлагаете, по-моему, подавали на включение в стандарт C2X, правда не знаю с каким результатом.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру