Size: a a a

2020 May 14

e

egoarka in rust_offtopic
ну ладно, тогда вот видосик поинтереснее, поможет снизить уровень стресса и избавится тупизны

https://www.youtube.com/watch?v=nII0ralSlRo
источник

G

Gymmasssorla in rust_offtopic
polunin.ai
не смогут
сделали пару лет назад же уже
источник

G

Gymmasssorla in rust_offtopic
источник

AZ

Alex Zhukovsky in rust_offtopic
Nick Linker
❓(возможно глупый)
Почему разработчики языка пошли по пути запинивания объектов и неперемещаемых типов, а не по следующему пути:

Если у нас есть самоссылающаяся структура, то можно после перемещения просто пройтись по всем указателям и пропатчить на новые локации.

Все указатели, которые будут инвалидированы - мы о них знаем, пройтись по ним не проблема.

Да, это медленнее, чем не перемещать такой тип, но если надо перфоманс, просто писать без лишних перемещений.

Зато было бы гибче, меньше запретов от компилятора.

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

p

polunin.ai in rust_offtopic
Nick Linker
❓(возможно глупый)
Почему разработчики языка пошли по пути запинивания объектов и неперемещаемых типов, а не по следующему пути:

Если у нас есть самоссылающаяся структура, то можно после перемещения просто пройтись по всем указателям и пропатчить на новые локации.

Все указатели, которые будут инвалидированы - мы о них знаем, пройтись по ним не проблема.

Да, это медленнее, чем не перемещать такой тип, но если надо перфоманс, просто писать без лишних перемещений.

Зато было бы гибче, меньше запретов от компилятора.

В принципе это можно было бы сделать или я что-то упускаю из вида?
ну представь как это должно быть в компиляторе сделано
источник

JC

Julian =) Coffee in rust_offtopic
sexst
Ну, наверное, ты таки представляешь что такое указатель, базовые вопросы работы с памятью, весёлое ручное швыряние битов и байтов, выравнивание полей в структурах, как происходит вызов функций и прочее?
Вот в питоне этого всего не познать, оно скрыто нахрен.
Да там даже можно про разную разрядность целых чисел никогда не узнать.
Ну это называется абстракции
источник

NL

Nick Linker in rust_offtopic
Alex Zhukovsky
по-моему такой вариант предлагался, и был отвергнут. Мне кажется, проблема в сырых указателях, ты про них не знаешь и проапдетить их не сможешь
Ну тут с помощью @MikailBag получается такой вывод, что компилятор не может в общем случае определить, является что-то указателем или нет.

Но он ещё добавил:
> Это первая.
Вторая в том, что указатель может быть храниться не напрямую, а в хипе .
Третья в том, что компилятор не знает о всех move-ах.
источник

MB

Mikail Bagishov in rust_offtopic
Разверну про вторую:
Допустим мы храним &&str.
Тогда гипотетический фиксер ссылок должен посмотреть, куда указывает &str. Для этого он должен разыменовать внешний &.

А теперь - пусть мы положили этот бокс в MaybeUninit. Тогда этот фиксер ссылок не имеет никакого права взять внутренности MaybeUninit и проинтерпретировать их как корректный указатель. А значит такую вот хитровложенную ссылку MaybeUninit<&&str> пофиксить в рантайме невозможно.
источник

NL

Nick Linker in rust_offtopic
Но кстати, в системах со сборщиком мусора многие указатели тоже содержатся в хипе, и по ним тоже можно пройтись и таким образом собрать всех подозреваемых.
источник

MB

Mikail Bagishov in rust_offtopic
Nick Linker
Но кстати, в системах со сборщиком мусора многие указатели тоже содержатся в хипе, и по ним тоже можно пройтись и таким образом собрать всех подозреваемых.
Но в них, думаю, нельзя производить копирование указателей посредством memcpy
источник

NL

Nick Linker in rust_offtopic
Mikail Bagishov
Разверну про вторую:
Допустим мы храним &&str.
Тогда гипотетический фиксер ссылок должен посмотреть, куда указывает &str. Для этого он должен разыменовать внешний &.

А теперь - пусть мы положили этот бокс в MaybeUninit. Тогда этот фиксер ссылок не имеет никакого права взять внутренности MaybeUninit и проинтерпретировать их как корректный указатель. А значит такую вот хитровложенную ссылку MaybeUninit<&&str> пофиксить в рантайме невозможно.
Да, убедил. Спасибо 👍
источник

JC

Julian =) Coffee in rust_offtopic
sexst
Ну, наверное, ты таки представляешь что такое указатель, базовые вопросы работы с памятью, весёлое ручное швыряние битов и байтов, выравнивание полей в структурах, как происходит вызов функций и прочее?
Вот в питоне этого всего не познать, оно скрыто нахрен.
Да там даже можно про разную разрядность целых чисел никогда не узнать.
Не уверен, что все это нужно в первых языках
источник

SP

Stanislav Popov in rust_offtopic
да это рантайм мусор который не чекает вхождения в сумтип
источник

SP

Stanislav Popov in rust_offtopic
видя такие штуки думаешь боже как прекрасен раст
источник

JC

Julian =) Coffee in rust_offtopic
Еще б GC в Раст...
источник

JC

Julian =) Coffee in rust_offtopic
))
источник

p

polunin.ai in rust_offtopic
Julian =) Coffee
Еще б GC в Раст...
сделай
источник

JC

Julian =) Coffee in rust_offtopic
да я так
источник

JC

Julian =) Coffee in rust_offtopic
Мне и питон хорош
источник

VS

Victor Sapiens in rust_offtopic
@hirrolot ну шо таки ты спрашивал про книги про архитектуру и ФП - я таки тут наткнулся на : https://www.amazon.com/Domain-Modeling-Made-Functional-Domain-Driven/dp/1680502549
источник