Size: a a a

2020 August 14

CD

Constantine Drozdov in rust_offtopic
весь этот proposal будет выглядеть совершенно по другому, если текущий move не является destructive
источник

Т8

Т-34 85 in rust_offtopic
Constantine Drozdov
и да, если ты будешь читать не жопой, ты неожиданно заметишь, что
We define a new verb, "relocate," which is equivalent to a move and a destroy — это работает только для destructive move
analogous to the existing verb "swap," which is equivalent to a move, two move-assignments, and a destroy — это работает только для destructive move
все тела методов — это работает только для destructive move
определение Trivially relocatable type (раздел 5.5) —  в точности повторяет соответствующее для trivially moveable
если сделать мув деструктивным, не пропадёт ли способ мувить данные через swap?
источник

Т8

Т-34 85 in rust_offtopic
если пропадёт, то это много кода наебнёт
источник

Ct

Casual tears in rust_offtopic
Т-34 85
если сделать мув деструктивным, не пропадёт ли способ мувить данные через swap?
https://doc.rust-lang.org/std/mem/fn.swap.html
нормальный мув свапам никак не мешает
источник

CD

Constantine Drozdov in rust_offtopic
Т-34 85
если сделать мув деструктивным, не пропадёт ли способ мувить данные через swap?
ну написал же
auto x = std::move(y);
y.~T();
new (&y) T(__no_matter_what);
y = std::move(z);
z.~T();
new (&z) T(__no_matter_what);
z = std::move(x);
источник

SP

Stanislav Popov in rust_offtopic
https://doc.rust-lang.org/beta/std/ptr/fn.swap_nonoverlapping.html

Behavior is undefined if any of the following conditions are violated:

Both x and y must be valid for both reads and writes of count * size_of::<T>() bytes.

Both x and y must be properly aligned.

The region of memory beginning at x with a size of count * size_of::<T>() bytes must not overlap with the region of memory beginning at y with the same size.
источник

SP

Stanislav Popov in rust_offtopic
ну хотя все логично да
источник

CD

Constantine Drozdov in rust_offtopic
Stanislav Popov
ну хотя все логично да
ну видал я похуже требования
источник

CD

Constantine Drozdov in rust_offtopic
для memcpy скажем еще есть требование, что даже при нулевом копировании указатели должны быть валидные
источник

p

polunin.ai in rust_offtopic
Т-34 85
стоп! Я понял, почему в Rust нет UB. Да просто потому, что нет никакого стандарта! Как появится - так и UndB и UnsB появятся
В расте тоже есть UB.
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
Чтобы понять ответ на этот вопрос, нужно посмотреть "идиоматическую" реализацию двусвязного списка в Rust, который заменяет указатели индексами массива, это же совсем другое, совершенно точно невозможно в велосипедной арене сделать use after free
Опять ты со своим двусвязным списком который не нужен практически никогда)
источник

p

polunin.ai in rust_offtopic
Constantine Drozdov
а, наверное можно совершенно случайно сохранить индекс элемента vec в какой-нибудь структурке (указатель), потом элемент удалят из списка с формированием битого индекса, а потом аллокатор снова отдаст этот элемент, и никакие проверки указателей нас больше не спасут?
Опять какую-то херню несешь
источник

Т8

Т-34 85 in rust_offtopic
polunin.ai
В расте тоже есть UB.
на самом деле, я где-то эту мысль уже слышал, но забыл о ней. Заново открыта :)
источник

p

polunin.ai in rust_offtopic
Например запись по указателю в рандомный участок памяти
источник

T1

Tony 123 in rust_offtopic
Constantine Drozdov
а, наверное можно совершенно случайно сохранить индекс элемента vec в какой-нибудь структурке (указатель), потом элемент удалят из списка с формированием битого индекса, а потом аллокатор снова отдаст этот элемент, и никакие проверки указателей нас больше не спасут?
нет, все логично
источник

p

polunin.ai in rust_offtopic
Вся ваша эта статика нужна для неуверенных в себе людей. Для сосунков, которые и шагу на лестнице не держась за перилы бояться сделать. Для маменьких деток, которые прячутся под юбкой. Вы не цените свободы, вам нравится рабство. Рабство у компилятора. Примерно те же люди голосуют за Путина, им важнее чувство безопасности а не свободы.
источник

П

Пашечка in rust_offtopic
Нифига ты завернул
источник

П

Пашечка in rust_offtopic
Тогда автомобиль с абс нужен тем же людям)
источник

П

Пашечка in rust_offtopic
Дифавтоматы на электро ввод в квартиру тоже ставят не уверенные в себе сосунки: ты же знаешь ограничения по потреблению и никогда не можешь включить больше или устроить КЗ
источник

П

Пашечка in rust_offtopic
В общем я поддерживаю, да х)
источник