The OpenNET Project / Index page

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



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

Оглавление

Четвёртая редакция патчей для ядра Linux с поддержкой языка Rust , opennews (?), 17-Янв-22, (0) [смотреть все]

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


146. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +1 +/
Сообщение от Аноним (139), 17-Янв-22, 18:57 
Статические анализаторы пропускают ошибки, и ты это знаешь.
У Гугл и МС 70% уязвимостей это ошибки работы с памятью. Им эти анализаторы не помогли.

Я знаю какой ответ будет, потому напишу сразу:
Код под unsafe локализует место возможной ошибки.

Существует этому и формальное доказательство (пусть пока и не включает все возможности языка):
https://plv.mpi-sws.org/rustbelt/popl18/paper.pdf

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

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

162. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +/
Сообщение от Аноним (-), 17-Янв-22, 19:41 
"gcc -Wall" и Rust  не нужен.
Ответить | Правка | Наверх | Cообщить модератору

177. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +4 +/
Сообщение от Аноним (-), 17-Янв-22, 20:50 
> "gcc -Wall" и Rust  не нужен.


#include<stdio.h>
int main(int argc, char** argv) {
     int (*putit)(char*) = (int (*) (char*)) (argc != 0 ? 0 : puts);
     return putit("bar");
}
$ gcc -Wall test.c && ./a.out
Segmentation fault


$ cat test.rs
use std::env;
use std::io::{Write};
fn put(foo:&[u8]) ->() {
    std::io::stdout().write_all(foo).unwrap();
}
pub fn main() {
    let putit = if env::args().len() !=0 {0} else {put};
    putit(b"hello");
}
$ rustc test.rs
error[E0308]: `if` and `else` have incompatible types
--> tst.rs:7:52
  |
7 |     let putit = if env::args().len() !=0 {0} else {put};
  |                                           -        ^^^ expected integer, found fn item
  |                                           |
  |                                           expected because of this
  |
  = note: expected type `{integer}`
          found fn item `for<'r> fn(&'r [u8]) {put}

как скажешь.

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

310. Скрыто модератором  +/
Сообщение от pavlinux (ok), 10-Фев-22, 03:58 
Ответить | Правка | Наверх | Cообщить модератору

169. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +/
Сообщение от keydon (ok), 17-Янв-22, 20:05 
>  Статические анализаторы пропускают ошибки, и ты это знаешь.

Также как и статический анализатор в расте. От того что его засунули в компилятор ничего не изменилось.

> У Гугл и МС 70% уязвимостей это ошибки работы с памятью. Им эти анализаторы не помогли.

Микрософт это просто сборище !@!#$%^.
У гугла смотреть надо, например в коде хрома и раст не поможет, разве что только сверхИИ или господь Бог.

> Код под unsafe локализует место возможной ошибки.

Ну это сказки для впечатлительных. Это тот же самый статический анализ, где спасал он раньше, спасет и сейчас. Во многих анализаторах и раньше точно также можно было указать где подавлять определенные проверки (то же что и unsafe). Где не спасал, не спасает и в расте.

> Да, в некоторых синтетических примерах при использовании сложных конструкций языка возможны баги. Но они именно что считаются за баги и будут исправлены.

То же самое можно и про плюсы сказать, но почему-то в "плюсах шаблоны кривые" и все кончено, а раст "еще будет исправлен". Мне пора писать rust++?

>Существует этому и формальное доказательство (пусть пока и не включает все возможности языка) https://plv.mpi-sws.org/rustbelt/popl18/paper.pdf

Очень занятно. Особенно мне понравилось:
> In other words, compared to mainstream “safe”languages, Rust offers both lower-level control and stronger safety guarantees. At least, that is the hope.

Лучше бы и я не сказал. Надеюсь этим парням поучаствовавшим в миссии "достижения священного грааля" отдали их дипломы.

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

217. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +2 +/
Сообщение от Минона (ok), 18-Янв-22, 11:40 
Дурак всегда оспаривает свою дурость.
Ответить | Правка | Наверх | Cообщить модератору

263. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +/
Сообщение от burjui (ok), 19-Янв-22, 10:41 
>> Статические анализаторы пропускают ошибки, и ты это знаешь.
> Также как и статический анализатор в расте. От того что его засунули в компилятор ничего не изменилось.

Приведи примеры.

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

269. "Четвёртая редакция патчей для ядра Linux с поддержкой языка ..."  +/
Сообщение от keydon (ok), 19-Янв-22, 12:14 
> Приведи примеры.

Вы не тому ответили.

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

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

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




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

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