Линус подумывает о переходе на другой компилятор C

Теги: Линус, компилятор, язык С

В списках рассылки LKML и gcc была интересная дискуссия о не совсем корректной с точки зрения пользователей оптимизации, производимой gcc. Эта оптимизация (замена условной записи в память на чтение, условную модификацию и безусловную запись обратно) потенциально может нарушить семантику блокировок в многопоточных программах (потребовать для корректной работы программы блокировку в том месте, где данные в памяти, казалось бы, не изменяются), но формально не противоречит стандарту языка C.

Линус подумывает о переходе на другой компилятор, в связи со слишком частым повторением такой ситуации, когда разработчики gcc занимаются юридическими выкрутасами с языком (language-lawyering) вместо решения реальных проблем пользователей gcc.

Примечательно, что на возможность такого рода неприятностей с блокировками в связи с недостаточной определенностью стандартов на язык C было указано еще два года назад в статье "Threads Cannot Be Implemented As a Library" (автор: Hans Boehm).

www.securitylab.ru

публикации сходной тематики

Комментирование закрыто.

 

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

Реклама на сайте: