Size: a a a

2021 March 03

MS

Mikola Summer Duck in rust_offtopic
Roman Blog
Я даже объясню тем, кто хочет понять. Всё примеры, когда не работает wlifetime - это просто фокусы с выводом указателя за скоуп
Ну. Борроучекер раста не позволяет выводить указатель (ссылку) за скоуп.
источник

RB

Roman Blog in rust_offtopic
сообщаю новость - раст не может этого анализровать, в принципе. Любая попытка его вывести - уже несостоятельна. Именно поэтому в расте и существуют лайфтаймы, т.е. программист обязан описать куда и как утекают ссылки.
источник

MS

Mikola Summer Duck in rust_offtopic
Roman Blog
сообщаю новость - раст не может этого анализровать, в принципе. Любая попытка его вывести - уже несостоятельна. Именно поэтому в расте и существуют лайфтаймы, т.е. программист обязан описать куда и как утекают ссылки.
Ну, да, в этом суть.
источник

Z

Zaner in rust_offtopic
Roman Blog
тебя опять обманули. Он не отключает его для внешних сущностей используемых внутри unsafe, но для этого ненужен Unsafe
+, то что лайфтаймы ссылок тайпчекаются совсем не спасает
источник

RB

Roman Blog in rust_offtopic
в С++ wlifetime не требует этого. И анализирует всё сам. Здесь люди исповедуют подход "не жрём дерьмо"
источник

MS

Mikola Summer Duck in rust_offtopic
Ещё программист обязан типы функций указывать.
источник

А⚙

Антон ⚙️ in rust_offtopic
Roman Blog
Я даже объясню тем, кто хочет понять. Всё примеры, когда не работает wlifetime - это просто фокусы с выводом указателя за скоуп
Ты хочешь сказать, что в реальном коде на C++все указатели всегда видны? Лол
источник

MS

Mikola Summer Duck in rust_offtopic
Чуть реже чем в плюсах, правда, но обязан.
источник

RB

Roman Blog in rust_offtopic
есть ms, который пишет чекер "как в расте", запрещая вывод ссылок за скоуп и там есть те же лайфтаймы. Он нигде не файлится, потому что это невозможно
источник

r

red75prime in rust_offtopic
Антон ⚙️
Безусловно. Но растовый borrow checker же такую херню ловит
Он проверяет синтаксические свойства. А из них уже следует наличие семантических - по конструкции языка
источник

А⚙

Антон ⚙️ in rust_offtopic
Roman Blog
в С++ wlifetime не требует этого. И анализирует всё сам. Здесь люди исповедуют подход "не жрём дерьмо"
По твоему, тот факт, что cut_prefix и shortest имеют одинаковые сигнатуры — это хорошо?
источник

p

polunin.ai in rust_offtopic
Roman Blog
За пределами std никакого кода и нет. Сплошные лабы и хеловорлды. В чём угодно, где существует нормальный низкоуровневый код - там везде unsafe.
ну раз кода нет то и обсуждать нечего
источник

А⚙

Антон ⚙️ in rust_offtopic
red75prime
Он проверяет синтаксические свойства. А из них уже следует наличие семантических - по конструкции языка
Ты перепутал, нынешний borrow checker на уровне MIR работает, иначе бы не было бы NLL
источник

RB

Roman Blog in rust_offtopic
Антон ⚙️
По твоему, тот факт, что cut_prefix и shortest имеют одинаковые сигнатуры — это хорошо?
Причём тут это? Дело не в хорошо, а в принципах работы чекеров. wlifetime создан без изменения языка и без ограничения его позволять что-то проверять
источник

А⚙

Антон ⚙️ in rust_offtopic
Roman Blog
Причём тут это? Дело не в хорошо, а в принципах работы чекеров. wlifetime создан без изменения языка и без ограничения его позволять что-то проверять
Есть ещё тайпчекеры для питона, которые не требуют ставить тайп-хинты. Работают ожидаемо дерьмово
источник

RB

Roman Blog in rust_offtopic
раст работает за счёт жестких ограничений и замусоревания языка, переводя на программиста заботу об этой херне. Это даже не автоматическая, а полуавтоматическая херня. wlifetime же полностью автоматический и не ограничивает ничего
источник

p

polunin.ai in rust_offtopic
Roman Blog
раст работает за счёт жестких ограничений и замусоревания языка, переводя на программиста заботу об этой херне. Это даже не автоматическая, а полуавтоматическая херня. wlifetime же полностью автоматический и не ограничивает ничего
как говорил прайм, с некоторого момента машина не может угадывать свойства программы, поэтому без указаний со стороны программиста твой wlifetime проверит только лабы и хелловорлды
источник

RB

Roman Blog in rust_offtopic
Антон ⚙️
Есть ещё тайпчекеры для питона, которые не требуют ставить тайп-хинты. Работают ожидаемо дерьмово
дело не в хинтах. Причин почему раст-чекера в С++ нет множества. Основные это а) чекер этот не чекает тот код, который пишется на С++. б) никто не будет та радикально менять язык.  Хотя С++ сам по себе максимально удобен для чекинга
источник

А⚙

Антон ⚙️ in rust_offtopic
Roman Blog
раст работает за счёт жестких ограничений и замусоревания языка, переводя на программиста заботу об этой херне. Это даже не автоматическая, а полуавтоматическая херня. wlifetime же полностью автоматический и не ограничивает ничего
...И ничего не ловит, ага
источник

RB

Roman Blog in rust_offtopic
polunin.ai
как говорил прайм, с некоторого момента машина не может угадывать свойства программы, поэтому без указаний со стороны программиста твой wlifetime проверит только лабы и хелловорлды
Твой чекер не проверяет 90% stdlib.
источник