Кто все эти люди?

Dec 17, 2012 01:20

Кто все эти люди, что делают компиляторы не просто с урезанной функциональностью относительно стандарта языка, что можно было бы понять и обосновать, а с откровенно неправильной, даже с официально документированной неправильной или с неправильной функциональностью включённой вместо правильной по умолчанию? Зачем они подкладывают пользователям ( Read more... )

computer, c, software

Leave a comment

Comments 20

wisest_owl December 17 2012, 11:21:57 UTC
GCC уже не торт?

Reply

archaicos December 17 2012, 20:24:35 UTC
Спроси чуваков, желающих срубить $250 за самопальный кривой компыль.

Reply


fatoff December 17 2012, 15:48:54 UTC
У ARM сейчас полностью compliant отличный компиллятор. Ты давно читал. Другое. В начале разработки компиллятора у многих хардверных фирм зачастую нет серьёзных ресурсов, но хочется выкатить нечно работающее. Говорю не по наслышке. Сам занимался поддержкой компиллятора C в крошечной на тот момент компании из примерно 20 человек. 2 человека слегка фиксили и дописывали компиллятор. У нас был стандартный тест для компиллятора C. Гоняли этот продукт после каждого фикса на нём, чтобы выяснить, что сломалось. Часть тест-кейсов были помечены как disabled, поскольку ещё не была написана поддержка для языковой фичи. Это всё в Финляндии происходило примерно в 2004-2006. Отсюда из San Jose компания Тримбл нам вопросы по компиллятору слала, они даже использовали. :-p

Reply

fatoff December 17 2012, 15:51:44 UTC
__x int n0; // наши собственные "закоулки"
__y int n1; // того компиллятора

У DSP процессора было две шины. Можно было одновременно получать доступ к двум участкам памяти, но выставив шины для переменных, __x и __y. Для сигнального процессора с ультранизким энергопотреблением и тактовой частотой порядка 40 Mhz это имело большое значение/

Reply

archaicos December 17 2012, 20:20:14 UTC
Расширения пусть живут, к ним претензий нет.

Reply

archaicos December 17 2012, 20:23:00 UTC
Смотри ниже мой ответ spamsink. У чуваков практически полный компилятор, а элементарные вещи сделаны неправильно. Сколько надо ресурсов чтобы их сделать правильно?

Reply


spamsink December 17 2012, 16:06:49 UTC
Номер страницы, которой навеяно, можешь указать?

Reply

archaicos December 17 2012, 20:18:50 UTC
Я всё не упомню, да и даже до конца не стал дочитывать, но что запомнил:
identifiers not case sensetive by default
short = 8 bits
int a[4]; &a[3]-&a[0] != 3; &a[3]-&a[0] == (char*)&a[3]-(char*)&a[0]
Я думаю, там ещё есть сюр призы.

Reply

spamsink December 17 2012, 20:45:14 UTC
identifiers not case sensetive by default

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

short = 8 bits

Совершенно в своём праве, стандарт позволяет, а кто рассчитывает на строгое sizeof(char) < sizeof(short) < sizeof(int) - ССЗБ.

int a[4]; &a[3]-&a[0] != 3;

Вот это делает язык не языком Си, да. Если они подают это не как баг, а как фичу, и еще хвастаются, то лучше выбросить.

Reply

archaicos December 17 2012, 20:51:34 UTC
short, если судить по С89 или C99, должен быть не менее 16 бит, иначе в него не влезут значения от -32767 до +32767, как требует стандарт.

Reply


Leave a comment

Up