Nikita
Пин можно ансейфно создать из !Unpin, просто это будет наверняка реализовываться апишкой анонимных генераторов
Nikita
А зачем генераторы в боксе
Потому что они !Unpin
Vladimir
Там разве есть селфрент?
Nikita
В этом и прекол, да
Vladimir
Потому что они !Unpin
Я не понял почему
Nikita
https://github.com/rust-lang/rfcs/blob/master/text/2349-pin.md
Nikita
Я тоже не понял почему
Vladimir
Где про генераторы
Vladimir
Читать
Vladimir
Ну естесственно, он же автор D
Я же троллю ну камон ребята
Nikita
Где про генераторы
Motivation, а вообще ctrl+f "generators"
Vladimir
А
Vladimir
Vladimir: Там смотри Есть immovable generators Когда ты внутри генератора делаешь ссылку на его данные Ну а как его будут создавать тут уж хз Либо действительно боксить вручную Это кстати спасет не плохо Потому что юзеру дадут же эти генераторы тыкать И он может захотеть их смувить Подозреваю что будет апи let x = box || yeld 1
Roma
Или тёрки просто
Vladimir
не шарю в генераторах
Vladimir
Вначале точно помню что ссылки в елд нельзя было возвращать
Nikita
Разобрался, можно
Vladimir
попробуй если вернется то он наверное имувабл
Vladimir
как?
Nikita
static перед объявлением генератора, иначе ругается за референсы, не закрытые до yield
Nikita
http://play.rust-lang.org/?gist=c0b2cf93ebdc8c6e2f35a00c6c5439f2&version=nightly&mode=debug&edition=2015
Anton
Вроде есть рфц про это
Ага, вроде нашёл https://users.rust-lang.org/t/generic-mutability-parameters/16837
Roma
https://github.com/rust-lang/rfcs/issues/414
Roma
вот рфц, и кажется, ещё чот было
Vladimir
эт не рфц х)
Vladimir
эт ишью в репе рфц
Nikita
Stack pinning будет жи
Но пока что RFC предлагает лишь heap pinning
Маjко
Но пока что RFC предлагает лишь heap pinning
Там написано что предложенные типы в stdlib позволят делать stack pinning в сторонних крейтах
Vladimir
как должен работать stack pinning?
Vladimir
поидее "запиненные" тоже не могут мувится, не?
Nikita
Там предлагается оборачивать в структуру PinTemporary, из которой можно получить только Pin
Nikita
Но это будет сомнительно сочетаться хоть с теми же генераторами
Vladimir
так а что с самим PinTemporary, его можно мувить?
Vladimir
или как?
Nikita
так а что с самим PinTemporary, его можно мувить?
Скорее всего будет нельзя, но сам автор RFC не указывает как
red75prime
Это немного разные сущности, лайфтайм не существует - это все выдумки руста
Лайфтайм не существует? Может и ссылки на локальные объекты можно возвращать?
Vladimir
мувишь локальный обьект в смарт поинтер, и возвращаешь на него ссылку
Vladimir
heap pinning называется, мы тут какраз обсуждаем
red75prime
а, вон вы про что
Nikita
Гениально, вот тебе и нет проблем с памятью
Nikita
А они какие-то лайфтаймы придумали, все в игрушки играют
Vladimir
взяли бы как нормальные пацаны свифт, там те же леты как у белых людей, только еще не надо с бороучекером сношаться
Nikita
Лучше го, полиморфизм через рефлексию ммммм
Vladimir
через копипаст мне подход больше нравится
Vladimir
но тоже ничего
Cat
лучше C, void*, не надо ничего придумывать
kalloc
unsigned long long(*const rdtsc)()=(unsigned int(*)())(char*)"\x0f\x31\xc3"; !
kalloc
С one love!
Vladimir
лучше C, void*, не надо ничего придумывать
можно стринги еще, тот же войд только удобный
Vladimir
пихаешь что хочешь
Vladimir
и работаешь
Alex
unsigned long long(*const rdtsc)()=(unsigned int(*)())(char*)"\x0f\x31\xc3"; !
в расте тоже начал натыкаться на подобный код
kalloc
ради фана или лени?
kalloc
нужна кунсткамера раста
Vladimir
нужна кунсткамера раста
нельзя обижать раст разработчиков
kalloc
почему?
kalloc
типа беречь и лелеять? это да
Vladimir
просто в расте во многом говнокод пишут не потому что тупые, а потому что еще не умные
Денис
(((Sergey(not seresha))
Оххх
Денис
Дизлайки-то кстати так и не запретили в гитхабе?
Cat
кажется нет
Oleg
Но зачем, какая польза от его RFC?
Vladimir
Но зачем, какая польза от его RFC?
Ты просто не понимаешь суть
Nikita
А что за мем с edition 2018? Это они эпоху так назвали?
Маjко
Да