The OpenNET Project / Index page

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



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

Оглавление

Релиз набора компиляторов GCC 11, opennews (ok), 28-Апр-21, (0) [смотреть все]

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


3. "Релиз набора компиляторов GCC 11"  –1 +/
Сообщение от Аноним (3), 28-Апр-21, 14:26 
Я так понимаю использование

>режима статического анализа "-fanalyzer"

переводит Rust в статус deprecated.

:)

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

14. "Релиз набора компиляторов GCC 11"  –12 +/
Сообщение от Аноним (-), 28-Апр-21, 15:41 
> Я так понимаю использование
>> режима статического анализа "-fanalyzer"
> переводит Rust в статус deprecated.

Я так понимаю, очередной опеннетный комментатор с познаниями уровня "слышал звон"?
https://www.opennet.ru/opennews/art.shtml?num=53208
> Релиз статического анализатора cppcheck 2.1

https://clang-analyzer.llvm.org/
> The Clang Static Analyzer is a source code analysis tool that finds bugs in C, C++, and Objective-C programs.

https://www.frama-c.com/
https://coccinelle.gitlabpages.inria.fr/website/
...

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

15. Скрыто модератором  +3 +/
Сообщение от Аноним (15), 28-Апр-21, 15:45 
Ответить | Правка | Наверх | Cообщить модератору

36. Скрыто модератором  +/
Сообщение от Аноним (-), 28-Апр-21, 17:42 
Ответить | Правка | Наверх | Cообщить модератору

22. "Релиз набора компиляторов GCC 11"  –6 +/
Сообщение от Аноним (3), 28-Апр-21, 16:14 
Это статические анализаторы, которые смотрят ошибки по тексту кода. А "-fanalyzer" компилирует код и по ходу выполнения смотрит ошибки, что, как я понима делает и компилятор Rust. В это смысле достугается паритет. Достугнут он лили нет - вряд ли - не берусь судить.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

26. "Релиз набора компиляторов GCC 11"  +5 +/
Сообщение от ranenemail (?), 28-Апр-21, 16:33 
Компилятор Rust так не делает.
Ответить | Правка | Наверх | Cообщить модератору

91. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Аноним (91), 01-Май-21, 01:36 
> так не делает.

делает всё не так :)

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

40. "Релиз набора компиляторов GCC 11"  +1 +/
Сообщение от Аноним (-), 28-Апр-21, 18:00 
> Это статические анализаторы, которые смотрят ошибки по тексту кода. А "-fanalyzer" компилирует код и по ходу выполнения смотрит ошибки, что, как я понима делает и компилятор Rust.
>> Clang Static Analyzer
>> It implements path-sensitive, inter-procedural analysis based on symbolic execution technique.

Как я и подозревал - анализ уровня "слышал звон". И даже по ссылкам не ходил.

> В это смысле достугается паритет.

Там нужно конкретно так смотреть на объем и качество анализа, иначе "ни о чем".  

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

42. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Аноним (42), 28-Апр-21, 18:40 
>> It implements path-sensitive, inter-procedural analysis based on symbolic execution technique.
>Как я и подозревал - анализ уровня "слышал звон". И даже по ссылкам не ходил.

Мда, как то эта информация прошла мимо :( Буду знать какой оказывается Clang Static Analyzer

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

19. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Аноним (19), 28-Апр-21, 15:57 
Беда в том, что рантайм проверки очень дорогие для приложения. Если придумать некий специальный рантайм для плюсов, проблемы с производительностью у него будут ровно те же, что и у раста. В целом же, раст стоит расценивать исключительно как площадку для экспериментов по улучшению плюсов, а не как замену чему бы то ни было, поэтому выкидывать в ближайшее время ничего не будут.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

20. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Аноним (3), 28-Апр-21, 16:08 
Ну так опция -fanalyzer включается только в dev окружении и выключается в релизе.
Ответить | Правка | Наверх | Cообщить модератору

21. "Релиз набора компиляторов GCC 11"  +4 +/
Сообщение от Wladmis (ok), 28-Апр-21, 16:12 
У Rust как раз-таки большинство проверок на этапе компиляции.
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

27. "Релиз набора компиляторов GCC 11"  +2 +/
Сообщение от Маняним (?), 28-Апр-21, 16:56 
Какие рантайм проверки? Вы хоть читайте. Это статический, компайл-тайм анализ кода на перечеслинные дефекты. Именно о чем кричат растофилы. Только для такого контроля не надо пердолиться с явным обозначением лайфтайма объектов в языке, изобретать ансейф-код для создания двух и более модифицирующих ссылок, даже в сингл-треде. Анализ кода во-время компиляции основывается на вычислениях во время компиляции и анализе путей исполнения кода. И у компилятора гораздо больше информации о путях исполнения кода чем у внешнего анализатора, которому по сути нужно проделять ту же самую работу чтобы получить её.
Ответить | Правка | К родителю #19 | Наверх | Cообщить модератору

32. "Релиз набора компиляторов GCC 11"  –6 +/
Сообщение от Аноним (19), 28-Апр-21, 17:06 
Компайл тайм раста по сути бесполезен и является сахаром ради сахара -- сегодняшние анализаторы ничем не хуже. Весь профит в рантайм проверках.
Ответить | Правка | Наверх | Cообщить модератору

37. "Релиз набора компиляторов GCC 11"  +2 +/
Сообщение от Аноним (37), 28-Апр-21, 17:46 
Компайл тайм раста, в отличие от обычных анализаторов, дает гарантии
Ответить | Правка | Наверх | Cообщить модератору

43. "Релиз набора компиляторов GCC 11"  –2 +/
Сообщение от Аноним (19), 28-Апр-21, 19:06 
> Компайл тайм раста, в отличие от обычных анализаторов, дает гарантии

Только на той неделе UB в safe исправляли -- так себе гарантии/

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

53. "Релиз набора компиляторов GCC 11"  +1 +/
Сообщение от Аноним (53), 28-Апр-21, 21:30 
C ++ появился в 1983. И базируется он на Си, который появился вообще в 1972. Rust появился в 2010 и сейчас активно развивается. Ничего удивительного что в нем находят огрехи.
Вы лучше ответьте на вопрос, раз С++ так крут, как в нем решена проблема копирования перекрывающихся областей памяти в куче?  Я вам сразу скажу - никак. В языке вся работа с памятью на указателях, и у компилятора нет гарантий, что копируемые участки гарантированно не пересекаются. А значит он не может провести часть оптимизаций и предрасчётов во время компиляции, не может векторизовать цикл копирования, и не может распараллелить его. В Rust эта и многие дугие проблемы изначально отсутствуют.
Ответить | Правка | Наверх | Cообщить модератору

55. "Релиз набора компиляторов GCC 11"  –5 +/
Сообщение от Аноним (19), 28-Апр-21, 21:32 
Найс сравнение, ты ещё науку 5000 лет назад сравни с нынешней.
Ответить | Правка | Наверх | Cообщить модератору

71. "Релиз набора компиляторов GCC 11"  +2 +/
Сообщение от n00by (ok), 29-Апр-21, 11:00 
> Вы лучше ответьте на вопрос, раз С++ так крут, как в нем
> решена проблема копирования перекрывающихся областей памяти в куче?

Проиллюстрируйте проблему примером кода, что бы было понятно, о чём речь.

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

75. "Релиз набора компиляторов GCC 11"  +2 +/
Сообщение от zzxc (?), 29-Апр-21, 15:57 
> как в нем решена проблема копирования перекрывающихся областей памяти в куче?

В плюсах никак, потому-что это было решено еще в C (memmove).

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

78. "Релиз набора компиляторов GCC 11"  +2 +/
Сообщение от Cooler (??), 29-Апр-21, 20:33 
memmove и __restrict тебе помогут
Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

93. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Алкоганон (?), 02-Май-21, 05:07 
> Вы лучше ответьте на вопрос, раз С++ так крут, как в нем
> решена проблема копирования перекрывающихся областей памяти в куче?  Я вам
> сразу скажу - никак. В языке вся работа с памятью на
> указателях, и у компилятора нет гарантий, что копируемые участки гарантированно не
> пересекаются. А значит он не может провести часть оптимизаций и предрасчётов
> во время компиляции, не может векторизовать цикл копирования, и не может
> распараллелить его.

:-)
memcpy гарантирует неперекрываемость... И очередное UB в случае перекрытия. В своё время любовники Flash плюгина скандалили...


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

96. "Релиз набора компиляторов GCC 11"  +/
Сообщение от uis (ok), 02-Май-21, 11:35 
>А значит он не может провести часть оптимизаций и предрасчётов во время компиляции, не может векторизовать цикл копирования, и не может распараллелить его

restrict
RTFM

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

109. "Релиз набора компиляторов GCC 11"  –1 +/
Сообщение от Аноним (-), 11-Май-21, 14:58 
> Вы лучше ответьте на вопрос, раз С++ так крут, как в нем
> решена проблема копирования перекрывающихся областей памяти в куче?

Не понимаю проблему. Я даже примитивный memmove() накодил под baremetal. Для растаманов это, типа, слишком сложно? И ему похрен, куча или нет. Ему дают адреса откуда, куда, и количество. Реализация обязана корректно работать с перекрывающимися адресами.

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

111. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Аноним (-), 16-Май-21, 00:07 
>> у компилятора нет гарантий, что копируемые участки гарантированно не пересекаются. А значит он не может провести часть оптимизаций и предрасчётов во время компиляции, не может векторизовать цикл копирования, и не может распараллелить его. В Rust эта и многие дугие проблемы изначально отсутствуют.
> Не понимаю проблему.
> Я даже примитивный memmove() накодил под baremetal. Для растаманов
> это, типа, слишком сложно? И ему похрен, куча или нет. Ему
> дают адреса откуда, куда, и количество. Реализация обязана корректно работать с перекрывающимися адресами.

Ничего удивительного - ты даже прочитать текст целиком не можешь, куда уж тут "проблему понимать" ...

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

46. "Релиз набора компиляторов GCC 11"  –4 +/
Сообщение от Аноним (46), 28-Апр-21, 20:22 
Единственные гарантии которые может дать rust это боль пониже спины у анонимных экспертов
Ответить | Правка | К родителю #37 | Наверх | Cообщить модератору

33. "Релиз набора компиляторов GCC 11"  +/
Сообщение от ranenemail (?), 28-Апр-21, 17:12 
Я уверен, что ни один уважающий себя с-программист не будет использовать этот режим, иначе он испытает такое унижение, что никогда не будет больше программировать!
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

44. "Релиз набора компиляторов GCC 11"  –3 +/
Сообщение от Noard (?), 28-Апр-21, 19:46 
Маловероятно, в этом режиме ничто сложнее студенческих поделок не скомпилируется, си-ппограммисты настолько малоквалифицированны, в настоящее время, что не понимают, что весь объем легаси - это сплошные некорректные трюки (те-же трюки с кучей), а то, что еще может пройти проверку - безбожно тормозящее... и суть появления ржавчины - избавление от трюкачеств в легаси, да, эта проверка этому поможет, но "си-кодеры" не способны осознать, что проще - воспользоваться адекватным инструментом: ржавчиной или плюсами, чем приводить допотопный код на допотопном языке для допотопных контролеров в компилируемое состояние...
Ответить | Правка | Наверх | Cообщить модератору

49. "Релиз набора компиляторов GCC 11"  +/
Сообщение от валяйте (?), 28-Апр-21, 21:00 
Есть примеры и код чтобы подтвердить или просто попердываешь?
Ответить | Правка | Наверх | Cообщить модератору

67. "Релиз набора компиляторов GCC 11"  +/
Сообщение от ixrws (??), 29-Апр-21, 09:37 
Очередной ыксперт, сколько же вас развелось то.
Никто бы не стал включать этот режим в gcc, если бы он годился только для просты семплов. Практика показывает, что если код работает корректно на хотя бы 2х различных платформах(а большинство системных С программ работает на хотя бы x86, x86_64, arm и mips), то неведомого трюкачества в коде очень мало и он вполне себе проходит статический анализ. Да, там могут быть косяки, но их крайне мало. А вы, уважаемый ыксперт, просто не знаете насколько много трюков и проблем приходится выпиливать из кода, когда он приколочен к одной ОС и к одной аппаратной платформе. Если же он не приколочен, то и трюков так сильно меньше, потому что та же арифметика указателей без понимания как она работает, хрена с два заработает без багов на разных платформах.
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

79. "Релиз набора компиляторов GCC 11"  +/
Сообщение от iZEN (ok), 29-Апр-21, 20:36 
> воспользоваться адекватным инструментом: ржавчиной или плюсами, чем приводить допотопный код на допотопном языке для допотопных контролеров в компилируемое состояние...

Так они и ЯП Modula-3, на котором эти проблемы давно решили, не хотят знать. Куда им ржавчину вписывать?

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

35. "Релиз набора компиляторов GCC 11"  –1 +/
Сообщение от Аноним (37), 28-Апр-21, 17:40 
Статический анализатор конечно хорошо, но у раста он ещё и с гарантиями

:)

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

110. "Релиз набора компиляторов GCC 11"  +/
Сообщение от Аноним (110), 12-Май-21, 18:30 
Ценность Rust сильно опустит поддержка GCC опции -D_FORTIFY_SOURCE=3 пока есть только 2.
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

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

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




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

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