Вы когда-нибудь разбивали компилятор? - PullRequest
19 голосов
/ 11 октября 2008

Каждый (по крайней мере, каждый, кто использует скомпилированный язык) сталкивался с ошибками компиляции, но сколько раз вы действительно врезались в компилятор?

Моя справедливая доля "внутренних ошибок компилятора" , но большинство ушло просто путем повторной компиляции. У вас есть (минимальный) кусок кода, который приводит к сбою компилятора?

Ответы [ 39 ]

1 голос
/ 27 января 2009

Когда вы получаете сообщение «Катастрофический сбой», вы знаете, что пытаетесь ....

Michael

0 голосов
/ 10 апреля 2010

Давным-давно я работал над COBOL на компьютере с контрольными данными. (Если это звучит смешно, это так. Control Data была известна своими высокопроизводительными научными вычислительными системами, а компилятор COBOL был чем-то вроде запоздалой мысли.) Я не помню деталей, но у меня была программа, которую я пробовал портировать на более новую версию. Я пробовал разные способы, и обнаружил, что у меня есть выбор: сломать компилятор или поместить его в бесконечный цикл.

0 голосов
/ 12 октября 2008

Я много раз ломал Delphi 7, прося его скомпилировать старый код dos.

Основным виновником, похоже, является любая квалификация чего-либо как находящегося в системном блоке. Это не всегда взрывает, но когда это взрывается на таких вещах, я просматриваю и переписываю все, что требует такого переопределения, и проблема исчезает.

Воспроизводимые данные на 100% воспроизводимы, но мне никогда не удавалось сделать простой контрольный пример. На самом деле это не приводит к сбою компилятора большую часть времени, обычно вы получаете сообщение об ошибке, которое не имеет ничего общего с проблемой и может содержать от нее сотни строк. Окружающая среда дестабилизирована, сохранение и выход в порядке, но не думайте больше ничего делать.

Вернувшись в каменный век с Borland Pascal 7 (последняя версия DOS), я много раз ломал его. Никаких сбоев, просто некорректная и непоследовательная эмиссия кода. Я наконец-то научился держать .EXE (не считая отладочную информацию) ниже 3mb. Чем дальше я шел, тем нестабильнее он становился.

0 голосов
/ 07 мая 2009

Я потерпел крах VVIS при составлении карты для движка Source.

Это считается?

0 голосов
/ 12 марта 2009

Моя команда часто имела случайные внутренние ошибки компилятора с компилятором csharp на наших сборочных машинах. Мы решили проблему, очистив все папки bin / obj между сборками каждой цели.

0 голосов
/ 27 января 2009

Я никогда не пытался сбить компилятор, но компилятор / отладчик VB выходил на меня несколько раз в день. Даже если это VB, это считается?

0 голосов
/ 11 октября 2008

VC ++ завис на мне при компиляции C ++, если использование шаблона испортилось (например, при закрытии ">").

0 голосов
/ 10 апреля 2010

Поддержка шаблонов в GCC 2.95 (хотя я, возможно, неправильно помню версию) была глючной. Различные конструкции могут привести к его падению. Я не могу найти контрольный пример, но я думаю, что внутренние классы шаблонов (или внутренние классы, которые были шаблонами) были одним из способов получения ошибки компилятора.

0 голосов
/ 12 октября 2008

Компилятор Microsoft Xbox 360 может легко аварийно завершить работу. Мне дали исходный код с японскими комментариями, и когда он был преобразован в обычный текст, один из последних символов в строке был '\', поэтому он продолжил комментарий на следующей строке. Если следующая строка была командой switch, то компилятор падает.

//wierd japanese characters here %^$$\
switch(n)
{
case 0:
    .....
break;
case 1:
    .....
break;
}
0 голосов
/ 12 октября 2008

Я несколько раз ломал VC ++, обычно с шаблоном кода. Но это не самое интересное падение ...

Я разбил компилятор Team System VS2005 с опцией / analysis, скомпилировав мою библиотеку общего кода, которая без ошибок была скомпилирована без коммутатора, и на VS2008 с коммутатором и без него. Конечно, MS не очень интересовался, потому что это была ошибка в старой версии компилятора, но я подумал, что это довольно интересно.

...