Size: a a a

2020 May 27

SP

Stanislav Popov in rust_offtopic
ну это то что я читал
источник

D

Dima in rust_offtopic
red75prime
"iou is mostly safe, but not completely."
там все unsafe я игрался с ней, потом ему issues еще отписывал
источник

r

red75prime in rust_offtopic
Dima
там все unsafe я игрался с ней, потом ему issues еще отписывал
Что значит "всё unsafe"? "Все предоставляемые интерфейсы требуют использования unsafe." Или "Все safe интерфейсы могут привести к UB"
источник

D

Dima in rust_offtopic
Все предоставляемые интерфейсы требуют использования unsafe
источник

SP

Stanislav Popov in rust_offtopic
короче нет, там проблема в том что ядро владеет памятью и может выкинуть в любой момент
источник

SP

Stanislav Popov in rust_offtopic
и концепция владения ломается
источник

r

red75prime in rust_offtopic
Dima
Все предоставляемые интерфейсы требуют использования unsafe
IOUring, CQE, Registrar - unsafe методов нет.
источник

SP

Stanislav Popov in rust_offtopic
Logical ownership is the only way to make this work in Rust’s current type system: the kernel must own the buffer. There’s no sound way to take a borrowed slice, pass it to the kernel, and wait for the kernel to finish its IO on it, guaranteeing that the concurrently running user program will not access the buffer in an unsynchronized way. Rust’s type system has no way to model the behavior of the kernel except passing ownership. I would strongly encourage everyone to move to an ownership based model, because I am very confident it is the only sound way to create an API.
источник

r

red75prime in rust_offtopic
"Нельзя использовать без unsafe" и "всё unsafe" - разные вещи
источник

D

Dima in rust_offtopic
red75prime
"Нельзя использовать без unsafe" и "всё unsafe" - разные вещи
ладно, согласен
источник

D

Dima in rust_offtopic
не все unsafe)
источник

D

Dima in rust_offtopic
Stanislav Popov
Logical ownership is the only way to make this work in Rust’s current type system: the kernel must own the buffer. There’s no sound way to take a borrowed slice, pass it to the kernel, and wait for the kernel to finish its IO on it, guaranteeing that the concurrently running user program will not access the buffer in an unsynchronized way. Rust’s type system has no way to model the behavior of the kernel except passing ownership. I would strongly encourage everyone to move to an ownership based model, because I am very confident it is the only sound way to create an API.
так и в чем проблема? передаешь буфферы не по ссылке и все ок
источник

r

red75prime in rust_offtopic
Dima
так и в чем проблема? передаешь буфферы не по ссылке и все ок
Это не пройдёт с существующими AsyncRead, AsyncWrite
источник

D

Dima in rust_offtopic
red75prime
Это не пройдёт с существующими AsyncRead, AsyncWrite
это да
источник

D

Dima in rust_offtopic
внезапно модель проактора не очень подошла)
источник

r

red75prime in rust_offtopic
Вот. В винде дурного не сделают. Надо было на IOCP ориентироваться.
источник

SP

Stanislav Popov in rust_offtopic
видите не работает ваш раст
источник

SP

Stanislav Popov in rust_offtopic
лодочник признал что все было впустую
источник

D

Dima in rust_offtopic
red75prime
Вот. В винде дурного не сделают. Надо было на IOCP ориентироваться.
не только в винде, если взять spdk там тоже так
источник

SP

Stanislav Popov in rust_offtopic
идея что лайфтаймами можно сделать мемори сейфети это утопия
источник