URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 133629
[ Назад ]

Исходное сообщение
"Релиз набора компиляторов GCC 14"

Отправлено opennews , 07-Май-24 14:26 
После года разработки опубликован релиз свободного набора компиляторов GCC 14.1, первый значительный выпуск в новой ветке GCC 14.x. В соответствии с новой схемой нумерации выпусков, версия 14.0 использовалась в процессе разработки, а незадолго до выхода GCC 14.1 уже ответвилась ветка GCC 15.0, на базе которой будет сформирован следующий значительный релиз GCC 15.1...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=61132


Содержание

Сообщения в этом обсуждении
"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 14:26 
> Добавлено новое предупреждение "-Wanalyzer-infinite-loop" для выявления бесконечных циклов

Они решили проблему остонова! Вот что значит энтузиасты, вот что значит сообщество, миллиардеры из гаража!


"Релиз набора компиляторов GCC 14"
Отправлено Sw00p aka Jerom , 07-Май-24 15:25 
находят конструкцию while (true), дальше ищут в ней break, если не нашли - infinite-loop, если нашли, то проверяют на наличие условий always-true или always-false. Самый примитивный случай.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:59 
while (true) if (false) break;

"Релиз набора компиляторов GCC 14"
Отправлено Fracta1L , 07-Май-24 16:08 
Штош, добавим и такую проверку.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 17:29 
while (true) {
#define break continue
  break;
}

"Релиз набора компиляторов GCC 14"
Отправлено unknown , 07-Май-24 18:21 
Анализируется AST после препроцессинга

"Релиз набора компиляторов GCC 14"
Отправлено kravich , 07-Май-24 18:34 
Ты же понимаешь, что AST уже после прохода препроцессора строится?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 18:55 
> while (true) {
> #define break continue
>  break;
> }

Решил как-то анон компилер препроцессором обдурить. А оказалось что обдурили его - компилер после препроцессора работает! Вот что бывает если маны не читать.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 22:22 
Неужели до сих непонятно?! После препроцессора работает! Пойми наконец, ну! Да что ж ты бестолковый такой, ну?!

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 10:51 
Коллеги, кто ещё о препроцессоре не написал? Просьба не затягивать, отписаться по возможности скорее.

"Релиз набора компиляторов GCC 14"
Отправлено Sw00p aka Jerom , 08-Май-24 12:40 
> Коллеги, кто ещё о препроцессоре не написал? Просьба не затягивать, отписаться по
> возможности скорее.

а препроцессор это обызательная часть компилятора ЯП?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 13:57 
Именно компилятора С - да, обязятельная.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 23:45 
>> Коллеги, кто ещё о препроцессоре не написал? Просьба не затягивать, отписаться по
>> возможности скорее.
> а препроцессор это обызательная часть компилятора ЯП?

В случае С и C++ это тупо часть стандарта. Должен быть, иначе это noncompliant.


"Релиз набора компиляторов GCC 14"
Отправлено Sw00p aka Jerom , 07-Май-24 19:24 
> while (true) if (false) break;

ну да самый примитивный случай, выявляется в compile-time.


"Релиз набора компиляторов GCC 14"
Отправлено 12yoexpert , 08-Май-24 00:50 
чего только не придумают, лишь бы goto не юзать

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 15:23 
goto?

"Релиз набора компиляторов GCC 14"
Отправлено Sw00p aka Jerom , 08-Май-24 20:44 
> goto?

если че, это безусловный переход.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 22:00 
Та по сути while в итоге превратится в тот же goto, только условие ещё будет проверять))
Ну зато адепты кода без goto будут уверены что то что в скобочках - безопасно.

"Релиз набора компиляторов GCC 14"
Отправлено Sw00p aka Jerom , 08-Май-24 22:57 
> Та по сути while в итоге превратится в тот же goto, только
> условие ещё будет проверять))

разница в том, что если юзать goto, то по определению уже возможен бесконечный цикл. И это используется осознанно. А кто-то разве запрещал в программе бесконечные циклы?

А вот в случае с условным циклов, должно быть задано условие конечности (если не иначе) цикла, и вот тут если есть возможность статически предположить бесконечность цикла, то заранее сообщить ворнингом, вероятно непредвиденное (неожиданное) поведение. А как предположить? попыткой вычислить условное выражение на вечную-истину или вечную-ложь.

В англ вики дан вот такой пример:

"""
For example, in pseudocode, the program

while (true) continue

does not halt; rather, it goes on forever in an infinite loop. On the other hand, the program

"""

Это что за ересь? Они считают, что ненайдется алгоритм (статический анализатор), который может точно сказать, что это бесконечный цикл? Эт что за пример?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 15-Май-24 17:00 
В случае с goto дело не в небезопасности, а лапшекодовости.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 15-Май-24 19:32 
В случае goto дело в том, что аббревиатура КА не гуглится в Википедии.

"Релиз набора компиляторов GCC 14"
Отправлено Nv , 07-Май-24 18:52 
> миллиардеры из гаража

Ты в каком мире фантазии. Это было сделано с условием что либо получить. Пока ничего нету так что скоро уезжаю.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 14:26 
Почему чтение файла в коде, скомпилированном gcc-O2, в 2 раза быстрее чем в clang? Такая разница делает мне некомфортно. Вот это фрагмент, да

https://books.google.ru/books?id=xlkPDAAAQBAJ&lpg=PT413&ots=...


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 07-Май-24 15:11 
> Почему чтение файла в коде, скомпилированном gcc-O2, в 2 раза быстрее чем
> в clang?

Потому что это наброс?

> Такая разница делает мне некомфортно.

"Такая", в смысле, воображаемая? Пока нет результатов тестов, нет разницы.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:15 
Я привёл код, вперёд, воспроизводи. Почитай в интернете про ядерные кэши и планирование эксперимента заодно.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 09:54 
> Я привёл код, вперёд, воспроизводи.

"Воспроизвести" означает "повторить опыт" за тобой. Результаты ты не привёл, стало быть и опыт не ставил.

> Почитай в интернете про ядерные кэши.

Кеши ядер процессора не имеют отношения к файловым операциям. А вот файловый вполне влияет и заметно. Ты не слышал про прогрев? :)

> и планирование эксперимента заодно.

Этот твой ответ вполне укладывается в допустимую погрешность. ;)


"Релиз набора компиляторов GCC 14"
Отправлено Sw00p aka Jerom , 08-Май-24 12:44 
> "Воспроизвести" означает "повторить опыт" за тобой. Результаты ты не привёл, стало быть
> и опыт не ставил.

какой хитрец, результаты ему заранее давай, чтоб он подвел под них собственные, в этом то и интрига. И по вашим результатам ясно будет, вроводили вы их или нет, может с потолка взяли, как говорили нам в школе :)


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 18:14 
Но ведь это не мне надо. Если тебе так тяжело написать мейкфайл на 20 строк (ещё 20 строк на тесты) и 60 строк достаточно примитивного кода (40 из которых скопировать), то, может быть, это всё просто не твоё. Но, видишь тут какое дело, я не могу _гарантировать_ воспроизводимость, только то, что ситуация имеет место. Зависит от оборудования, тестовых данных, и так далее. А может, у тебя там тулчейн без libcxx или руки кривые, много вариантов. И неплохо бы посмотреть на твои результаты, прежде чем продолжать разговор.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 10-Май-24 12:13 
> Но ведь это не мне надо.

В смысле, не тебе? Тебя кто-то заставил задать вопрос, якобы тебе интересен ответ?

> Если тебе так тяжело написать мейкфайл
> на 20 строк (ещё 20 строк на тесты) и 60 строк
> достаточно примитивного кода (40 из которых скопировать), то, может быть, это
> всё просто не твоё.

Мейкфайл для сборки одной единицы трансляции? Это не просто тяжело, мне такую бессмысленную деятельность религия не позволяет.

> Но, видишь тут какое дело, я не могу _гарантировать_ воспроизводимость,
> только то, что ситуация имеет место. Зависит от
> оборудования, тестовых данных, и так далее.

Естественно, зависит. Потому ты и должен указать, что именно, чем, с какими ключами собирал. Что бы каждый мог тупо скопировать и посмотреть, так ли это в его случае. Это позволяет локализовать проблему.

> А может, у тебя там тулчейн без libcxx или руки кривые, много вариантов.

Вот потому ты и должен указать, какой у тебя "тулчейн", что бы повторяли именно с ним.

> И неплохо бы
> посмотреть на твои результаты, прежде чем продолжать разговор.

Для продолжения разговора с тобой мне результаты не требуются - априори ясно, что ты не ставил эксперимент. Ты можешь с важным видом написать любую чушь: мне этого достаточно, что бы ответить, как оно принято в метрологии. Если настроение окажется подходящим.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 10-Май-24 15:01 
>[оверквотинг удален]
> ли это в его случае. Это позволяет локализовать проблему.
>> А может, у тебя там тулчейн без libcxx или руки кривые, много вариантов.
> Вот потому ты и должен указать, какой у тебя "тулчейн", что бы
> повторяли именно с ним.
>> И неплохо бы
>> посмотреть на твои результаты, прежде чем продолжать разговор.
> Для продолжения разговора с тобой мне результаты не требуются - априори ясно,
> что ты не ставил эксперимент. Ты можешь с важным видом написать
> любую чушь: мне этого достаточно, что бы ответить, как оно принято
> в метрологии. Если настроение окажется подходящим.

На этом можно и закончить разговор. Ты некомпетентен и способен только заниматься пустословием и глупо переводить стрелки. Да, меня интересует, почему используется такой неэффективный код в индустриально принятом компиляторе, но и только. Может быть, я что-то упускаю и этому есть оправдание.

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

Твоё желание зачем-то спорить с очевидным вообще странно выглядит. Я за полчаса собрал и протестировал все варианты во всех интересующих условиях (разные носители, разный размер файла) несколькими тулчейнами, изучил их в дизассемблере и выяснил много интересного благодаря тому же cachegrind, в котором видно, что именно создаёт задержки в коде.

И мне было вполне интересно выяснить наиболее эффективные приёмы чтения файлов и по какой причине в одних компиляторах они ощутимо более эффективны, чем в других. Если ты не способен воспроизвести такой элементарный эксперимент, то говорить тут просто не о чем, и тебе определённо стоит прекратить тратить своё и чужое время.


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 10-Май-24 16:01 
> На этом можно и закончить разговор.

Так будь последователен, закончи. Зачем ты написал следом простыню? Возомнил, что я буду читать, когда ты не указал условия эксперимента?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 10-Май-24 16:14 
Именно это я и сделал, попутно поставив все точки и указав на определённые когнитивные ошибки, а также абсолютную необоснованность домыслов. Немного приятно, что мои собственные домыслы о твоих способностях оказались корректными.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 12-Май-24 10:12 
Спасибо, показал цену своих слов: написал "закончил" и следом два сообщения. Это понятнее для зрителя, чем отсылка к метрологии.

"Релиз набора компиляторов GCC 14"
Отправлено Пряник , 07-Май-24 15:26 
Возьми да сравни код на ассемблере. Или нам за тебя это делать? Мне лень.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:44 
Так я вижу в дизассемблере, но это не ответ на вопрос "почему".

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:20 
Я тебе тайну открою, возможно. Под MacOS и iOS оно, вероятно, более оптимально компиляет ;)

"Релиз набора компиляторов GCC 14"
Отправлено Пряник , 07-Май-24 17:27 
Если видишь, тогда сравнивай по одной команде. Всё познаётся в сравнении.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 09:58 
Это бессмысленное сравнение. Если уж сравнивать, то время исполнения одной (любой) команды и время чтения с накопителя.

"Релиз набора компиляторов GCC 14"
Отправлено Ivan7 , 07-Май-24 19:36 
Потому что код криво написан. Это и дураку ясно.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:39 
Почему все эти корпорации не могут написать clang не криво? Гнутый опенсорсный компилятор унижает всех этих корпоративных разработчиков.

"Релиз набора компиляторов GCC 14"
Отправлено Ivan7 , 07-Май-24 19:50 
Там код по ссылке "кривой", поэтому работает медленно. Такое часто бывает, что код, использующий стандартную библиотеку работает медленно. К сожалению реализация стандартных библиотек С++ в Clang и GCC оставляет желать лучшего. Либо надо где-то что-то настраивать. Для достижения лучшей производительности часто приходится переписывать какую-то функциональность самостоятельно вместо того, чтобы воспользоваться ею из стандартной библиотеки С++. Своя реализация, бывает, что в разы и даже в десятки раз работает быстрее... Как-то так. Мне казалось, что стандартную библиотеку должны писать профессионалы, но нет...

"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 21:01 
> Там код по ссылке "кривой", поэтому работает медленно. Такое часто бывает, что
> код, использующий стандартную библиотеку работает медленно. К сожалению реализация стандартных
> библиотек С++ в Clang и GCC оставляет желать лучшего. Либо надо
> где-то что-то настраивать. Для достижения лучшей производительности часто приходится
> переписывать какую-то функциональность самостоятельно вместо того, чтобы воспользоваться
> ею из стандартной библиотеки С++. Своя реализация, бывает, что в разы
> и даже в десятки раз работает быстрее... Как-то так. Мне казалось,
> что стандартную библиотеку должны писать профессионалы, но нет...

без примера - ложь, звездёжь и провокация.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 22:24 
К clang много вопросов, не догадывается до достаточно простых вещей. В книге, кстати, рассматривается также и "переписывать какую-то функциональность самостоятельно", но что-то не впечатляет. Можно предположить, что только 1 вариант неплохо работает (но он ощутимо медленнее "улучшенных" вариантов):

        time -p ./bin/readfile_string.gcc "$TESTFILE"
        time -p ./bin/readfile_string.gcc "$TESTFILE"
        time -p ./bin/readfile_string.gcc "$TESTFILE"
---
real 12.70
user 1.54
sys 1.93
---
real 6.53
user 1.59
sys 1.76
---
real 5.95
user 1.63
sys 1.59
        time -p ./bin/readfile_string.clang "$TESTFILE"
        time -p ./bin/readfile_string.clang "$TESTFILE"
        time -p ./bin/readfile_string.clang "$TESTFILE"
---
real 11.67
user 0.92
sys 1.96
---
real 6.69
user 0.87
sys 1.68
---
real 5.73
user 0.88
sys 1.68
        time -p ./bin/readfile_resize.gcc "$TESTFILE"
        time -p ./bin/readfile_resize.gcc "$TESTFILE"
        time -p ./bin/readfile_resize.gcc "$TESTFILE"
---
real 10.72
user 0.12
sys 1.33
---
real 1.14
user 0.14
sys 0.99
---
real 1.14
user 0.15
sys 0.98
        time -p ./bin/readfile_resize.clang "$TESTFILE"
        time -p ./bin/readfile_resize.clang "$TESTFILE"
        time -p ./bin/readfile_resize.clang "$TESTFILE"
---
real 10.79
user 0.42
sys 1.44
---
real 1.35
user 0.47
sys 0.87
---
real 1.32
user 0.43
sys 0.87
        time -p ./bin/readfile_assign.gcc "$TESTFILE"
        time -p ./bin/readfile_assign.gcc "$TESTFILE"
        time -p ./bin/readfile_assign.gcc "$TESTFILE"
---
real 11.03
user 0.41
sys 1.86
---
real 3.86
user 0.44
sys 1.61
---
real 3.84
user 0.40
sys 1.56
        time -p ./bin/readfile_assign.clang "$TESTFILE"
        time -p ./bin/readfile_assign.clang "$TESTFILE"
        time -p ./bin/readfile_assign.clang "$TESTFILE"
---
real 11.04
user 0.76
sys 2.03
---
real 3.99
user 0.71
sys 1.55
---
real 5.06
user 0.71
sys 1.70
        time -p ./bin/readfile_whileread.gcc "$TESTFILE"
        time -p ./bin/readfile_whileread.gcc "$TESTFILE"        
        time -p ./bin/readfile_whileread.gcc "$TESTFILE"
---
real 31.52
user 29.94
sys 0.77
---
real 30.23
user 29.93
sys 0.25
---
real 30.20
user 29.90
sys 0.26
        time -p ./bin/readfile_whileread.clang "$TESTFILE"
        time -p ./bin/readfile_whileread.clang "$TESTFILE"
        time -p ./bin/readfile_whileread.clang "$TESTFILE"
---
real 101.05
user 93.37
sys 4.81
---
real 90.21
user 83.18
sys 4.93
---
real 89.42
user 83.58
sys 4.34


"Релиз набора компиляторов GCC 14"
Отправлено Прадед , 07-Май-24 23:50 
Гцц лучше в лайкли/анлайкли. Такое чувство что в шланге его пустым местом оставили

"Релиз набора компиляторов GCC 14"
Отправлено Ivan7 , 08-Май-24 03:46 
Переписывание тупо в лоб не особенно эффективно. Эффективно переосмысление задачи: изменение интерфейса какого-то функционала вместе с изменением модели его использования, что позволяет сделать более эффективную реализацию. В таком случае преимущество по производительности и/или памяти можно получить в разы и даже в десятки раз по сравнению со стандартными библиотеками С и С++, причём часто вместе с улучшением удобства использования. Иногда можно немного урезать функционал или гибкость, но сильно поднять производительность. В таком духе. Тем более программный интерфейс у стандартной библиотеки С++ такой себе, на любителя, часто очень многословный и плохо читаемый.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 22:54 
Ой все, типа никто не знает что гцц пишет красношапка .

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 23:06 
Сомневаюсь, у неё были только разработчики для avahi, но они перебрались в Майрософт.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 00:31 
Когда-то точно писала. В эпоху форка под названием egcs точно было. Но и сами они тогда были настоящей опенорсной компанией.

"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 14:38 
лучший

"Релиз набора компиляторов GCC 14"
Отправлено НяшМяш , 07-Май-24 14:55 
> для выявления переполнений буфера, например, добавлена возможность отображения диаграммы с визуализацией состояния, приводящего к переполнению

Так стоп, оставьте свои диагностики и диаграммы растовикам. Настоящий сяшник обязан ещё в голове избежать переполнения буфера - вон сколько софта без багов написали.


"Релиз набора компиляторов GCC 14"
Отправлено Fracta1L , 07-Май-24 16:12 
Похоже, с сишниками стало всё плохо, если им начали диаграммы со стрелочками рисовать)

(я имею в виду реальных сишников, а не фэнтезийных из комментов на опеннете)


"Релиз набора компиляторов GCC 14"
Отправлено 12yoexpert , 07-Май-24 15:04 
наканецта можно нормально с++23 пощупать, до этого больше всего с++23 в гомо-msvc++ поддерживались

"Релиз набора компиляторов GCC 14"
Отправлено eugene_martein , 07-Май-24 16:29 
import std; вроде так и не завезли

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:38 
Не, не завезли. И я очень опечален этим. В новых книжках повсеместно описывают работу с модулями и для этого рекомендуют использовать MSVC.

"Релиз набора компиляторов GCC 14"
Отправлено eugene_martein , 07-Май-24 20:42 
Да и то, под CMake'ом всё равно пока очень тяжело заставить работать этот import std;
Может вот-вот в CMake 3.30 сделают простой способ его включения. Тогда можно будет параллельно читать книгу Крэга Скотта про CMake и Ivor'а Horton'а по C++23

"Релиз набора компиляторов GCC 14"
Отправлено 12yoexpert , 08-Май-24 00:47 
да сейчас в принципе выбор книг по 23 плюсам невелик

"Релиз набора компиляторов GCC 14"
Отправлено 12yoexpert , 08-Май-24 00:46 
> Не, не завезли. И я очень опечален этим

аналогично, читаю beginning c++23, а там такое:

https://github.com/Apress/beginning-cpp23/issues?q=is%3...


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 20:09 
Ближайшие лет 5-10 можете про модули не вспоминать. Разве что на коленке поиграться ради интереса.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:19 
What changed?

All of these were either invalid in C99, invalid even in C89, or extremely dubious. Compilers just tolerated them as quasi-extensions until now to avoid disruption.

    Clang 15 makes the following errors by default:
        -Werror=int-conversion

    Clang 16 (released March 2023) makes the following errors by default:
        -Werror=implicit-function-declaration
        -Werror=implicit-int
        -Werror=incompatible-function-pointer-types (GCC does not have a specific equivalent error (PR109835), use -Werror=incompatible-pointer-types instead when testing)

    GCC 14 (to be released appx. April/May 2024) makes the following errors by default:
        -Werror=int-conversion
        -Werror=implicit-function-declaration
        -Werror=implicit-int
        -Werror=incompatible-pointer-types
        -Werror=return-mismatch ('new' warning in GCC 14, split out from -Wreturn-type)
        -Werror=declaration-missing-parameter-type (new warning in GCC 14)


"Релиз набора компиляторов GCC 14"
Отправлено nc , 07-Май-24 15:22 
Всё хочу чтобы они сделали __declspec(property), удобная же штука, а уж GCC славится всяческими полезными расширениями (многие из которых просто можно брать готовые и вносить в стандарт языка)

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:34 
Лишь бы [[gnu::]] не использовать. Позаимствовано из C++.

"Релиз набора компиляторов GCC 14"
Отправлено nc , 08-Май-24 08:40 
Да пускай как угодно называется, главное чтобы сама фича была.

"Релиз набора компиляторов GCC 14"
Отправлено rtfm , 10-Май-24 14:33 
RTFM https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:34 
Как там с поддержкой раста уже?

"Релиз набора компиляторов GCC 14"
Отправлено Hck3r , 07-Май-24 15:54 
С поддержкой D давно порядок

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:12 
Похоже на то, что средства работы с AST ещё не перетянули с DMD. Или у меня неточные представления?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 12-Май-24 23:03 
Кстати, не подскажете, куда Dшники с сайта https://lhs-blog.info/ перебрались? А то домен вообще перестал определяться.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:57 
Пока растовики не пришлют патч - никак.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 17:37 
Уже все забыли что в gcc реально добавляют раст - gccrs.

Вот даже ссылка на ежемесячные отчеты с прогрессом. Есть milestone-ы до весны 2025... Может в gcc 16 войдет полная версия компилятора.
https://opennet.ru/57491-rust
https://rust-gcc.github.io/


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 18:11 
Такой прекрасный язык, что даже оба компилятора для него написаны на С++

"Релиз набора компиляторов GCC 14"
Отправлено Anon62513512124 , 07-Май-24 18:48 
разве rust еще не self-hosted?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:02 
Давным-давно. И первые версии на Ocaml, а не на дырявом были написаны.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 12:02 
Rust зависит от llvm, так что он не self-hosted.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 14:39 
gcc зависит от  binutils, тоже не сильно самостоятельный проект.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 12-Май-24 23:05 
Ага, не путай тёплое с мокрым, компилятор с линкером.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 21:14 
> Давным-давно. И первые версии на Ocaml, а не на дырявом были написаны.

Вперся кому ваш эзотерик, аж два раза. А вулны в компилере... не хочу вас расстраивать, но если проект решил вас при сборке поиметь, эксплуатация вулна в компилере это какой-то сложный и эзотеричный способ достойный фанатов ocaml. Более приземленные личности, вон, "тесткейсов" в билд систему запихнули - и в дамках.


"Релиз набора компиляторов GCC 14"
Отправлено cheburnator9000 , 08-Май-24 04:38 
Rust под собой использует llvm, а он как раз написан на C++. Благодаря llvm у rust есть возможность поддерживать все его архитектуры CPU. В отличие от Go, когда который только начинали создавать у llvm не было всех возможностей необходимые для Go, а вот сейчас уже давно есть.

"Релиз набора компиляторов GCC 14"
Отправлено Советский инженер , 08-Май-24 09:55 
как ни странно, но все нормальные компиляторы С тоже на С++ написаны

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 15:11 
Tiny C Compiler и pcc - написаны на Си :-P

"Релиз набора компиляторов GCC 14"
Отправлено Bottle , 09-Май-24 18:23 
Tiny C Compiler не является нормальным компилятором по причине скорости генерируемого кода. Но проект занятный, да.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 11-Май-24 16:53 
По таким строгим критериям тогда и единственный пригодный компилятор Rust не является нормальным.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 19:21 
Только по одной причине - AST разбирать с помощью STL проще

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 18:58 
> Как там с поддержкой раста уже?

gccrs весьма активно пилят. Читай фороникс, там про это есть - и GSoC актуальный по этой теме весьма приличный, например.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 21:54 
А вот скажи почему этот самый gccrs пилят на С++, а не на расте?

"Релиз набора компиляторов GCC 14"
Отправлено errandrunner , 07-Май-24 22:29 
Бутстрапить проще, да и на расте реализация раста уже есть.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 15:12 
То есть в расте есть какие-то проблемы с бутстрапом? А говорят Сишку заменить хочет

"Релиз набора компиляторов GCC 14"
Отправлено errandrunner , 10-Май-24 20:38 
> То есть в расте есть какие-то проблемы с бутстрапом? А говорят Сишку
> заменить хочет

А сишники часами только сидят и бустрапят компиляторы? В последний раз я проверял, это делают только разработчики компиляторов и мейнтейнеры пакетов.

Бутстрап rustc, конечно, долго (а на всяких эзотерических сетапах ещё и муторно) делать, но большинство людей с этим вообще не сталкиваются.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 11-Май-24 16:58 
А в Си проблем с бутстрапом нет, вот и не делают.

"Релиз набора компиляторов GCC 14"
Отправлено Прадед , 08-Май-24 00:29 
Там жёсткая привязка к шлангу, говорят. Раньше-то он в сишку сначала гонялся, а потом компиляй-нехочу.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:35 
ждём новых багов и проблем в различном программном обеспечении. Я до сих пор помню, как frrouting версии 7.5 крашился при sh ip ospf interface. А текже пог рандомно крашнутся, при анонсировании l3vpn через bgp.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:11 
>  ждём новых багов и проблем в различном программном обеспечении. Я до сих пор
> помню, как frrouting версии 7.5 крашился при sh ip ospf interface. А текже
> пог рандомно крашнутся, при анонсировании l3vpn через bgp.

Багов бояться - разработкой софта не заниматься. А если вам надо стабильность - в чем ваша проблема юзать какой-нибудь стабильный дистр, проверив раз в дохрена что все ок - получите 4-8 лет спокойной жизни, а может и больше. А если вы хотели все сами компилять распоследним компилером распоследней версии софта - все новые баги будут ваши! Простите, бесплатный сыр - только второй мышке. Жаль что вам про это не рассказали.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:46 
Спасибо. Как обновится w64devkit и если VirusTotal не найдет там чего-то страшного (а то я очкую, даже зная, что скорее всего это ложное срабатывание), то тогда поюзаю эту штуку.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 15:56 
Модули С++20 походу никогда нормально не заработают

"Релиз набора компиляторов GCC 14"
Отправлено Дед , 07-Май-24 16:08 
На модули в плюсах можно смело забивать. Быстрее рак на горе засыестит, чем их полноценно реализуют...

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:09 
А метаклассы в каком стандарте ждать? Я даже не про реализацию, а, хотя бы, про стандартизацию.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 18:17 
лучше сразу мета-мета классы

"Релиз набора компиляторов GCC 14"
Отправлено Fracta1L , 07-Май-24 16:14 
А что с ними не так?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:22 
STL же ещё препроцессором, а не модулями.

"Релиз набора компиляторов GCC 14"
Отправлено Fracta1L , 07-Май-24 17:27 
Это досадно, конечно (без сарказма), но разве фатальная преграда?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:04 
Без препроцессора ожидаемо повышение скорости компиляции.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 22:22 
https://en.cppreference.com/w/cpp/compiler_support/20

На деле только Visual Studio более менее полноценно реализовал модули, но и там IntelliSence не работает, если в проекте есть модули


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 10:05 
Напоминают export template.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:25 
>Модули С++20 походу никогда нормально не заработают

Это уже Паскаль головного мозга. Бывшим паскальщикам, в своё время надо было переходить на Джаву, а не C++.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 17:34 
Кто поумнее, так и сделал.

"Релиз набора компиляторов GCC 14"
Отправлено Bottle , 07-Май-24 18:31 
Как будто что-то плохое. Модули нужны в первую очередь для ускорения и без того медленной компиляции.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 21:47 
> для ускорения
> и без того медленной

Взаимоисключающие параграфы.


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 10:11 
>> для ускорения
>> и без того медленной
> Взаимоисключающие параграфы.

Показательно, да. Сами не понимают, что пишут, повторяя за кем-то мантры. Если бы "для ускорения медленной", тогда бы имело смысл.


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 10:09 
> Как будто что-то плохое. Модули нужны в первую очередь для ускорения и
> без того медленной компиляции.

То есть они нужны не тем, кто программы пишет, а кто собирает из чужих исходников.


"Релиз набора компиляторов GCC 14"
Отправлено Bottle , 08-Май-24 11:43 
Товарищ нуби когда-нибудь поумнеет, чтобы осознать важность быстрой сборки программ для тех, кто пишет код.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 14:14 
Может и ты когда-нибудь найдёшь у меня на гитхапе и поймёшь, что если 15 лет назад я сделал header-only стандартную библиотеку на плюсах, то я ещё тогда экспертных баек наслушался. Показать свой проект, который дооооолго собирается, понятное дело, не сможешь.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 12:16 
Какая разница из своих/несвоих? Скорость очень не помешает тем, кто свою систему собирает из исходников. Кдешники-гентушники возрадуются!

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 14:16 
Разница существенная. Программисты используют язык, что бы создавать программное обеспечение. Если нет ПО, то собирать нечего. Потому в данном вопросе в приоритете программисты.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 09-Май-24 12:14 
Из чужих исходников программа собирается один раз, а из своих — сто двадцать один (за день).

"Релиз набора компиляторов GCC 14"
Отправлено Буратино , 10-Май-24 02:03 
Сто двадцать раз на дню компилируют вот такие персонажи:
>Разгадку подсказал мне однажды сам кандидат: он объяснил, что обычно, когда пишет код, то сразу же пытается его запускать и редактирует вусмерть, пока хоть как-то не заработает. ... Когда удалось нашаманить, чтобы текст компилировался, то можно выпускать бета-версию, а когда программа сможет хоть раз не упасть и не зависнуть — финальный релиз. Остальные баги найдут пользователи.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 10-Май-24 12:41 
Он в vim редактирует? Ошибки синтаксиса обычно редактор подсвечивает. Но местные умельцы скомпилировать 121 раз банально врут: сначала у них "дооооолго компилируется", а потом оказывается, что менее 3-х минут.

"Релиз набора компиляторов GCC 14"
Отправлено n00by , 10-Май-24 12:20 
Собирается программа из объектников, а не из исходников. Но откуда тебе это знать?

"Релиз набора компиляторов GCC 14"
Отправлено Серб , 08-Май-24 14:55 
А зачем они такие нужны?

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

Но стандарт приняли таким, что такие зависимости модулей недопустимы.

Так какую проблему они могут решить?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 10-Май-24 05:47 
Тебе то ничего не нужно, когда у тебя проект из одного файла

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:20 
>Реализованы возможности, определённые в будущем Си-стандарте C23

Кто в курсе ратификация стандарта в этом году состоится? Почему комитет до сих пор держит стандарт в качестве черновика?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 18:30 
потомучто. держу в курсе!

"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 18:41 
>>Реализованы возможности, определённые в будущем Си-стандарте C23
> Кто в курсе ратификация стандарта в этом году состоится?

open-std.org/jtc1/sc22/wg14/www/docs/n3156.pdf
:)

> Почему комитет до сих пор держит стандарт в качестве черновика?

а ты хочешь еще один С11? куда спешить, вечность впереди.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:10 
Почему бы самый последний ратифицированный стандарт не использовать? В Сишке не так много (мало) нововведений в стандарты вносят, компиляторы с реализацией поспевают. Ну кроме чьего-то пальца, препятствий не видно.

"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 19:27 
> Почему бы самый последний ратифицированный стандарт не использовать? В Сишке не так
> много (мало) нововведений в стандарты вносят, компиляторы с реализацией поспевают. Ну
> кроме чьего-то пальца, препятствий не видно.

вы о чем?

P.S. а касательно стандарта - убери пдф из ссылки, и глянь другие, датированные 24 годом.
Работа кипит. Надеюсь, таймлайн что по ссылке скинул ранее они отодвинут. Не хотелось бы еще один С11 получить, когда они два дня назад обсуждают фичу.


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 08-Май-24 10:13 
>>Реализованы возможности, определённые в будущем Си-стандарте C23
> Кто в курсе ратификация стандарта в этом году состоится? Почему комитет до
> сих пор держит стандарт в качестве черновика?

Что бы можно было скачать и не жаловаться потом на цену.)


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 16:57 
Лучше c99 ничего нет.

"Релиз набора компиляторов GCC 14"
Отправлено anonymous , 07-Май-24 17:24 
Ты еще сидишь на ядре 2.6 с GNOME 2 и пишешь это из какого-нибудь Firefox 10, да?

"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 19:02 
> Ты еще сидишь на ядре 2.6 с GNOME 2 и пишешь это
> из какого-нибудь Firefox 10, да?

охосспаде. кто о чем, а вшивый о бане.


"Релиз набора компиляторов GCC 14"
Отправлено User , 07-Май-24 20:56 
Ну, у меня для вас плохие новости, да. 2.6.32 от какого-нибудь 5.15 в части стандарта c отличается вот "никак" и оба используют - та-дааам! С89.
Но вы конечно можете этим ретроградам объяснить, как и в чем они не правы..

"Релиз набора компиляторов GCC 14"
Отправлено anonymous , 12-Май-24 15:57 
И все же с 5.18 (или самая ранняя LTS - 6.1) используется C11 :)

"Релиз набора компиляторов GCC 14"
Отправлено User , 13-Май-24 07:01 
> И все же с 5.18 (или самая ранняя LTS - 6.1) используется
> C11 :)

В курсе - по этому и ограничился "каким-нибудь 5.15"


"Релиз набора компиляторов GCC 14"
Отправлено anonymous , 12-Май-24 16:00 
А вообще с точки зрения компилятора везде разные требования к версии GCC. Так что даже, если стандарт одинаков (C89), не факт, что какой-нибудь GCC 4.4 сможет собрать обе ветки.

"Релиз набора компиляторов GCC 14"
Отправлено User , 13-Май-24 07:01 
> А вообще с точки зрения компилятора везде разные требования к версии GCC.
> Так что даже, если стандарт одинаков (C89), не факт, что какой-нибудь
> GCC 4.4 сможет собрать обе ветки.

Не, ну это прям отдельная печальная история - костыли, велосипеды, компиляторы C и linux kernel... Вот уже ажно "ANSI - стандарт" на язык есть - а собрать чем угодно всё одно, нельзя.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:13 
> Лучше c99 ничего нет.

Без static assert'ов то? :) Не, их конечно можно и самому сделать но вот чтобы с нормальной диагностикой - уже сложнее, да...


"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 19:16 
> Лучше c99 ничего нет.

не-не-не, с89 - ессенция. пишешь свой компилер? с89 - база. с99 напишешь уже на с89.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:47 
Так-то с K&R надо начинать, а все эти ваши 89, 99 — баловство.

"Релиз набора компиляторов GCC 14"
Отправлено тыквенное латте , 07-Май-24 20:58 
> Так-то с K&R надо начинать, а все эти ваши 89, 99 — баловство.

унылый троллинг. c89 образно говоря, включает в себя субсет K&R, без особой модификации кода (сравни первую и вторую редакцию настольной книги). Более того, K&R такой, blunt standard (не стандарт вовсе), в результате чего семантика языка становится спекулятивна для интерпретации каждым поставщиком компилятора. с89 уравнивает компиляторы в этом.

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


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 17:44 
и что? код, сгенеренный этим компиллятором, быстрее получается, чем, когда превидущие генерировали?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 18:13 
Да, быстрее в некоторых случаях из-за улучшенной оптимизации. А ещё диагностика ошибок стала лучше

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 19:14 
Каждая версия приносит заметные улучшения. Самое впечатляющее в районе 9 версии случилось, генерировать PGO для произвольного кода стало намного проще. Просто собираешь программу как обычно, используешь во всех интересующих применениях, и пересобираешь с целевыми оптимизациями 2 раз. Жалко только для сишки хорошо работает. GCC с PGO даёт код в 100% случаев более быстрый и эффективный (в частности, задействует оптимизации 3 уровня только там, где они точно необходимы). Но появлялись ещё дополнительные оптимизации (например, очень эффективные для питона) и разного рода защиты.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 21:03 
А, вот интересно, кто знает:
почему u-boot от 2017г., собраный (под armv7) gcc 6 работает, а gcc 11 не работает?
Хотя ошибок сборки нет.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 07-Май-24 22:51 
Потому что типичная кодовая база системного ПО на Си - UB, хаки, расширения компилятора. В этот раз UB звезды сложились по-другому, возможно, компилятор выкинул что-то нужное.

Неплохо бы проверить, заработает ли с -O0.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 12:20 
>хаки, расширения компилятора

Если бы вот это вот поменялось, то тупо не скомпилировалось бы. А не то, что только не работает.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним с Оболони , 08-Май-24 06:21 
> не работает

Что ты имеешь ввиду? Мы не телепаты.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 10:40 
А чего тут иметь в виду? Всё как обычно по мануалу, кросс-компиляция:  

    make clean  
    make defconfig  
    make all  
    dd бинарник на sd-карту  

После gcc 6 загрузка есть, после gcc 11 загрузки нет. Исходники одни и те же.  
(для rk3288 например это так)


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 12:36 
А что линкер одной и той же версии при разных GCC?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 09:53 
> почему u-boot от 2017г., собраный (под armv7) gcc 6 работает, а gcc 11 не работает?

А у тебя новый тулчейн - того же triple'а? Т.е. например armhf -> armhf, none-eabi -> none-eabi, ... а иначе уже возможны варианты.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 10:56 
Да, нее, gcc в стандартной поставке "из коробки".
На fedora 31-35 пробовал собирать, u-boot не стартует.
Специально старую fedora 25 поставил с gcc 6, u-boot стартует.

Более древние инструменты требуют более древних сред.
Не стал с этим заморачиваться.

Получается сам u-boot под древний инструмент писался?
Ну, просто, с последними версиями u-boot такая же ерунда -
новыми инструментами собирается, но не работает.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 21:31 
> Более древние инструменты требуют более древних сред.
> Не стал с этим заморачиваться.
> Получается сам u-boot под древний инструмент писался?
> Ну, просто, с последними версиями u-boot такая же ерунда -
> новыми инструментами собирается, но не работает.

Ну хз, под мои железки 12-м GCC из Debian - нормуль билдуется. И работает. Но я знаю что делаю и таки более-менее трекаю состояние платформ и тулчейнов. А не так что раз - и через 5 версий прыгнули и гадай что, где и когда отпало.

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

А если вообще не стартит - ну печалька, смотреть чем-то типа JTAG или (если воспроизводится, в qemu с GDB дебаг хостом) где оно висит и делать выводы. Самое очевидное: у вас LTO не активен случайно по дефолту? С федористов станется а в бутлоадере и проч он могет и лишнего убить, в бутлоадере то.

Или как вариант посмотреть несколько версий тулчейна и понять где отвалилось. Если не лениво - bisect сделать. Благо это не особо долго и сложно. Если оно нужно.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 09-Май-24 18:17 
Спасибо, заработало!
Хм, в доке написано, что u-boot поддерживает LTO, но для девелоперских целей, можно указать NO_LTO=1 make. Старанно всё это.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 09-Май-24 18:36 
> Спасибо, заработало!

Офигеть :) попал пальцем в небо. Или что называется, системный скилл таки говорит за себя сам.

> Хм, в доке написано, что u-boot поддерживает LTO, но для девелоперских целей,
> можно указать NO_LTO=1 make. Старанно всё это.

Теоретиески, LTO может работать с кернелами, фирмварями, бутлоадерами и проч.

Практически, если кто-то что-то где-то проморгает или что-то пойдет не так, он может запросто убабахать якобы-unused код какого-нибудь interrupt (или чего там еще) handler'а, вызываемого ЖЕЛЕЗОМ - что компилеру не видно - как якобы-unusued. И вот тут можно малость обломаться если прошляпить этот момент. Мне LTO как-то выпилил таблицу векторов в фирмвари. Ну а что, ее никто из софта и правда не юзает. А то что она нужна железу... ээ... ну компилер то не телепат, грохнул dead code/data :)

Если что затыкается __attribute__((used)). А, да, к сожалению это нестандартный экстеншн. Ну вот нет в стандарте варианта как форсануть нужность энного объекта для оптимизера "потому что юзается железом".


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 09-Май-24 12:03 
Никогда такого не было и тут опять!

"Релиз набора компиляторов GCC 14"
Отправлено Прадед , 07-Май-24 23:29 
> обращение к необъявленным функциям (-Werror=implicit-function-declaration),

Свершилось


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 06:09 
>Объявлена устаревшей поддержка CPU Intel Xeon Phi.

А на чём под него теперь компилять, тем более, что его хоть купить можно стало?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 07:44 
Предыдущие версии компилятора из интернетов удалили?

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 08:36 
Фирменным конь пилятором от Интел. Он же icc пишут что он загнулся, но вроде ещё дышит.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 12:09 
Срочно писать разрабам GCC челобитную с приложением подтверждения факта наличия в продаже Xeon Phi. (На Aliexpress?) Чтоб не спешили с выкидыванием.

"Релиз набора компиляторов GCC 14"
Отправлено Есенин , 08-Май-24 17:38 
Куча Xeon-ов попала на мировой рынок по причине того, что хозяева центров обработки данных решили сделать апргрейд своего оборудования. А старые процессоры по дешёвке распродают. Да-да, Xeon устарел. И не забудьте прикупить к Xeon-у совместимую материнскую плату.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 09-Май-24 12:02 
Не Xeon, а Xeon Phi. Это не процессор в привычном понимании. И он не устарел, он просто никому не нужен.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 13-Май-24 18:46 
>Xeon Phi. Это не процессор в привычном понимании.

А что же это за зверь?


"Релиз набора компиляторов GCC 14"
Отправлено Вы забыли заполнить поле Name , 08-Май-24 08:59 
> Значительно расширены возможности для статического анализа кода на языке Си

Почему бы не взять для этого OCaml?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 12:04 
На OCaml написать статические анализаторы для лругих языков из GCC? Но для начала надо сам фронтенд OCaml туда запилить.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 13:19 
>В компиляторе для языка Fortran началась работа над поддержкой стандарта Fortran 2023

Для чего он нужен-то?


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 14:20 
Программы писать на нём. Наверное.

"Релиз набора компиляторов GCC 14"
Отправлено Есенин , 08-Май-24 17:42 
Зачем 2024 году Фортран? Значит, где-то что-то пишется на этом языке. Помните, внезапно оказалось, что более половины работающего софта мировых банков написан на Коболе. Я думаю, что ниша Фортрана это академические круги. Скорей всего старые математики.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 18:22 
Фортран по-прежнему лидирует в областях, где надо складывать матрицы, в частности, при вычислениях на суперкомпьютерах. Эффективней ничего не придумали. Погоду там считать, ядерные реакции, белки наверно, и так далее. Ну и NVIDIA последние годы активно занимается популяризацией, у неё правда свой компилятор и он поверх LLVM.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 19:33 
> Фортран по-прежнему лидирует в областях, где надо складывать матрицы, в частности, при вычислениях на суперкомпьютерах. Эффективней ничего не придумали.

А если я реализую то же самое умножение матриц, только на Си, это будет менее эффективно? :)


"Релиз набора компиляторов GCC 14"
Отправлено 1 , 08-Май-24 19:40 
за много десятилетий на фортране написале очень много библитек для научных расчетов. сам факт непрекращающегося развития фортрана говорит о его востребованности

"Релиз набора компиляторов GCC 14"
Отправлено 1 , 08-Май-24 19:41 
и да, эти библиотеки отлажены и я думаю даже очень "вылизаны"

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 23:33 
> за много десятилетий на фортране написале очень много библитек для научных расчетов.
> сам факт непрекращающегося развития фортрана говорит о его востребованности

Широко известный в узких кругах. Где-то сразу за коболом. Xnec2c приветы передавал... таки - переписали, вот. С openacc и проч даеж зело щустрее стало.


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 08-Май-24 20:58 
Вообще, да. Обычно, если избавляются от фортрана (по разным причинам), то заменяют его на кресты. С переменным успехом.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 09-Май-24 12:39 
не реализуешь

"Релиз набора компиляторов GCC 14"
Отправлено Bottle , 09-Май-24 18:28 
Только если не забудешь ключевое слово "restrict", делающее эквивалентными указатели в сишке и фортране.

"Релиз набора компиляторов GCC 14"
Отправлено Вы забыли заполнить поле Иаше , 13-Май-24 21:53 
тут так смешно про модули в С++ рассуждают, а в фортране они есть уже 30 лет как...

Причём на любой вкус: можно как в Си сигнатуры отдельно, реализации отдельно (субмодули), можно всё в один файл пихать.

Ещё вот тут: https://fortran-lang.org/learn/rosetta_stone/ рядом код на Питоне и Фортране, делающий примерно одно и то же, выглядит не то чтобы сильно длиннее.


"Релиз набора компиляторов GCC 14"
Отправлено n00by , 14-Май-24 12:30 
В Си (и плюсах) "модули" реализованы препроцессором и линкером, вот что самое смешное.

"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 15-Май-24 18:00 
>тут так смешно про модули в С++ рассуждают, а в фортране они есть уже 30 лет как...

Ну так а шо вы хотели? Сишконаследие...


"Релиз набора компиляторов GCC 14"
Отправлено Аноним , 11-Май-24 17:05 
Если даже на нем пишут мало что нового все еще нужно поддерживать то что работает и во что вложены большие деньги, например прогнозы погоды всякие. Это тебе не hello world переписать, туда миллионы вложены.

"Релиз набора компиляторов GCC 14"
Отправлено awg , 10-Май-24 22:23 
> После года разработки опубликован релиз свободного набора компиляторов GCC 14.1, первый
> значительный выпуск в новой ветке GCC 14.x. В соответствии с новой
> схемой нумерации выпусков, версия 14.0 использовалась в процессе разработки, а незадолго
> до выхода GCC 14.1 уже ответвилась ветка GCC 15.0, на базе
> которой будет сформирован следующий значительный релиз GCC 15.1...
> Подробнее: https://www.opennet.ru/opennews/art.shtml?num=61132

жду в trixie и собирать ванильное ядро с -fhardened >:-F


"Релиз набора компиляторов GCC 14"
Отправлено cheburnator9000 , 12-Май-24 17:38 
ftrivial-auto-var-init=zero в некоторых ситуациях в работе с буферами может снизить производительность кода до 35%, скорость можно вернуть переписав код, но как пишут не всегда возможно да и не всегда получишь оригинальную производительность.

"Релиз набора компиляторов GCC 14"
Отправлено awg , 12-Май-24 19:36 
> ftrivial-auto-var-init=zero в некоторых ситуациях в работе с буферами может снизить производительность
> кода до 35%, скорость можно вернуть переписав код, но как пишут
> не всегда возможно да и не всегда получишь оригинальную производительность.

а разве mitigations, уже реализованные, не снижают производительность?
плюс к ним сет -fhardened.
вообщем жду не дождусь когда пайплайн в trixie зарелизит gcc-14


"Релиз набора компиляторов GCC 14"
Отправлено cheburnator9000 , 12-Май-24 20:03 
>> ftrivial-auto-var-init=zero в некоторых ситуациях в работе с буферами может снизить производительность
>> кода до 35%, скорость можно вернуть переписав код, но как пишут
>> не всегда возможно да и не всегда получишь оригинальную производительность.
> а разве mitigations, уже реализованные, не снижают производительность?
> плюс к ним сет -fhardened.
> вообщем жду не дождусь когда пайплайн в trixie зарелизит gcc-14

Нет. Это совсем другое. mitigations в разных случаях по разному влияют на работу CPU снижая эффективность спекулятивного выполнения кода.

https://serge-sans-paille.github.io/pythran-stories/trivial-...

Этот флаг же в свою очередь заставляет всегда инициировать память объектов стека нулями. Постоянное пересоздание буферов в циклах в таких случаях приведёт к неминуемой потери скорости из-за затирания блока памяти нулями. Да это спасает от проблем когда кто-то захочет сразу прочитать буфер без записи в него новых данных (получит нули), без флага же он получит рандомные мусорные данные.


"Релиз набора компиляторов GCC 14"
Отправлено awg , 12-Май-24 20:24 
>> ftrivial-auto-var-init=zero в некоторых ситуациях в работе с буферами может снизить производительность
>> кода до 35%, скорость можно вернуть переписав код, но как пишут
>> не всегда возможно да и не всегда получишь оригинальную производительность.
> а разве mitigations, уже реализованные, не снижают производительность?
> плюс к ним сет -fhardened.
> вообщем жду не дождусь когда пайплайн в trixie зарелизит gcc-14

$ zgrep -i zero /proc/config.gz
CONFIG_DM_ZERO=m
CONFIG_HID_U2FZERO=m
CONFIG_HID_ZEROPLUS=m
CONFIG_ZEROPLUS_FF=y
# CONFIG_USB_ZERO is not set
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
CONFIG_INIT_STACK_ALL_ZERO=y
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
# CONFIG_ZERO_CALL_USED_REGS is not set

оно, не? это running image, vanilla 6.8.9 @ localhost