Информация об изменениях

Сообщение Re[15]: Имя истинного врага - миссионеры. от 12.08.2025 23:10

Изменено 12.08.2025 23:13 Marty

Re[15]: Имя истинного врага - миссионеры.
Здравствуйте, Pzz, Вы писали:

Pzz>>>gcc внутри, кстати, примерно так и написан. Но назвать его говнокодом у меня как-то язык не поворачивается. Все-таки, большая часть мировой кодовой базы вполне успешно через него проходит и выдаёт на выходе вполне работоспособный машинный код.


M>>Да, я слышал, что GCC внутри — это кусок говна (по крайней мере, был). Но, говорят, его чуть ли не на плюсах уже давно переписали.


Pzz>Я заглянул из любопытства. Да, лежат какие-то .cc файлы. Внутри — процедуры и функции, как на Си. Но местами используются классы. Но подробно не смотрел, впечатление очень поверхностное.


Скорее всего, они по-минимуму переделывали, не трогая слишком архитектуру. Заюзали разные вкусняшки от плюсов, типа RAII, например, или интерфейсы с виртуальными функциями и реализации интерфейсов, и тд и тп, вместо сишечного говна


M>>И, кстати, в давние времена (2.95, например), когда он точно был на сишечке, он мог и упасть, и сгенерить хрень. Имхо, MSVC, Borland, Watcom — были покачественнее (но об их внутреннем устройстве ничего не знаю)


Pzz>Все они могли и упасть и сгенерить хрень. В целом, gcc был довольно надёжный. Он был в состоянии собрать делый дистр линуха, это дохрена разнообразного кода.


Уверен, там были воркэраунды вокруг косяков GCC



Pzz>Я когда-то очень любил TurboC 2.0. Он был быстрый, как пулемет, ошибок в нём было штуки три, и все, кому надо, про них знали. Конечно, оптимизирующим компилятором его было трудно назвать. У меня с него осталась привычка не звать memcpy от 0 байт, потому что евонная библиотека в таком случае глючила, и хрен его знает, какие еще стандартные библиотеки от каких платформ в таком случае сглючат.


Хз, не помню такого, на TurboC 2.0 я прогал только первый семестр, и никогда не было идеи выделять кусок памяти нулевого размера. А потом на BC++3.1 пересел.


Pzz>У ваткома, кстати, была забавная особенность. Под досом, если памяти не хватало, он мог снизить уровень оптимизации, чтобы хоть как-то, да скомпилировать.


Pzz>ИМХО, это скорее недостаток, когда результат кодогенерации зависит от того, на какой машине идёт сборка.


Хз, я на Watcom пересел, он уже вроде то ли 9ый, то ли вообще 10ый был, и он вроде уже использовал 32 бита в ДОСе, и вряд ли ему было мало даже 4х метров памяти, хотя у меня на первом компе было 16
Re[15]: Имя истинного врага - миссионеры.
Здравствуйте, Pzz, Вы писали:

Pzz>>>gcc внутри, кстати, примерно так и написан. Но назвать его говнокодом у меня как-то язык не поворачивается. Все-таки, большая часть мировой кодовой базы вполне успешно через него проходит и выдаёт на выходе вполне работоспособный машинный код.


M>>Да, я слышал, что GCC внутри — это кусок говна (по крайней мере, был). Но, говорят, его чуть ли не на плюсах уже давно переписали.


Pzz>Я заглянул из любопытства. Да, лежат какие-то .cc файлы. Внутри — процедуры и функции, как на Си. Но местами используются классы. Но подробно не смотрел, впечатление очень поверхностное.


Скорее всего, они по минимуму переделывали, не трогая слишком архитектуру. Заюзали разные вкусняшки от плюсов, типа RAII, например, или интерфейсы с виртуальными функциями и реализации интерфейсов, возможно — исключения, вместо рукопашного сишного их аналога, и тд и тп, вместо сишечного говна


M>>И, кстати, в давние времена (2.95, например), когда он точно был на сишечке, он мог и упасть, и сгенерить хрень. Имхо, MSVC, Borland, Watcom — были покачественнее (но об их внутреннем устройстве ничего не знаю)


Pzz>Все они могли и упасть и сгенерить хрень. В целом, gcc был довольно надёжный. Он был в состоянии собрать делый дистр линуха, это дохрена разнообразного кода.


Уверен, там были воркэраунды вокруг косяков GCC



Pzz>Я когда-то очень любил TurboC 2.0. Он был быстрый, как пулемет, ошибок в нём было штуки три, и все, кому надо, про них знали. Конечно, оптимизирующим компилятором его было трудно назвать. У меня с него осталась привычка не звать memcpy от 0 байт, потому что евонная библиотека в таком случае глючила, и хрен его знает, какие еще стандартные библиотеки от каких платформ в таком случае сглючат.


Хз, не помню такого, на TurboC 2.0 я прогал только первый семестр, и никогда не было идеи выделять кусок памяти нулевого размера. А потом на BC++3.1 пересел.


Pzz>У ваткома, кстати, была забавная особенность. Под досом, если памяти не хватало, он мог снизить уровень оптимизации, чтобы хоть как-то, да скомпилировать.


Pzz>ИМХО, это скорее недостаток, когда результат кодогенерации зависит от того, на какой машине идёт сборка.


Хз, я на Watcom пересел, он уже вроде то ли 9ый, то ли вообще 10ый был, и он вроде уже использовал 32 бита в ДОСе, и вряд ли ему было мало даже 4х метров памяти, хотя у меня на первом компе было 16