
Как Rust обманывает процессор. Часть 2: niche сквозь крейты, dropck, Pin и провенанс указателей
Как Rust обманывает процессор. Часть 2: niche сквозь крейты, dropck, Pin и провенанс указателейВ первой части мы обсуждали niche-оптимизацию, drop flags, MIR, Stacked Borrows и async-стейт-машины. В комментариях...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. Как Rust обманывает процессор. Часть 2: niche сквозь крейты, dropck, Pin и провенанс указателейВ первой части мы обсуждали niche-оптимизацию, drop flags, MIR, Stacked Borrows и async-стейт-машины.
В комментариях справедливо заметили (спасибо, Mingun): про niche рассказано в простой форме - Option<&T> и NonZeroU8. А что происходит, когда enum живёт в одном крейте, оборачивается в newtype в другом, и оба варианта внешнего enum хранят один и тот же внутренний?
Технические детали
У такого внешнего типа всего четыре состояния, байта должно хватить. Зависит от того, как rustc считает layout.
Во второй части идём глубже: niche сквозь границы крейтов, variance, Pin и самоссылающиеся футуры, dropck с #, Tree Borrows вместо Stacked Borrows и strict provenance. Без этого половина unsafe-кода в экосистеме держится на честном слове.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





