Комментарии 15
Об оригинале на английском проводились обсуждения на:
Reddit: reddit.com/r/programming/comments/jbkerv/introduction_to_arcorc_in_nim
Hacker News: news.ycombinator.com/item?id=24786649
nim-lang.org/blog/2020/10/16/version-140-released.html
ORC выглядит как костыль. Героически боролись со сборщиками мусора со всеми их недостатками и… сделали ещё один сборщик мусора со всеми их недостатками. Чего они не смотрят в сторону Borrowing&Owning?
Она их предотвращает. Никто не может владеть самим собой.
Первый элемент владеет вторым, второй — третьим и тд.
xomachine скорее всего имеет ввиду Кольцевой связный список, и я не вижу, как его можно реализовать хотя бы без RC чисто с владением.
Ещё почитайте https://news.ycombinator.com/item?id=16443688, коротко говоря — в Rust довольно сложно делать циклические структуры по сравнению с большинством других языков.
Ещё вот — https://rcoh.me/posts/rust-linked-list-basically-impossible/
Последняя ссылка делается невладеющей и всё, какие проблемы?
У Раста свои тараканы. Насколько я понимаю, там нет поддержки наследования владения. Это когда компилятор понимает, что если ты владеешь объектом, который владеет другим объектом, то ты владеешь и вторым тоже. Хотя, кажется RefCell::borrow_mut
— это вроде как раз способ ему это объяснить.
У Раста свои тараканы. Насколько я понимаю, там нет поддержки наследования владения. Это когда компилятор понимает, что если ты владеешь объектом, который владеет другим объектом, то ты владеешь и вторым тоже. Хотя, кажется RefCell::borrow_mut — это вроде как раз способ ему это объяснить.
Это не "наследование владения", а скорее транзитивность владения. RefCell::borrow_mut — это вообще про другое. Пожалуйста, не пишите о том, в чём настолько слабо разбираетесь.
Введение в ARC/ORC в Nim