Size: a a a

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

2020 November 14

IL

Ilya Lakhin in Rust — русскоговорящее сообществo
Александр Мещеряков
У меня практически нет типов с лайфтаймами и Rc/Arc. Все работает. Что я делаю не так?
То есть вы везде всё передаете по значению? )
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
В GC языках обычно более добрая модель памяти, которая разрешает дата-рейсы, поэтому мьютексы использовать необязательно
источник

АМ

Александр Мещеряков... in Rust — русскоговорящее сообществo
Ilya Lakhin
То есть вы везде всё передаете по значению? )
Нет. Почти везде все передается по ссылке.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
JvK
если уже берете язык со строгой типизацией и прочими правилами - берите хотя бы самый быстрый
Строгая типизация и в питоне
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
А статической в го толком нет, всё на пустых интерфейсах
источник

И

Игорь in Rust — русскоговорящее сообществo
Mikail Bagishov
В GC языках обычно более добрая модель памяти, которая разрешает дата-рейсы, поэтому мьютексы использовать необязательно
скорее gc беспечивает safety, шаред мутабилити как была проблемой так и остаётся
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну да, с этим согласен.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
GC не обеспечивает safety в понимании Rust
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Одну из частей - корректность ссылок - обеспечивает
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Ноп
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
package main

func main() {
 var ptr *int
 *ptr = 5
}
источник

EG

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

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Если это UB, то это конкретно проблема го (ну а то что го это одна большая проблема в доказательстве, думаю, не нуждается)
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
нет ничего проще чем детектить запись по нулевому адресу.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Mikail Bagishov
Одну из частей - корректность ссылок - обеспечивает
То, что мутабельные ссылки не алиасятся — тоже не обеспечивает
источник

И

Игорь in Rust — русскоговорящее сообществo
Emmanuel Goldstein
GC не обеспечивает safety в понимании Rust
gc беспечивает safety в смысле - есть ссылка на память - память не освободится -> не будет обращения по невалидному адресу. И да, это не не про раст
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
То, что мутабельные ссылки не алиасятся — тоже не обеспечивает
А это решается ослабленной моделью памяти
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Игорь
gc беспечивает safety в смысле - есть ссылка на память - память не освободится -> не будет обращения по невалидному адресу. И да, это не не про раст
Обращение по нулевому адресу как минимум легко организовать
По другому невалидному нельзя, да
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
До тех пор, пока разыменование nullptr не UB, то и safety это никак не мешает
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Насколько я понимаю, в го нет нормального списка что UB, а что нет
источник