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

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

Отправлено opennews , 25-Апр-25 22:42 
После года разработки опубликован релиз свободного набора компиляторов GCC 15.1, первый значительный выпуск в новой ветке GCC 15.x. В соответствии со схемой нумерации выпусков, версия 15.0 использовалась в процессе разработки, а незадолго до выхода GCC 15.1 уже ответвилась ветка GCC 16.0, на базе которой будет сформирован следующий значительный релиз GCC 16.1...

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


Содержание

Сообщения в этом обсуждении
"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 22:42 
А по выходам за границы там как? Может для этого какой-то стандарт?

"Релиз набора компиляторов GCC 15"
Отправлено Граница на замке , 25-Апр-25 23:06 
Конечно есть стандарт называеться .at(index) в любой std

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 09:37 
>" А по выходам за границы там как? Может для этого какой-то стандарт? "

Называется си с плюсами)))


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 22:46 
Слушайте, а что с GNU Pascal случилось? Почему компилятор никак не развивается? Почему всякое непотребство типа Modula-2 (вообще кто-то слышал что то об этом языке?) или Objective-C поддерживаются, а Паскаль нет?

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:07 
почти все одиночки сидят на freepascal + lazarus, в некоторых корпорациях еще Delphi используется, но там лицензия от 3500 $


GNU Pascal как бы не нужен никому


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:16 
Delphi много где используется в бизнес сегменте (не путать с серверами и ынтерпрайзом). А вот free pascal редкостное днище, которое даже до турбопаскаля 90-х не дотягивает даже по качеству документации, впечатление что сделано тяп-ляп неорганизованной толпой людей.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:18 
Delphi — это такой же паскаль, как Visaul Basic по сравнению с изначальным бейсиком.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:23 
Не уверен, что до сих пор где-то что-то живо написанное на обычном бейсике, а вот visual basic 6 живее всех живых, в том же бизнесе или в производственной среде. По крайней мере, vb6 скорее жив, чем мёртв.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 08:09 
И в этом плане тоже.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:44 
Дельфи и живёт в бизнесе потому что у него есть коммерческая поддержка. В гнутом виде никому не необходим.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 01:30 
> Слушайте, а что с GNU Pascal случилось?

Пpoтуxло, зaвoнялoсь и испортилось, как и весь Пaскaль. На нём даже в шкoлaх никто уже не пишет. Место этому языку на пoмoйкe. Даже пoкoйный Niklaus Wirth сделал ставку на Обepoн, а не на Пaскaль.


"Релиз набора компиляторов GCC 15"
Отправлено Маняним , 26-Апр-25 03:07 
> Modula-2 (вообще кто-то слышал что то об этом языке?)

Так это и есть улучшенная версия паскаля)


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:02 
> Поддержка указания диапазонов целых значений в выражениях "case"

Скоро так и Паскаль догонят!


"Релиз набора компиляторов GCC 15"
Отправлено Маняним , 26-Апр-25 02:48 
Как язык паскаль возможно лучшее что создано. Но то что он ушёл в обучение сыграло злую шутку.

"Релиз набора компиляторов GCC 15"
Отправлено Тот_Самый_Анонимус_ , 26-Апр-25 08:21 
>Как язык паскаль возможно лучшее что создано.

Отвратительный язык, заточенный под англ. Это просто убого использовать операторные скобки и некоторые операции (целочисленное деление, остаток, логические операции) в виде слов.

Он был создан для обучения. А то что он ушёл в реальную разработку — ошибка.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:10 
> Поддержка присвоения имён циклам для того, чтобы ссылаться на них в коде.

зачем, если есть goto?


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:17 
Только хотел написать, что они goto переизобрели.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:19 
так у них с логикой проблемы, метка то после цикла должна быть :) а то у них выход из цикла означает начать его заново.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:19 
К хорошему всегда возвращаются. Никогда не понимал отказа от goto, ведь это крайне удобная вещь, с которой можно писать очень оптимизированный код, а не раздувать его ради простой функциональности на 100500 строк.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:23 
> Никогда не понимал отказа от goto,

так вам не на С надо писать, а на асм. В Си чисто по религии goto (фактически асмовский jump) быть не должно.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:27 
С jmp, jnz/jne можно очень красивый код писать. А рилигия в программировании, как и любые догмы, скорее вредны. Нужно всегда отталкиваться от целесообразности и конкретных требований\пожеланий к проекту.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:59 
> С jmp, jnz/jne можно очень красивый код писать.

так С создавали, чтобы абстрагироваться от асм и код был более структурным, а не jmp акробатика вверх-вниз. Но почему-то эту акробатику в виде примитивного goto оставили.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:27 
В 8080 была такая замечательная вещь — CALL по условию/RET по условию. Количество джампов сокращало в разы.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:33 
Так это же стек затрагивало, а значит уже сильно медленнее.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:42 
j<условие> метка
ret
метка:
— 10 + 10 тактов.

r<условие>
— 5/11 тактов.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 02:09 
Прикинь, в ARM почти любая инструкция может быть исполнена по условию.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 02:24 
У армов конечно, как и у ириски - очень вкусные инструкции, но лично меня всегда немного раздражало что нужно всегда отдельно грузить из памяти в регистры, перед операциями.
Понятно что иначе никак, но просто интеловский набор команд, когда можно сразу вторым операндом указать память, да еще со сдвигом, мне больше нравиться, просто лаконичнее выглядит.

"Релиз набора компиляторов GCC 15"
Отправлено Маняним , 26-Апр-25 02:46 
> в ARM почти любая инструкция может быть исполнена по условию

Но почему тогда армы до сих пор годятся только для телефонов? Сколько там уже пророчат смерть wintel?


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 03:33 
Помнится были даже смарты на интеле...
И всякие мини планшеты, тоже на интеле, у асуса таких было много, да и не только у них.
Вернее, не совсем планшеты, с резистивным тач экраном и выдвижной кверти клавиатурой, как прокачанные кпк.
Хороше время было!

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 06:25 
Почему не совсем планшеты? Вполне полноценные планшеты на андроиде были, у самого парочка валяется, один до сих пор рабочий даже.

"Релиз набора компиляторов GCC 15"
Отправлено Котик Биба , 26-Апр-25 03:41 
Для тебя вся техника Apple и ноуты на Snapdragon какая-то шутка?

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 04:14 
> Для тебя вся техника Apple и ноуты на Snapdragon какая-то шутка?

И не только для него. Ты ж не будешь спорить, что там телефонный процессор (SoC)?


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 08:10 
И что в нём телефонного?

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 03:00 
Могла быть, лет 10 назад. В ARMv8 биты предикации выкинули, а в Thumb их никогда и не было.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 06:15 
Ну вы мне прямо глаза открыли.
Вообще это не исключительная особенность ARM.
А вот то, что под ARM — особенно современный — писать на ассемблере  может только злостный мазохист, я и так знаю.
А в данном случае речь была о том, что 8086 вроде как и преемник 8080, а вот кое-чем полезным пришлось пожертвовать (до сих пор помню впечатления при переходе с Z80 на 8086: «а что, так можно разве?! …а вот так, что ли, нельзя?»).

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:07 
А надёжность?
"В своей следующей работе Дейкстра обосновал тот факт, что для кода без goto намного легче проверить формальную корректность."

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 01:19 
> А надёжность?
> "В своей следующей работе Дейкстра обосновал тот факт, что для кода без goto намного легче проверить формальную корректность."

И сел со своей войной против goto в лужу.
Более подходящего способа для управления ресурсами в Си чем goto нет.

После такого его невозможно воспринимать всерьез.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 05:01 
1. Не очень понимаю, на что он намекает. Для кода без развилок и циклов проверить формальную корректность ещё проще. Он предлагает выкинуть развилки и циклы?
2. Там, где требуется проверять формальную корректность, goto можно не использовать.
3. Сейчас бы хвастаться отсутствием goto в языке с поддержкой исключений. goto хотя бы из функции не выходит, тогда как исключения прошивают весь стек вызовов.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:21 
конечно надо же сделать как в расте (Ё..... тут пятиэтажный мат)

Named loops also have a distinct advantage of having substantial prior art across multiple other programming languages. C is not bound by any other language but to have a control feature behave in exactly the same way as precedent set by the wider Community is extremely good for readability and lowers the surprise factor. The idiom has been proven to work well in practice, and there is no good reason for C to diverge from a model the rest of the programming language meta-community seems to have found clearest.

For instance, in Rust:

fn main() {
    'outer: loop {
        println!("Entered the outer loop");

        'inner: loop {
            println!("Entered the inner loop");

            // This would break only the inner loop
            //break;

            // This breaks the outer loop
            break 'outer;
        }

        println!("This point will never be reached");
    }

    println!("Exited the outer loop");
}


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 02:53 
Выдыхай. Эту фичу тру-UNIX деды придумали для Limbo тридцоть лет назад, оттуда ее позаимствовали в Go и Rust. Одобрено ЪUNIXЪ-Омниссией с 1995, проверено временем.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:18 
for (int i = 0; i < n; ++ i) {
  for (int j = 0; j < n; ++ j) {
    if (something (i, j))
      goto end;
  }
}
end:

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

тог уж так надо было так писать, куда интуитивно чем в начале.

for () { } : for-end-identifier;


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:37 
Тут много зависит от тимлида :) Если упёртый и аргументы в пользу goto не принимает, то придётся в функцию оборачивать и делать ретёрны.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:56 
из таких вложенных циклов я обычно выхожу устанавливая в максимальное значение инкрементируемую переменную.

for (int i = 0; i < n; ++ i) {
  for (int j = 0; j < n; ++ j) {
    if (something (i, j))
      i = n;
      break;
  }
}


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:21 
Красиво, но фактически это тоже костыль, может быть даже похлеще goto, потому что всё равно оно вернётся и оценит i < 0 и только потом выйдет из цикла.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:34 
> может быть даже похлеще goto

да мне и for не нужен будет если я буду использовать goto :)


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 07:27 
А потом узнаете про промахи кэша при таких выходах, и что вложенные циклы вообще не нужны, нисколько, никогда.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 25-Апр-25 23:12 
>Директива "#embed", предназначенная для встраивания в код

~/.ssh/github


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 02:28 
Вот Вы смеетесь, а эмбед это вообще чуть ли не самое крутое, что ввели в язык.
Понятно что можно всякое нехорошее с ним делать, но и крутые штуки, типа встраивания ресурсов в технодемки, делать тоже можно и нужно.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 07:29 
Чо не сделают, лишь бы xxd не использовать. Все бы им в комбайны превращать.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 08:32 
Что не сделают, лишь бы костыли не использовать.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:28 
> компилятор для языка COBOL

Очень актуальное, а главное своевременно решение. П.С. А кто-то видел живьём вообще этот КОБОЛ? А то рассказывают про банки и прочий энтерпрайз, но кого не спросишь, делают выпученные глаза.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:34 
> А кто-то видел живьём вообще этот КОБОЛ?

Нет


"Релиз набора компиляторов GCC 15"
Отправлено abi , 26-Апр-25 00:43 
Да, видел живьём Fico Blaze Advisor в отечественном банке.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 00:46 
А что то от этого изменится?

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 01:00 
Пойдите на работу в банк и прочий энтерпрайз, увидите… а, для этого кобол для начала надо изучить.

"Релиз набора компиляторов GCC 15"
Отправлено Chlen22sm , 26-Апр-25 01:25 
> Пойдите на работу в банк и прочий энтерпрайз, увидите…

Это я удачно зашёл. Докладываю вам из глубин банков и прочих ынтерпрайзов... вижу java, кое-где c# и даже go, но не cobol. Лол.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 08:11 
В РФ? Тут, к счастью, такого слоя легаси не успело нарасти (за неимением самих банков).

"Релиз набора компиляторов GCC 15"
Отправлено cheburnator9000 , 26-Апр-25 01:14 
>> Возможность объявления переменных в операторе "if", например, "if (int x = get ()) {...}".

Ничего не понял это же прямо сейчас уже доступно нет??

https://godbolt.org/z/bPKqvsood в данном случае if это просто проверка либо на 0, либо можно использовать и для nulltpr.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 06:50 
Вы кинули код на C++, тогда как речь про Си.

На Си такого синтаксиса нет.


"Релиз набора компиляторов GCC 15"
Отправлено Сишник , 26-Апр-25 07:25 
Сейчас доступно в C++, а в статье речь о том, что это добавили в C.

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 01:17 
Опять придется инструкции по сборке пакетов переписывать.

"Релиз набора компиляторов GCC 15"
Отправлено Маняним , 26-Апр-25 02:49 
Как всегда в попсовых дистрах появится лет через 5?

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 06:51 
В Дебиан 13 точно не попадет, потому что тулчейн для сборки, где GCC играет ключевую роль, заморожен от 15-го марта :)

Будет в Дебиан 14, или более новая версия, если до заморозки успеет выйти 16-ая версия.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 07:09 
В Fedora 42 уже есть

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 06:28 
□ Атрибут "unsequenced", сигнализирующий, что результат не зависит от порядка выполнения.
□ Атрибут "reproducible", указывающий, что функция всегда возвращает один и тот же результат при одинаковых входных данных, т.е. не зависит от иных факторов.
□ Возможность объявления переменных в операторе "if", например, "if (int x = get ()) {...}".
□ Поддержка присвоения имён циклам для того, чтобы ссылаться на них в коде.

Гляжу на всё это и понимаю, что видел это в Nim. Авторы языка используют все конструкции из новых стандартов Си.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 08:17 
> Гляжу на всё это и понимаю, что видел это в Nim. Авторы
> языка используют все конструкции из новых стандартов Си.

Только сам он - какой-то ужастик, типа помеси сишки с питоном, очень сомнительное счастье.


"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 08:15 
> Директива "#embed", предназначенная для встраивания в код бинарных ресурсов.

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

А гнутое расширение case 1..5 и проч они не хотят в новый стандарт взять?


"Релиз набора компиляторов GCC 15"
Отправлено Амонин , 26-Апр-25 09:20 
import std; для с++ все ещё не завезли или я чего-то упускаю?

"Релиз набора компиляторов GCC 15"
Отправлено Аноним , 26-Апр-25 09:25 
В общем тенденция такова: какой-нибудь С50 (вопреки всем обещаниям!) начнёт таки всё больше и больше превращаться в С++, в то время как С++50 начнёт всё больше и больше превращаться в Раст. В общем делайте выводы сами!