The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"GCC 15 будет использовать стандарт C23 по умолчанию"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от opennews (?), 23-Ноя-24, 21:46 
В кодовую базу, на основе которой формируется запланированный на весну следующего года выпуск набора компиляторов GCC 15, принято изменение, включающее по умолчанию использование стандарта С23 с расширениями GNU ("-std=gnu23") при компиляции программ на языке C (ранее по умолчанию использовался стандарт C17 - "-std=gnu17"). Изменение потенциально может привести к проблемам при сборке существующих проектов, так как в новом стандарте имеются отличия, такие как добавление типов nullptr и  _BitInt(n), а также появление  ключевых слов bool, true и false,  которые могут конфликтовать с заданными в приложениях одноимёнными идентификаторами...

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "GCC 15 будет использовать стандарт C23 по умолчанию"  +5 +/
Сообщение от ДаНуНафиг (?), 23-Ноя-24, 21:46 
Ну надо же, bool/true/false подвезли! Я дожил до этого момента!
Ответить | Правка | Наверх | Cообщить модератору

8. "GCC 15 будет использовать стандарт C23 по умолчанию"  +2 +/
Сообщение от Аноним (8), 23-Ноя-24, 22:32 
А те, кому реально это было нужно — не ждали и использовали <stdbool.h>, начиная с C99…
Ответить | Правка | Наверх | Cообщить модератору

19. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от YetAnotherOnanym (ok), 23-Ноя-24, 23:27 
Бедненький! Как же ты жил без этой ложечки сахара?
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

23. "GCC 15 будет использовать стандарт C23 по умолчанию"  +1 +/
Сообщение от Аноним (23), 23-Ноя-24, 23:43 
Возможно, до этого момента он не программировал вообще. А теперь пенсия на горизонте, и кто, кроме него, будет охранять пятёрочку на раЁне?
Ответить | Правка | Наверх | Cообщить модератору

24. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (24), 23-Ноя-24, 23:44 
> ложечки сахара?

ну вот "синтаксический диабет", уже ампутировали "Удалена возможность определения функций в стиле K&R C,".

Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

2. Скрыто модератором  +5 +/
Сообщение от Аноним (2), 23-Ноя-24, 21:58 
Ответить | Правка | Наверх | Cообщить модератору

4. Скрыто модератором  +1 +/
Сообщение от Блюститель лицензий (?), 23-Ноя-24, 22:03 
Ответить | Правка | Наверх | Cообщить модератору

5. Скрыто модератором  +4 +/
Сообщение от Маковод (?), 23-Ноя-24, 22:19 
Ответить | Правка | Наверх | Cообщить модератору

22. Скрыто модератором  +/
Сообщение от Аноним (23), 23-Ноя-24, 23:41 
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

10. Скрыто модератором  –2 +/
Сообщение от Аноним (8), 23-Ноя-24, 22:38 
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

14. Скрыто модератором  +2 +/
Сообщение от Маковод (?), 23-Ноя-24, 23:00 
Ответить | Правка | Наверх | Cообщить модератору

20. Скрыто модератором  +/
Сообщение от YetAnotherOnanym (ok), 23-Ноя-24, 23:33 
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

31. Скрыто модератором  +/
Сообщение от Аноним (23), 24-Ноя-24, 00:11 
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

6. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (6), 23-Ноя-24, 22:25 
>Структуры, объединения и перечисления разрешено определять более одного раза в одной области видимости с одним и тем же содержимым и повторяющимся тегом.

а это зачем?

Ответить | Правка | Наверх | Cообщить модератору

9. "GCC 15 будет использовать стандарт C23 по умолчанию"  +2 +/
Сообщение от bircoph (ok), 23-Ноя-24, 22:35 
Чтоб меньше конфликтов было при всяких #include и inline.
Ответить | Правка | Наверх | Cообщить модератору

17. "GCC 15 будет использовать стандарт C23 по умолчанию"  –1 +/
Сообщение от Аноним (6), 23-Ноя-24, 23:23 
> Чтоб меньше конфликтов было при всяких #include и inline.

И как 50 лет жили без этого.

Ответить | Правка | Наверх | Cообщить модератору

32. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (32), 24-Ноя-24, 00:14 
С матами и постоянными переименованиями всего и вся лишь бы этот комп-депилятор перестал жаловаться, а уже начал комп-депилировать.
Ответить | Правка | Наверх | Cообщить модератору

39. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (39), 24-Ноя-24, 00:25 
Жили же тысячи лет в пещерах и ничего.
Ответить | Правка | К родителю #17 | Наверх | Cообщить модератору

7. "GCC 15 будет использовать стандарт C23 по умолчанию"  +1 +/
Сообщение от Аноним (7), 23-Ноя-24, 22:30 
> Вызов функции realloc() с нулевым размером переведён в разряд неопределённого поведения.

Нужно больше неопределённого поведения! Потом, когда вылезут очередные уязвимости из-за работы с памятью, можно будет с уверенностью утверждать, что где-то ещё оптимизатор смог ускорить работу на 0.01% благодаря этому!

Ответить | Правка | Наверх | Cообщить модератору

11. "GCC 15 будет использовать стандарт C23 по умолчанию"  +2 +/
Сообщение от Аноним (11), 23-Ноя-24, 22:41 
Ничего удивительного, в этом языке даже int + int является неопределенным поведением. Нам в 2024 ясно видна дикость этого, а вот палео-кодерам из палео-70-ых это казалось нормальной идеей.
Ответить | Правка | Наверх | Cообщить модератору

28. "GCC 15 будет использовать стандарт C23 по умолчанию"  –2 +/
Сообщение от Аноним (23), 24-Ноя-24, 00:06 
> int + int является неопределенным поведением

Воо, это вообще лютая дичь, я до сих пор не понимаю, КАК такое возможно в языке для системного программирования.

Ответить | Правка | Наверх | Cообщить модератору

29. "GCC 15 будет использовать стандарт C23 по умолчанию"  –1 +/
Сообщение от Аноним (23), 24-Ноя-24, 00:08 
П.с. а еще больше недоумеваю от тех УМВРщиков, которые в упор это не замечают.
Ответить | Правка | Наверх | Cообщить модератору

33. "GCC 15 будет использовать стандарт C23 по умолчанию"  +3 +/
Сообщение от Аноним (32), 24-Ноя-24, 00:16 
Потому что системный язык должен полагаться на то как происходит сложение на аппаратном уровне в конкретной системе, а не воротить абстракцию над абстракцией лишь бы все было везде одинаково. Кому надо одинаково идут на джаваскрипт зачем им Си?
Ответить | Правка | Наверх | Cообщить модератору

44. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:41 
> Потому что системный язык должен полагаться на то как происходит сложение на
> аппаратном уровне в конкретной системе, а не воротить абстракцию над абстракцией
> лишь бы все было везде одинаково. Кому надо одинаково идут на
> джаваскрипт зачем им Си?

Вон то на практике вело к дохреналиону багов, увы и ах. А абстракции что, как вон то алго не считай, а если ему надо не менее 32 битов для корректной работы - то хоть ты тресни, но ты или дашь эти 32 бита, или профачишь вычисления. В ряде случаев еще и с вулнами, отрицательными индексами массивов и прочими характерными факапами. И спасибо еще если это дамп памяти по сети или в эфир улетит. А то бывает и такое, heartbleed соврать не даст.

Ответить | Правка | Наверх | Cообщить модератору

48. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от mister_0 (?), 24-Ноя-24, 00:47 
int a + int b <= int max

из этого условия можно вывести weakest predicate и проверить его до сложения

int max - int a => int b

если это условие не работает, то складывать не надо, будет страшный оверфлоу.

один if и тот сделать не могут, подавай им сразу новый язык, бороу чекер, безразмерную арифметику и прочее.

Ответить | Правка | Наверх | Cообщить модератору

46. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:45 
> Потому что системный язык должен полагаться на то как происходит сложение
> на аппаратном уровне в конкретной системе

Угу, именно поэтому они это не implementation-defined, не хотя бы unspecified, а вот сразу UB!
Что бы когда ты писал код, то как он будет работать было именно ХЗ, в зависимости от платформы, железа, флагов, степени безумия разраба компилятора, которые может просто выкинуть твой код нафиг с обоснование "не, ну не бывает же UB в нормальном коде".

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

47. Скрыто модератором  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:46 
Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

42. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от mister_0 (?), 24-Ноя-24, 00:37 
ну так ты проверь перед сложением или можешь после сложения в регистр flags посмотреть, там есть бит переполнения.

а ещё есть люди которые рапэраунд с оверфлоу путают

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

49. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (24), 24-Ноя-24, 00:48 
> или можешь после сложения в регистр flags посмотреть

в С?

Ответить | Правка | Наверх | Cообщить модератору

12. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (12), 23-Ноя-24, 22:46 
Значит ли это, что gcc 15 будет поддерживать стандарт c23 ПОЛНОСТЬЮ?
Ответить | Правка | Наверх | Cообщить модератору

37. Скрыто модератором  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:22 
Ответить | Правка | Наверх | Cообщить модератору

15. "GCC 15 будет использовать стандарт C23 по умолчанию"  +2 +/
Сообщение от Маковод (?), 23-Ноя-24, 23:02 
Всё это ерунда, есть же православный ANSI C (C89). Всё остальное — ненужный реверс инжиниринг с синтаксическим сахаром.
Ответить | Правка | Наверх | Cообщить модератору

16. "GCC 15 будет использовать стандарт C23 по умолчанию"  +3 +/
Сообщение от Маковод (?), 23-Ноя-24, 23:03 
Овер инжиниринг* (будь проклята автозамена)
Ответить | Правка | Наверх | Cообщить модератору

34. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (32), 24-Ноя-24, 00:19 
Сахар это язык zig. Си это та ложка дегтя.
Ответить | Правка | Наверх | Cообщить модератору

41. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:34 
> Всё это ерунда, есть же православный ANSI C (C89). Всё остальное —
> ненужный реверс инжиниринг с синтаксическим сахаром.

Вот ты на нем и прогай. А я меньше чем на C99 в принципе не согласен, а лучше минимум 11, ибо делать из г-на и палок аналог static assert'а - ну такое себе.

Ответить | Правка | К родителю #15 | Наверх | Cообщить модератору

18. "GCC 15 будет использовать стандарт C23 по умолчанию"  –1 +/
Сообщение от nc (ok), 23-Ноя-24, 23:26 
Расширения GNU давно пора принимать в стандарты С и С++. Простые и полезные идеи, уже давно реализованные и многократно проверенные.
Единственное чего не хватает - расширения __declspec(property) в С++, которое есть в msvc и clang, но нет в gcc.
Ответить | Правка | Наверх | Cообщить модератору

25. "GCC 15 будет использовать стандарт C23 по умолчанию"  –1 +/
Сообщение от Аноним (23), 23-Ноя-24, 23:46 
> Расширения GNU нужно гнaть отовсюду сcaными тpяпками, как и всю идеологию GNU.

Подправил, благодарить не обязательно.

Ответить | Правка | Наверх | Cообщить модератору

36. Скрыто модератором  +1 +/
Сообщение от Аноним (32), 24-Ноя-24, 00:21 
Ответить | Правка | Наверх | Cообщить модератору

38. Скрыто модератором  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:23 
Ответить | Правка | Наверх | Cообщить модератору

40. Скрыто модератором  +/
Сообщение от Аноним (-), 24-Ноя-24, 00:31 
Ответить | Правка | Наверх | Cообщить модератору

45. "GCC 15 будет использовать стандарт C23 по умолчанию"  +/
Сообщение от Аноним (45), 24-Ноя-24, 00:42 
Хаипутики ничего нету кроме 11 и 99 версии , очередная обертка
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру