1.1, Аноним (1), 16:20, 08/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
а есть что-то подобное для раста? для выявления утечек памяти и всего такого -- в общем типичных проблем растокода
| |
|
2.4, topin89 (ok), 17:02, 08/02/2022 [^] [^^] [^^^] [ответить]
| +4 +/– |
> для выявления утечек памяти и всего такого -- в общем типичных проблем растокода
А ты хорош!
Но если серьёзно, cppcheck -- это так себе решение в сравнении с каким-нибудь Coverity, тем анализатором с Хабра или даже clang-analyzer.
Линтеры есть, тот же clippy. Но я ненастоящий растоман, за качество инструментов ничего говорить не буду
| |
|
3.15, Аноним (15), 19:32, 08/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Отличный компактный инструмент
ковертли вообще монстр, да еще и платный, да еще и сложный в настройке
анализатор с хабра пора выбросит на помойку
кланг анализер не все находит что сабж, но для сильно подробных разборов полётов, кланг анализер показывает
весь контрол флов
| |
|
4.22, Самокатофил (?), 20:28, 08/02/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Да лан, надо отдать должное этим чувакам, они свой пивас затолкали даже интолу, вроде?!
Из природной брезгливости к проприетарщине, я не пробовал пивас. Ничего не скажу. Но упорство с которым они затолкали его кому-то в интоле, мелкомягким, эт нечто.
| |
|
|
2.6, Аноним (6), 17:16, 08/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
Я так и не смог найти каких-нибудь инструментов для раста. Память просто вытекает _куда-то_, исполнение просто зависает _почему-то_, но зато без проблем с кодом. Может быть стоит подождать и баги ллвм исправят, тогда то точно всё будет работать как надо.
| |
|
3.8, Аноним (6), 17:28, 08/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ах да, ещё вечные проблемы с синхронизацией мультипотока в расте ударили с новой силой. Да я смотрю и жырнолисе косяки синхронизации табов полезли как вебрендер на расте впихнули, хотя, казалось бы, главный и единственный пользователь раста должен понимать, что к чему. Отсутствие инструментов для отладки делает ситуацию куда хуже чем с привычными проблемами плюсов.
| |
|
4.10, Анонн (?), 18:15, 08/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Ты наркоман что ли? Какое отношение веб-рендер имеет к синку табов?
| |
|
5.11, Аноним (6), 18:36, 08/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Табы отваливаются из-за вебрендера, не иначе. Это проявляется как глюки отрисовки при попытке скроллить и глюки интерфейса, можно переключить на соседний таб в другом контентном процессе и там всё нормально, он не теряется. Если бы можно было прибить контентный процесс я бы не жаловался, но при этом весь интерфейс перестаёт нормально работать и единственное решение это перезапуск. До вебрендера такого точно не было. Проявляется чаще всего когда таб возвращается из свопа.
А ещё периодически начинает жрать в 5 раз больше ресурсов, будто включился программный режим вебрендера, только хуже. Я настроил так, чтобы он не включался, можно сделать вывод, что раст игнорирует настройки.
| |
|
|
|
2.18, Alexey (??), 20:06, 08/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
На самом деле вопрос надо ставить не так. "Есть ли для C++ такие анализаторы, которые ищут проблемы с памятью так же хорошо как базовый синтакс Rust". И ответ - нет.
| |
|
|
|
5.38, Аноним (38), 08:38, 09/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вродебы раст позиционируется как штука которая исключит подобные ошибки.
CVE-2021-45715 An issue was discovered in the rusqlite crate 0.25.x before 0.25.4 and 0.26.x before 0.26.2 for Rust. create_window_function has a use-after-free.
| |
|
|
7.58, Аноним (58), 15:31, 09/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
> https://github.com/jeromefroe/lru-rs/issues/120
> Как видишь, просто, без рук и ансейфа, как там ниже анон возмущается.
Прекращай смотреть опой:
#![no_std]
...
- pub fn iter<'a>(&'_ self) -> Iter<'a, K, V> {
+ pub fn iter(&self) -> Iter<'_, K, V> {
Iter {
len: self.len(),
ptr: unsafe { (*self.head).next },
| |
|
|
|
4.26, Alexey (??), 21:26, 08/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Дык давайте тогда с C++ и C сравним. Вот где безопасность должна быть. Все-таки 40 лет разработки.
| |
|
5.28, Самокатофил (?), 21:38, 08/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Но ведь "базовый синтаксис раст", май эс. ;)
Сравнивать с цэ? Пожалуйста. С цэпэпэ - пожалуйста. С цэ/цэпэпэ - вам не кажется что это неадекватно? :-D
Ну и положа руку на сердце, не думаете что тех CVE как-то слишком уж многовато для такого малоиспользуемого и маргинального языка? Ну, в сравнении с сишкой из 70х, и цэпэпэ, у которых петабайты исходного кода. Ммм?
| |
|
4.78, фывфывфыв (?), 13:56, 10/02/2022 [^] [^^] [^^^] [ответить]
| +1 +/– |
Внезапно, да, помог. Хочешь писать безопасно? Лови небольшие оверхеды и используй unsafe. Хочешь быстро? Следи за своим кодом сам. Что не так?
| |
|
3.24, Аноним (24), 21:19, 08/02/2022 [^] [^^] [^^^] [ответить]
| –2 +/– |
> И ответ - нет.
Обосновать свой громки пук опеннетный эксперт, разумеется, не потрудился.
| |
3.41, Crazy Alex (ok), 11:33, 09/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Если для практики, а не меряться "кто круче" - то вообще тривиально. Банальная проверка на отсутствие сырых указателей как членов класса и создания умных указателей из сырых (а не с помощью make_unique()/make_shared()) и арифметики с указателями вне begin() и end() вылечит 99% проблем. Остаётся ещё всякий bounds checking по вычисленным индексам - но это в прицнипе в компайл-тайме не ловится, а в рантайме адски дорого.
Останется небольшая доля нетривиальных извращений, которые в любом случае надо ревьюить, так как там больше вопросов будет не по управлению памятью, а покоррктности алгоритмикив целом (всякие кастомные аллокаторы в основном).
Другими словами - пишете код в рекомендованном современном плюсовом стиле, а не так, как привыкли до 11-го года - и нет проблем.
| |
|
2.25, ЛОЛВАТ (?), 21:26, 08/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
в раст все работает из коробки
раст даже пишет код за тебя
неважно как и какой код написал раст программа будет работать так как ты задумал в голове. это не магия это раст.
| |
|
3.27, Alexey (??), 21:30, 08/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Нет, по сути язык заставляет писать код, который проходит его внутренний линтер (в его случае линтер следить за владением объектов). Так что априори код безопаснее, чем C++, где компилится даже откровенно бредовый код, который должен просто быть синтаксически верным. Т.е. можете просто написать код, который в бесконечном цикле выделяет через new память и не освобождает. И вам для этого даже не надо писать хаки, фича доступна из коробки.
| |
|
4.39, Аноним (38), 08:40, 09/02/2022 [^] [^^] [^^^] [ответить] | +/– | Да что-то как-то не особо то и следит CVE-2021-45719 An issue was discovered i... большой текст свёрнут, показать | |
|
5.44, Аноним (-), 12:50, 09/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
>>который проходит его внутренний линтер (в его случае линтер следить за владением объектов).
> Да что-то как-то не особо то и следит.
> CVE-2021-45719 An issue was discovered in the rusqlite crate 0.25.x before
> 0.25.4 and 0.26.x before 0.26.2 for Rust. update_hook has a use-after-free.
https://github.com/rusqlite/rusqlite/pull/1049/commits/426056c0924291367c9cee1
+16,9 @@ unsafe extern "C" fn free_boxed_value<T>(p: *mut c_void) {
impl Connection {
...
> {
unsafe extern "C" fn call_boxed_closure<C>(
arg1: *mut c_void,
Какой громкий пук ...
| |
|
6.45, Аноним (38), 13:19, 09/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
Получается без unsafe ничего на Rust кроме Hello World не написать.
| |
|
7.50, Аноним (50), 15:05, 09/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Получается без unsafe ничего на Rust кроме Hello World не написать.
Получается, если из раста коснуться внешнего г.вна, написанного на си - всё превращается в г.вно. Си - этакий современный царь Мидас, только чаще превращает не в золото. А не взаимодействовать с уже написанными петабайами сишного г.вна не всегда получается - даже ядро линукса на нем написано. Но это не на долго, работы в этом направлении начаты...
| |
|
|
9.56, Аноним (58), 15:25, 09/02/2022 [^] [^^] [^^^] [ответить] | +/– | https github com jeromefroe lru-rs commit 3c6fdf07a4ab58f6a30bfdc68342fb6aa642... текст свёрнут, показать | |
|
8.54, Аноним (55), 15:17, 09/02/2022 [^] [^^] [^^^] [ответить] | –1 +/– | А что, раст ни для чего не подходит, кроме как написания обёрток вокруг Си ... текст свёрнут, показать | |
|
|
|
|
4.42, Crazy Alex (ok), 11:35, 09/02/2022 [^] [^^] [^^^] [ответить]
| –1 +/– |
...а потом оказывается, что вы пишете программу для тестирования работы OOM киллера.
Что характерно - написать бесконечный цикл, тыпо выделяющий память (ну в виде создания объектов, например) можно вообюще на любом языке.
| |
|
|
|
1.9, Анонн (?), 18:13, 08/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Отличный и крайне недооцененный проект. Жалко что им так мало пользуются.
| |
|
2.20, Самокатофил (?), 20:14, 08/02/2022 [^] [^^] [^^^] [ответить]
| +2 +/– |
Отличный. Когда-то даже удивился, увидев его враппер в исходниках wireshark'a. Инструмент оцененный теми, кому надо. Вот бы еще разраб сделал нормальный ман, вместо этого генерируемого убожества... просто же, ну, или, если удобно так -- добавлять в дист сгенеренный ман, как принято у аристократии...
| |
|
1.30, Аноним (30), 23:44, 08/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
>> Добавлена поддержка представлений (view) контейнеров - в тег библиотеки добавлен атрибут view, указывающий, что класс является представлением. Код анализа времени жизни обновлён для использования данного атрибута при поиске "висячих" контейнеров;
Когда я изучал С++ там не было ни вью, ни контейнеров. Тем более висячих.
| |
|
|
|
4.74, . (?), 06:49, 10/02/2022 [^] [^^] [^^^] [ответить]
| +/– |
я ждал что ктото это напишет. такие вы пупсики
| |
|
|
|
1.34, . (?), 03:46, 09/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
странные ощущения оставляет. как будто зря каждый раз жру кактус чтобы его настроить, а выдача как от модных варнингов гцц. (про си)
| |
1.37, Аноним (37), 07:12, 09/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Описание к третьей ссылке поправьте. Во-первых, MIRSA - это не стиль оформления кода. Во-вторых, в cppcheck нет проверок стилей оформления кода.
| |
1.43, InuYasha (??), 11:38, 09/02/2022 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Что-то подсказывает мне, что donate-cpu.py имеет в зависимостях donate-bandwidth.py...
| |
|