The OpenNET Project / Index page

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



"Выпуск языка программирования Rust 1.75 и unikernel Hermit 0.6.7"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Выпуск языка программирования Rust 1.75 и unikernel Hermit 0..." +/
Сообщение от Аноним (-), 01-Янв-24, 23:26 
> В этом и фишка, ни одного unsafe и язык является абсолютно небезопасным.
> И в этом коде можно сделать ошибку где угодно. Не только логическую.

Не любую. А ту ошибку, отсутствие которой не гарантируется safe подмножеством.
Ну, пожалуйста, ну открой доку и прочитай!
Я тебе даже ссылку скину
doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html
doc.rust-lang.org/nomicon/races.html
Надоело повторять одно и тоже!

> И ловить ты её будешь несколько лет.

Неплохой наброс... Пруфов конечно не будет, да?

> Т.е. от Сишки Rust не сильно отличается.

Пхахаха. Сишка позволяет тебе сделать так:
    double *ptr = (double*)malloc(sizeof(double) * 10);
    double *ptr2 = ptr;
    free(ptr);
    free(ptr2);
И будет классический дыряшечный double-free.
А теперь повтори это в безопасном расте. Попробуй напр. в playground.

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

Конечно стоит. Потому что ты будет задумываться о реально сложных вещах, а рутину будет тебе подсказывать компилятор.

> Может, стоило сделать просто более безопасный С, с проверкой границ массивов (а не с ограничениями) в runtime и т.п.?

В runtime слишком дорого. Плюс там не только проверка границ массивов.

> И вот Rust превращается.. превращается...в Zig :))

Слава богу нет))
Потому что в твоем zig делаешь:
    const allocator = std.heap.page_allocator;
    var memory1 = try allocator.alloc(u8, 2);
    var memory2 = memory1;
    allocator.free(memory1);
    allocator.free(memory2);
И наслаждаться "Segmentation fault at address 0x7f55bb3e5000"
Та же сишка, только в профиль. И что, помог тебе твой Zig?

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

Оглавление
Выпуск языка программирования Rust 1.75 и unikernel Hermit 0.6.7, opennews, 29-Дек-23, 19:34  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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