The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Наиболее интересные новшества, ожидаемые в GCC 4.9"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от opennews (??) on 01-Ноя-13, 21:11 
Хотя релиз GCC 4.9 вероятнее всего состоится не ранее первой половины 2014 года, ресурс Phoronix проанализировал (http://www.phoronix.com/scan.php?page=news_item&px=MTQ5NjM) наиболее интересные возможности, которые появятся в новой версии популярного компилятора.


Наиболее заметными нововведениями (http://gcc.gnu.org/gcc-4.9/changes.html) в версии GCC 4.9 станут:


-  Портирование Undefined Behavior Sanitizer ("UBSAN", -fsanitize=undefined) - анализатор неопределенного поведения, пытающийся обнаруживать во время выполнения программы ситуации, когда поведение программы окажется неопределенным из-за ошибки программиста.

-  Поддержка Address Sanitizer ("ASAN"), ранее реализованная в GCC 4.8, была улучшена и доработана, наиболее видной доработкой стала поддержка архитектуры ARM в дополнение к x86/x86_64.

-  Улучшения, касающиеся языков ADA и Fortran. GNAT теперь использует по умолчанию стандарт ADA 2012, а не ADA 2005. Для Fortran реализована поддержка Fortran 2003 finalization. Внесены улучшения в поддержке Fortran 2008.

-  Улучшена поддержка стандарта C++14. Ряд улучшений, касающихся C++11;

-  Реализована поддержка процессоров RX100, RX200 и RX600.

-  Поддержка чипов Intel Silvermont.

Кроме этого, в состав GCC 4.9 имеют шанс попасть библиотеки (https://www.opennet.ru/opennews/art.shtml?num=38075) для поддержки JIT-компиляции средствами GCC, код с поддержкой OpenMP 4.0 (https://www.opennet.ru/opennews/art.shtml?num=38110) и реализация технологии параллельного программирования Intel Cilk Plus (https://www.opennet.ru/opennews/art.shtml?num=31517).

URL: http://www.phoronix.com/scan.php?page=news_item&px=MTQ5NjM
Новость: https://www.opennet.ru/opennews/art.shtml?num=38319

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

Оглавление

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


1. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 01-Ноя-13, 21:11 
> Undefined Behavior Sanitizer ("UBSAN", -fsanitize=undefined) - анализатор неопределенного поведения, пытающийся обнаруживать во время выполнения программы ситуации, когда поведение программы окажется неопределенным из-за ошибки программиста.

Достойный ответ на https://www.opennet.ru/opennews/art.shtml?num=38293 (хотя некоторые комментаторы в том обсуждении и придерживались мнения, что компилятор не должен заниматься этими вещами).

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

16. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +2 +/
Сообщение от Crazy Alex (ok) on 02-Ноя-13, 01:02 
Оно в РАНТАЙМЕ это делает. Понимаешь разницу между статическим анализатором и рантайм-проверками?

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

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

32. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от Аноним (??) on 02-Ноя-13, 11:00 
> Оно в РАНТАЙМЕ это делает. Понимаешь разницу между статическим анализатором и рантайм-проверками?

Склонен полагать, что это все же неточность. Самые опасные UB можно отловить еще на стадии компиляции.

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

45. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от ананим on 02-Ноя-13, 12:34 
А не нужно полагать. Это не слёт юных Ванг.
Читать чендж-логи надо:
>Various computations will be instrumented to detect undefined behavior at runtime.

.

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

18. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 01:12 
Потому что и там, и тут вы путаете анализатор, оптимизатор и собственно компилятор.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

31. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 10:59 
Скорее, это _вы_ их путаете. Причем преднамеренно.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

42. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 12:18 
От накрутки плюсов и минусов _вы_ умнее не станете.
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

2. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –6 +/
Сообщение от Аноним (??) on 01-Ноя-13, 21:16 
Очень жаль что до сих пор тратятся силы на поддержку ADA.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +10 +/
Сообщение от Аноним (??) on 01-Ноя-13, 21:50 
Жаль всем, кроме разработчиков ADA
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +9 +/
Сообщение от Аноним (??) on 01-Ноя-13, 22:22 
Ну на С++ же тратят, а он гораздо хуже. Почему бы и на Аду не потратить?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

11. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –4 +/
Сообщение от Аноним (??) on 01-Ноя-13, 23:54 
> Ну на С++ же тратят, а он гораздо хуже

Пофиг на объективные достоинства и недостатки, все определяет популярность.

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

12. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от Аноним (??) on 02-Ноя-13, 00:05 
> Пофиг на объективные достоинства и недостатки, все определяет популярность.

Ну тогда гaвно вне конкуренции: миллионы мух не могут ошибаться!

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

22. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от chinarulezzz (ok) on 02-Ноя-13, 01:54 
мы всё еще о с++?
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

33. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 11:00 
> мы всё еще о с++?

Ну о ком же еще.

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

37. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от arisu (ok) on 02-Ноя-13, 11:16 
> мы всё еще о с++?

согласен, «говно» для c++ — слишком мягко и ласково.

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

24. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Ytch (ok) on 02-Ноя-13, 02:05 
> а он гораздо хуже.

А где "по моему скромному мнению" или "на мой вкус" (в этом случае это хотя бы не было наглым враньем)?

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

38. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 11:16 
А оно и так им не является. С++ объективно хуже.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

39. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от arisu (ok) on 02-Ноя-13, 11:21 
> (в этом случае это хотя бы не было наглым враньем)?

а оно и без этого не враньё.

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

21. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 01:31 
>Очень жаль что до сих пор тратятся силы на поддержку ADA.

А что вы тогда скажите про Fortran ? ;)

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

35. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от Аноним (??) on 02-Ноя-13, 11:04 
> А что вы тогда скажите про Fortran ? ;)

Что он как язык для математических расчетов до сих пор вне конкуренции?

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

47. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноням on 02-Ноя-13, 13:48 
Ну тогда Ada, по степени надёжности программ на нём, до сих пор вне конкуренции для Пентагоновской военки.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

3. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +6 +/
Сообщение от Аноним (??) on 01-Ноя-13, 21:49 
А как же самое значимое нововведение? ЦВЕТНОЙ ВЫВОД СООБЩЕНИЙ ОБ ОШИБКАХ!

Включается через -fdiagnostics-color=auto

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

5. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –6 +/
Сообщение от arisu (ok) on 01-Ноя-13, 22:00 
> А как же самое значимое нововведение? ЦВЕТНОЙ ВЫВОД СООБЩЕНИЙ ОБ ОШИБКАХ!
> Включается через -fdiagnostics-color=auto

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

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

9. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +2 +/
Сообщение от noname11 on 01-Ноя-13, 23:25 
каретка - супер тема
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 01-Ноя-13, 23:53 
> наверняка сделают по умолчанию включеным — так же, как и идиoтскую каретку. два патча надо будет накладывать.

Зачем, если можно просто пользоваться gcc 4.3.3?

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

13. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от Аноним (??) on 02-Ноя-13, 00:06 
> Зачем, если можно просто пользоваться gcc 4.3.3?

Лучше 2.95 сразу :)

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

23. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +3 +/
Сообщение от Аноним (??) on 02-Ноя-13, 01:57 
2.95 был реактивный по скорости сборки. После него 3-я ветка казалось жутко тормозной.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

52. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от Аноним (??) on 02-Ноя-13, 14:31 
> 2.95 был реактивный по скорости сборки.

- А я могу печатать 1000 знаков в минуту. Правда такая фигня получается...

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

54. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от pv47 (ok) on 02-Ноя-13, 15:03 
> наверняка сделают по умолчанию включеным — так же, как и идиотскую каретку.

*из танка* а что за каретка??

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

57. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от arisu (ok) on 02-Ноя-13, 16:27 
>> наверняка сделают по умолчанию включеным — так же, как и идиотскую каретку.
> *из танка* а что за каретка??

дебильное нововведение в gcc 4.8, упёртое из шланга: выводить кроме места ошибки ещё и строку с ошибкой, а снизу подпирать кареткой.

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

66. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 22:29 
Да, очень бесит чудаков которые по 20 варнингов сперва наплодят а потом оказывается что теперь мат компилера не влезает на экран.
Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

68. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от arisu (ok) on 02-Ноя-13, 23:06 
> Да, очень бесит чудаков которые по 20 варнингов сперва наплодят а потом
> оказывается что теперь мат компилера не влезает на экран.

в виде исключения отвечу даже без «ты идиот». видишь ли, визуальный мусор (а строки и каретка являются именно им) затрудняет разбор сообщений компилятора *глазами*. нужно тратить дополнительные усилия для того, чтобы пропускать совершенно бесполезную информацию.

отчего она бесполезная? а потому, что программист или:
а) всё равно пойдёт править код — и тогда строку он увидит в редакторе (вместе с контекстом, что куда как полезней), и курсор обычно редактор поставит куда надо, или
б) править прямо сейчас не будет, и тогда лишняя информация ещё более лишняя.

в итоге получается тупое захламление консоли информацией, которая не нужна. в угоду идиотам-хипстерам.

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

88. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от pavlinux (ok) on 07-Дек-13, 18:38 
>> наверняка сделают по умолчанию включеным — так же, как и идиотскую каретку.
> *из танка* а что за каретка??

dfdfd

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

67. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 22:43 
Зачем патч? -fno-diagnostics-color -fno-diagnostics-show-caret чем не устраивает?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

69. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от arisu (ok) on 02-Ноя-13, 23:09 
> Зачем патч? -fno-diagnostics-color -fno-diagnostics-show-caret чем не устраивает?

тем, что старые версии gcc на неизвестные «-f» тупо падают, отказывась компилировать что бы то ни было. а я собираю софт не только у себя на технике. поэтому варианты такие: или жестоко впиливать проверку на версию компилятора и добавлять этот флаг в сборочных скриптах по необходимости, или один раз пропатчить gcc, сменив значение на «по умолчанию — выключено». второй вариант мне нравится больше.

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

73. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от Led (ok) on 02-Ноя-13, 23:30 
>> Зачем патч? -fno-diagnostics-color -fno-diagnostics-show-caret чем не устраивает?
> тем, что старые версии gcc на неизвестные «-f» тупо падают, отказывась компилировать
> что бы то ни было. а я собираю софт не только
> у себя на технике. поэтому варианты такие: или жестоко впиливать проверку
> на версию компилятора и добавлять этот флаг в сборочных скриптах по
> необходимости, или один раз пропатчить gcc, сменив значение на «по умолчанию
> — выключено». второй вариант мне нравится больше.

А вариант "один раз прописать в *.specs" не рассматривается?

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

74. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от arisu (ok) on 02-Ноя-13, 23:42 
> А вариант «один раз прописать в *.specs» не рассматривается?

нет.

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

14. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от iZEN (ok) on 02-Ноя-13, 00:14 
Только что собрал
% pkg info -x gcc
gcc-4.9.0.20131020_1
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 01:09 
Минус один тебе, как шлангисту.
А для жабистов ты теперь вообще еретик.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

40. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от arisu (ok) on 02-Ноя-13, 11:35 
> Только что собрал

мы все ждали этого сообщения — и дождались, наконец!

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

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

50. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от Andrey Mitrofanov on 02-Ноя-13, 14:00 
> изя, собрать программу из исходников подвиг
>надо гордо сообщать на форумах.

"Мы пахали! Язень и пакеж ментейнер."

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

49. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +2 +/
Сообщение от Аноним (??) on 02-Ноя-13, 13:59 
> Только что собрал

Круто. И что ты с ним будешь делать? Я не думаю что твоей квалификации хватит тестировать экспериментальный компилер, а компилить пререлизной версией софт... проще в саперы сразу записаться при такой хабрахрабрости :).

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

87. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от Аноним (??) on 06-Ноя-13, 00:55 
Плюс один Вам, как шлангисту.
Пользуйтесь GCC, он хороший.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

15. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от all_glory_to_the_hypnotoad (ok) on 02-Ноя-13, 00:39 
> Портирование Undefined Behavior Sanitizer ("UBSAN", -fsanitize=undefined) - анализатор неопределенного поведения, пытающийся обнаруживать во время выполнения программы ситуации, когда поведение программы окажется неопределенным из-за ошибки программиста.

какого хрена не на стадии компиляции

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

19. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 01:22 
Дyрак, да?
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

36. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 11:05 
> Дyрак, да?

Нет ты.

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

41. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от arisu (ok) on 02-Ноя-13, 11:40 
> Дyрак, да?

таки да. что странно: раньше, вроде, нормальный был.

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

20. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Главные Редакторы (ok) on 02-Ноя-13, 01:28 
> какого хрена не на стадии компиляции

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

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

34. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 11:04 
>> какого хрена не на стадии компиляции
> Процессоры шибко быстрыми стали, ресурс их надо чем то нагрузить, очевидно же.

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

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

51. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 14:02 
>> какого хрена не на стадии компиляции
> Процессоры шибко быстрыми стали, ресурс их надо чем то нагрузить, очевидно же.

Перепись дубов на опеннете объявляется открытой. Так, кто еще выкладки Тюринга из "програмеров" не знает? А ну дописывайся сюда. Дуралеев надо знать в лицо.

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

25. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Vkni (ok) on 02-Ноя-13, 02:39 
> какого хрена не на стадии компиляции

Очень тяжело. Даже бравые парни из PVS-Studio отлавливать ряд undefined behavior проблем не могут. А для компилятора это вообще запредельно.

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

26. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Crazy Alex (ok) on 02-Ноя-13, 03:14 
Ну вон товарищи что-то сваяли... http://css.csail.mit.edu/stack/
В отличие от PVS-Studio - под GPLv3. Впрочем, будем надеяться, что это таки разные подмножества UB.
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +3 +/
Сообщение от Vkni (ok) on 02-Ноя-13, 05:22 
> Ну вон товарищи что-то сваяли... http://css.csail.mit.edu/stack/
> В отличие от PVS-Studio - под GPLv3. Впрочем, будем надеяться, что это
> таки разные подмножества UB.

Возможно. Там была программа, в которой требовался довольно глубокий анализ. Возможно, эти MITшники умеют.

Цитирую свой коммент, который не могу найти:

Программа:

typedef struct SSS
{
    int a, b;
} SS;

SS * f( SS* ss)
{
    ss->a = 2;
    return ss;
}

int main( int argv, const char ** argc)
{
   SS ss;
   ss.a = 1;
   ss.b = 3;

   f( &ss)->b = ss.a;

   return ss.b;
}

8><----------------------------------------------><8

Компиляция:

[vkni@t60 Arisu.clang]$ gcc test.c -o gcc
[vkni@t60 Arisu.clang]$ clang test.c -o clang

Как запускать:

[vkni@t60 Arisu.clang]$ ./gcc ; echo $?
2
[vkni@t60 Arisu.clang]$ ./clang ; echo $?
1

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

29. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 09:32 
Ну, на мой скромный взгляд, gcc тут справился, а clang нет.
2-а вопроса:
1. Какое это имеет отношение к анализаторам, т.к. (повторю, ИМХО) это валидные конструкции с точки зрения языка и ко всяким переполнениям и пр. не имеют отношения?
2. И что про это говорит ПВС? Типа, можно, но осторожно? Или нельзя? Или что?
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

30. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от anonimous on 02-Ноя-13, 10:42 
http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf
6.5 Expressions
...
2 Between the previous and next sequence point an object shall have its stored value
modified at most once by the evaluation of an expression.72) Furthermore, the prior value
shall be read only to determine the value to be stored.73)
...

73) This paragraph renders undefined statement expressions such as
i=++i + 1;
a[i++] = i;
while allowing
i=i+1;
a[i] = i;


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

43. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 02-Ноя-13, 12:22 
Не в тему вообще.


Зыж
Хотелось бы услышать ответы на вопросы от предыдущего оратора.
А вам читать мануал об области видимости переменных.

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

44. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 02-Ноя-13, 12:24 
Ззыж
>А вам читать мануал об области видимости переменных.

Ну о передаче переменных по ссылке.

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

46. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от anonimous on 02-Ноя-13, 13:47 
При чём тут передача переменных по ссылке? Тут интереснее порядок выполнения операций в выражении, что должно быть вычислено раньше - адрес, куда писать результат, или сам результат.
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

53. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 14:32 
Ещё раз посмотрите пример.
Нет там вычеслений адреса. Есть локальная переменная, маскирующая глобльную, которая передаётся по ссылке в функцию.
Усё.
Если это вы не поняли, то шаблоны, лямбды и вообще обобщённое программирование вам крышу оторвёт.
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

55. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 15:07 
зыж
>Нет там вычеслений адреса. Есть локальная переменная, маскирующая глобльную, которая передаётся по ссылке в функцию.
>Усё.

Если и этот намк не понятен, то можно рассмотреть вот это подробнее:
>f( &ss)->b = ss.a;

Ассоциативность справа налево, вызов функции "()" во второй группе приоритетов (прочем как и прямое членство "." и косвенное членство "->"), присваивание "=" аж в шестнадцатой (всего их 18).
Поэтому вначале вызывается функция "f", потом "->" в левой части, потом "." в правой части, потом левой части присваивается "=" значение правой.

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

56. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 15:12 
зззззззззззззззыж
>Ассоциативность справа налево,

Сори, слева направо конечно же. :D
Не в арабских странах C/С++ разрабатывались.

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

59. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 17:07 
Ага, щас. У присваивания как раз ассоциативность справа налево:

$ cat test.c
#include <stdio.h>
main(){
  int a = 1, b = 2, c = 3;
  a = b = c;
  printf("%d %d %d\n", a, b, c);
}
$ make test
cc     test.c   -o test
$ ./test
3 3 3

Вот и думай теперь, должен компилятор в примере Vkni сначала разбираться с левоассоциативным выражением в левой части правоассоциативного или в правой. Пример с неопределённостью выражения a[++i]=i тут как раз к месту — всё совершенно аналогично.
Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

62. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от ананим on 02-Ноя-13, 22:19 
>Ага, щас. У присваивания как раз ассоциативность справа налево:

Вот только номер его 16, поэтому пусть молчит в тряпочку до своей очереди.

Зыж
Вы так троллите что ли?

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

72. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Аноним (??) on 02-Ноя-13, 23:30 
>>Ага, щас. У присваивания как раз ассоциативность справа налево:
> Вот только номер его 16, поэтому пусть молчит в тряпочку до своей
> очереди.

Угу. Вот только когда эта очередь наступит: сразу после выполнения его левого операнда (как и положено правоассоциативному оператору) или правого (что облегчает труд создателя компилятора)? Стандарт на этот счёт выражается достаточно ясно: undefined.

> Зыж
> Вы так троллите что ли?

Нет, ты. Спецификации языка не читал, а специалиста из себя корчишь почему-то.

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

75. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 03-Ноя-13, 08:20 
>Угу. Вот только когда эта очередь наступит:

Когда его очередь наступит, все операнды будут определены. И функции посчитаны.
Для отстающих — в ss.а будет 2.
>Нет, ты. Спецификации языка не читал, а специалиста из себя корчишь почему-то.

1. Не ты, а вы.
2. С я ещё в 90-х преподавал. И вы бы точно сессию провалили.

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

78. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от arisu (ok) on 03-Ноя-13, 10:14 
> 2. С я ещё в 90-х преподавал. И вы бы точно сессию
> провалили.

судя по всему, у тебя и Керниган с Ричи провалили бы.

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

79. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 03-Ноя-13, 10:39 
судя по всему, ты очень хотел хоть что-нибудь сказать, но так ничего и не придумал.
Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

80. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от arisu (ok) on 03-Ноя-13, 11:29 
я сказал именно то, что хотел сказать, и именно так, как хотел сказать. но я не удивлён, что ты не понял.
Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

81. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 03-Ноя-13, 12:49 
почему же, понял отлично — передёргивание и флэйм, это единственное что ты умеешь.
Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

83. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от arisu (ok) on 03-Ноя-13, 13:48 
> почему же, понял отлично — передёргивание и флэйм, это единственное что ты
> умеешь.

продолжай демонстрировать непонимание, у тебя хорошо получается.

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

61. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от Crazy Alex (ok) on 02-Ноя-13, 20:56 
Я, конечно, стар стал, подслеповат, но глобальную переменную там в упор не вижу - есть локальная для main и есть параметр дл f и, соответственно, ничего нигде не маскирует. Налицо именно UB согласно вышеприведенному пункту.
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

63. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –2 +/
Сообщение от ананим on 02-Ноя-13, 22:21 
>Я, конечно, стар стал, подслеповат, но глобальную переменную там в упор не вижу

А кто говорил, что о6а есть?

Зыж
А методы то молоденького бычк... трольчика.

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

58. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +4 +/
Сообщение от Vkni (ok) on 02-Ноя-13, 16:54 
1. Это в чистом виде undefined behavior, просто несколько другого типа.

Поэтому, кстати, оба компилятора облажались - никто не выдал предупреждения.

2. PVS 5.10 на этой программе тоже ничего не выдаёт.

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

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

64. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –3 +/
Сообщение от ананим on 02-Ноя-13, 22:25 
>1. Это в чистом виде undefined behavior, просто несколько другого типа.

Тогда будьте любезны, поясните в каком месте.
>2. PVS 5.10 на этой программе тоже ничего не выдаёт.

И правильно делает.
Ибо ваш пункт 1 — полная ахинея.
Переменная вполне себе defined.
И ссылка на неё соответсвенно тоже.

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

71. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Vkni (ok) on 02-Ноя-13, 23:14 
> Тогда будьте любезны, поясните в каком месте.

Результат зависит от порядка вычисления выражений по разные стороны равенства.

Разработчики стандартов языков С и С++ специально сделали это undefined behavior для того, чтобы в случаях, когда этот порядок не влияет на результат, можно было бы выбрать максимально быстрый порядок.

> И правильно делает.

Вы не поверите, но даже разработчики PVS с вами не согласны.

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

76. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 03-Ноя-13, 09:06 
Я от вас хотел бы услышать аргументы, а не лозунги. Свои я уже приводил тут https://www.opennet.ru/openforum/vsluhforumID3/92430.html#55 Могу повторить более подробно. Берём первый попавшийся учебник, например «Язык программирования С++», Стивен Прата, ISBN 978-5-8459-1778-2. (Стандарт С++ дополнительно приводит ANSI C, если что. Там же, стр. 40) Стр. 1119:
>Если две операции применены к одному и тому же аргументу, то первой будет выполнена операция, имеющая более высокий уровень приоритета. Если две операции имеют одинаковый уровень приоритета, то для выполнения первоочерёдности С++ руководствуется правилами ассоциации. Все операции в одной группе имеют одинаковый уровень приоритета и одинаковую ассоциативность.

Ещё раз, «в одной группе имеют одинаковый уровень приоритета и одинаковую ассоциативность». Смотрим ваш пример. Всё выражение состоит только из операций 2-ой и 16-ой групп. 2-я группа имеет ассоциативность слева направо и выполняется первой.

зыж
>Разработчики стандартов языков С и С++ специально сделали это undefined behavior

Бред. Ахинея и Еритизм. :D
Ваш пример даже не требует последних стандартов и работать должен минимум на компиляторах 15-и летней давности. В общем пруф на стандарт или не было.
ззыж
>Вы не поверите, но даже разработчики PVS с вами не согласны.

Опять же, пруф. И я смело смогу на всех семинарах говорить какого уровня специалисты работают даже в таких, серьёзных организациях.

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

85. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от Vkni (ok) on 03-Ноя-13, 20:25 
> Я от вас хотел бы услышать аргументы, а не лозунги.

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

> Если две операции применены к одному и тому же аргументу, то первой будет выполнена операция, имеющая более высокий уровень приоритета. Если две операции имеют одинаковый уровень приоритета, то для выполнения первоочерёдности С++ руководствуется правилами ассоциации. Все операции в одной группе имеют одинаковый уровень приоритета и одинаковую ассоциативность.

Стандарт языка С, последняя версия черновика http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

"The side effect of updating the stored value of the left operand is
sequenced after the value computations of the left and right operands. The evaluations of
the operands are unsequenced." - страница 101, последний абзац.

Там же, дополнение J.1 (Unspecified behavior), страница 555, пятый пункт сверху

"The order in which the operands of an assignment operator are evaluated (6.5.16)."

Т.е. чётко и недвусмысленно написано, что стандарт не определяет (unspecified) порядок, в котором вычисляются операнды оператора присвоения.

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

77. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  –1 +/
Сообщение от ананим on 03-Ноя-13, 09:29 
Ещё раз, чтобы у остальных посетителей форума не формировались ложные понятия.
Вот это:
>Результат зависит от порядка вычисления выражений по разные стороны равенства.Разработчики стандартов языков С и С++ специально сделали это undefined behavior 

ложь.
Операция присваивания "=" находится в 16 группе приоритетов, которая имеет ассоциативность справа налево и отличается от других операций только этим и ничем более.

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

82. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +1 +/
Сообщение от anonimous on 03-Ноя-13, 13:47 
В пункте 2 параграфа 6.5 стандарта ISO/IEC 9899:1999 написано следующее:

Between the previous and next sequence point an object shall have its stored value
modified at most once by the evaluation of an expression. Furthermore, the prior value
shall be read only to determine the value to be stored.

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

Порядок выполнения тут не важен сам по себе. Компилятор ожидает, что программа соблюдает стандарт, и исходя из этого генерирует машинные инструкции.

В черновике стандарта ISO/IEC 9899:201x этот пункт выглядит иначе:

If a side effect on a scalar object is unsequenced relative to either a different side effect on the same scalar object or a value computation using the value of the same scalar
object, the behavior is undefined. If there are multiple allowable orderings of the subexpressions of an expression, the behavior is undefined if such an unsequenced side
effect occurs in any of the orderings.

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

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

84. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от anonimous on 03-Ноя-13, 13:54 
И, если ссылаетесь на группы приоритетов, было бы здорово увидеть ссылку на пункт или пункты стандарта, где эти группы определены.
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

86. "Наиболее интересные новшества, ожидаемые в GCC 4.9"  +/
Сообщение от amo on 04-Ноя-13, 12:04 
Вы, конечно, извините, но мне кажется, что Вам необходимо взять паузу и хорошо всё обдумать. И ассоциативность тут вообще не в тему. Вы сказали, что что-то преподаете? М-м-м... Успокойтесь и просто подумайте в спокойной обстановке.
Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

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

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




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

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