The OpenNET Project / Index page

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



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

Оглавление

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

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


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ообщить модератору

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

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




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

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