LINUX.ORG.RU

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


0

0

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

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

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

>>> Начало дискуссии в LKML

Как найдёт альтернативу gcc, поддерживающею такое же количество платформ и свободную - пусть мне сообщит.

marsijanin ★★
()

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

Только вот на что?

anonymous_incognito ★★★★★
()

Надо вынести включение этой оптимизации в отдельную опцию и все. IMHO проще написать патч дл gcc, реализующий требуемую функциональность и отослать разработчикам, чем переходить на другой компилятор. Тем более, как правильно выше заметили - переходить-то собственно не на что.

anonymous
()

И Линуса тоже вылечат.

mono ★★★★★
()

Тот самый Hans Boehm, который написал грубый хак под названием boehm-gc? ;)

AsphyX ★★★
()

на помощь Linus'у придёт OpenBSD!

http://lkml.org/lkml/2007/10/25/186 :

> I think the OpenBSD people decided to actually do something about this, 
> and I suspect it had *nothing* to do with license issues, and everything 
> to do with these kinds of problems. I wish them all the luck, although 
> personally I think LLVM is a much more interesting project.
> 
> 			Linus

km ★★★
()

Линус всё-таки сошёл с ума.

Aesthete ★★
()

>>перехода на другой компилятор

И какой же?

Их же всего то

SUN, Intel, Watcom, PCC, GCC

первые два закрыты. я то в этом проблем не вижу, но GNU фанатики не позволят.

третий отстал лет на 5, четвертый лет на 15

Lockywolf ★★★
()
Ответ на: комментарий от Lockywolf

>первые два закрыты. я то в этом проблем не вижу, но GNU фанатики не позволят.

Вся проблема в том что в этом случае гну фанатики идут лесом:)

r ★★★★★
()
Ответ на: комментарий от r

> гну фанатики идут лесом:)

Да они всегда только лесом и ходили.

iBliss
()

> подумывает

Сильно сказано. Просто сказал, *что* ему не нравится.

На самом деле, в ближайшее время никакого перехода не будет, ибо код ядра наполнен GCC'измами, поэтому, собственно, ICC собрать ядро без патчей не может ;-)

birdie ★★★★★
()

Никто никуда не перейдет, это так - разработчиков gcc припугнуть и правильно, кривую оптимизацию втопку

pawnhearts ★★★★★
()
Ответ на: комментарий от Lockywolf

> Их же всего то

> SUN, Intel, Watcom, PCC, GCC

Sun Studio, PathScale, Portland Group (pgi), IBM, Intel

Только они ни разу не свободные. И даже не бесплатные.

Да, очевидно, что Линус чем-то очень раздражен в сообществе. Видимо, ему так все надоело, хочется спокойно пить лимонад на своем (с)ранчо и гулять с дочками. Ну и правильно. Вот я думаю тоже, а на хрена нам вообще Линус Торвальдс? Хип-хоп будет жить и без финна.

atoku ★★★
()
Ответ на: комментарий от anonymous_incognito

Ничерта он не думает о переходе.

Заголовок должен звучать примерно так: "Компилятор GCC вызывает опасения у разработчиков ядра".

birdie ★★★★★
()

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

anonymous
()
Ответ на: комментарий от atoku

>Только они ни разу не свободные. И даже не бесплатные.

Интересно.... а если сантехникам или бимерам предложить мигрировать Linux на их компилятор - они его сразу заопенсорся или недельку подумают для вида?

r ★★★★★
()

Да что вы флуд тут развел ё-мае. Проще Линусу gcc форкнуть и поправить, чем другой компилятор найти.

AiFiLTr0 ★★★★★
()

А вся инфраструктура пойдет вслед за ним? Или получим мега форк и две ветки? Независимость от GNU это хорошо, но слабо осуществимо.;-)

georgii
()
Ответ на: комментарий от anonymous

> Прально! ждем сообщения о прекращении разработки ядра до тех пор, пока Линус не напишет свой собственный компилятор.

История показывает, что это вполне вероятно =) Я думаю за выходные Линус напишет Linucc, и все будет хорошо

ilya_ost
()
Ответ на: комментарий от pawnhearts

> кривую оптимизацию втопку

посмотрел на себя в зеркало и громко выругался?

los_nikos ★★★★★
()

Надеюсь что новый компилятор будет написан с нуля и будет под лицензией BSD (и чтоб никакого там ООП и рядом небыло).

anonymous
()
Ответ на: комментарий от atoku

> Да, очевидно, что Линус чем-то очень раздражен в сообществе.

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

Возможно Линусу стоило бы обратиться в комитет по стандартизации Си.

anonymous_incognito ★★★★★
()

так вроде ж LLVM упомянул, и кстати в gcc рассылке поговаривали про то что надо тоже на LLVM перейти, но потом скатились на lto. Оптимизация там лучше во всех отношениях, не хватает только разработчиков.

anonymous
()

Линус тут прав: SSA по своей сути (без оптимизации) и есть сплошные load/store motion, они убираются при более глубокой оптимизации, и то не всегда. И это касасется не только Си (который лишь front-end).

frame ★★★
()
Ответ на: комментарий от anonymous_incognito

>Возможно Линусу стоило бы обратиться в комитет по стандартизации Си.

...и подать письменную жалобу на козлов которые мешают ему жить?;))))

r ★★★★★
()

Давно пора Линуса куда-нибудь перевести (на свалку истории, например), а руление флагманским Open Source проектом поручить команде адекватных движению людей.

dm1024 ★★★
()
Ответ на: комментарий от dm1024

>руление флагманским Open Source проектом поручить команде адекватных движению людей.

Например?

r ★★★★★
()

Аааааа.... лучше бы я эту новость не читал. Я и так в последнее время только -O1 доверяю. Позади только -O0 :(

akira_ag
()
Ответ на: комментарий от akira_ag

По ссылке еще ответ есть для Linus'a:

The BSD people are adopting pcc [1] which is a rewritten version of some C compiler originally developed in the late 70s. And yeah, it's basically because they think gcc is becoming too painful to live with [2].

1. http://pcc.ludd.ltu.se/ 2. http://www.thejemreport.com/mambo/content/view/369/

akira_ag
()

Все равно нечем будет заменять так что долбить разработчиков gcc надо

pinachet ★★★★★
()
Ответ на: комментарий от Darkproger

>> Как на что? Visual C++.

>а теперь все дружно вспомнили, на каком языке написан Linux

Оно прекрасно и Си-код компилирует, даже (применительно к последним версиям можно сказать - как правило) лучше, чем GCC. Зато GCC силён в математике.

frame ★★★
()
Ответ на: комментарий от Bohtvaroh

> А я своего кота Линусом назвал. :)

Класс! Как увидел кернел-паник, сразу за тапок и "а нука иди сюда усатый..."

iBliss
()
Ответ на: комментарий от akira_ag

> Аааааа.... лучше бы я эту новость не читал. Я и так в последнее время только -O1 доверяю. Позади только -O0 :(

Не позади санитары и диазепам.

iBliss
()
Ответ на: комментарий от anonymous

> OTCC of course!

Ктстаи я слышал, оптимизирует лучше ICC

anonymous
()
Ответ на: комментарий от r

>Скока еще народу подумало что Линус хочет соскочить с GPL?:)))

И ты тоже подумал?))) Не, он не просто хочет соскочить, у него в некотором смысле наметилось противостояние с РМС ;-)

drSchur ★★★
()
Ответ на: комментарий от iBliss

Кстати, кроме шуток, openwatcom весьма неплохой компилятор. По крайней мере под ia32 он код генерит очень даже.

anonymous
()
Ответ на: комментарий от Lockywolf

>>перехода на другой компилятор

>SUN, Intel, Watcom, PCC, GCC

Есть еще Digital Mars. Вроде С/С++ только для Винды, но D они и для linux поставляют, так что that's discussable.

Absurd ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.