Size: a a a

Rust — русскоговорящее сообществo

2020 October 09

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Он работает не так, как стдлибный
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Никто не будет в системном софте использовать nightly
s/nightly/Rust/
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Kitsu
ага, стдлиба использует, а мне нельзя?
Да, у стдлибы особый статус. Майк утверждал, что это не мешает другим написать реализацию.
источник

K

Kitsu in Rust — русскоговорящее сообществo
Emmanuel Goldstein
И ещё твой бокс не NonZero и не Unique, собственно
Можешь допилить, если хочешь, я привел тебе пример
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Kitsu
Можешь допилить, если хочешь, я привел тебе пример
Ты не привёл никакого примера возражения на мой аргумент. Твой бокс всё ещё алиасится с точки зрения LLVM.
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Как ты планируешь передать «уникальность»?
Принято
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
(Я удивлён, что Unique<T> не экспортируется из core, на самом деле)
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Emmanuel Goldstein
(Я удивлён, что Unique<T> не экспортируется из core, на самом деле)
+, я если честно думал, что он есть
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Его оказывается убрали год назад
источник

K

Kitsu in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Ты не привёл никакого примера возражения на мой аргумент. Твой бокс всё ещё алиасится с точки зрения LLVM.
на корректность это не влияет
будет менее эффективный код, ну ок чо
источник

D

Dima in Rust — русскоговорящее сообществo
источник

K

Kitsu in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Нельзя написать стороннюю stdlib
я спорил с этим утверждением
с тем что "бокс особенный" или "стдлиба особенная" я не спорю
источник

D

Dima in Rust — русскоговорящее сообществo
Kitsu
я спорил с этим утверждением
с тем что "бокс особенный" или "стдлиба особенная" я не спорю
ну тогда это будет не совсем та stdlib что есть сейчас
источник

K

Kitsu in Rust — русскоговорящее сообществo
Dima
ну тогда это будет не совсем та stdlib что есть сейчас
раскроешь мысль?
источник

D

Dima in Rust — русскоговорящее сообществo
ну box будет другой,
как минимум вот такие вещи будут невозможны
The third one is the one that really gets to us here3. For a regular type, *foo will produce a temporary that must be immediately borrowed or copied. You cannot do let x = *y for a non-Copy type. This dereference operation will call DerefMut::deref_mut or Deref::deref based on how it gets borrowed. With Box<T>, you can do this:
let x = Box::new(vec![1,2,3,4]);
let y = *x; // moves the vec out into y, then deallocates the box
           // but does not call a destructor on the vec
источник

D

Dima in Rust — русскоговорящее сообществo
вообщем типчики будут немного другие
источник

D

Dima in Rust — русскоговорящее сообществo
кстати что насчет оптимизаций связанных с Option<&T>
источник

D

Dima in Rust — русскоговорящее сообществo
тоже нельзя будет
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Dima
кстати что насчет оптимизаций связанных с Option<&T>
Это засчет NotNull достигается, насколько я знаю
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Я задумывался, что они могут принимать первым аргументом Box<dyn private::Sealed>
mod internal { pub struct Internal; }

Методы принимающие Internal как один из аргументов, никто не вызовет.

Недавно видел такой хак чуть ли не в токио 🤔
источник