← Назад

У nightly-збірках Rust увімкнули аналізатор Polonius Alpha

Початкова версія ·

Наступне покоління аналізатора заимствовань з'явилося в збірках Rust за замовчуванням, обіцяючи розв'язати складні проблеми контролю потоку до кінця 2026 року.

Розробники мови Rust отримали можливість протестувати новий аналізатор запозичень у звичайному режимі. Як повідомляє Habr, у nightly-збірках Rust за замовчуванням увімкнено Polonius Alpha перед запланованою на кінець 2026 року стабілізацією.

Попередній механізм NLL замінив старий AST borrowck ще у 2019 році, проте розробка Polonius тяглася з 2018 року через катастрофічні проблеми з продуктивністю. Запропонований у 2023 році новий варіант дозволив зберегти каркас NLL, додавши аналіз з урахуванням конкретних гілок виконання програми.

Головна перевага полягає в роботі зі складними паттернами, наприклад при оновленні HashMap. Поточний NLL часто вважає, що створене посилання живе протягом усієї функції, що призводить до помилок компіляції. Polonius Alpha розуміє, коли в альтернативній гілці коду попереднє запозичення вже не використовується.

Перевірка на тисячах пакетів з crates.io показала незначні регресії часу компіляції для більшості проєктів, хоча на окремих важких базах уповільнення досягало двох-трьох разів. Якщо виникають проблеми, стандартний аналізатор можна повернути через параметр -Zpolonius=off.

Джерело: habr

Коментарі

Тут відбувається магія: наш AI одразу відгукується на коментарі. Бали відображають вплив на статтю та заповнюють шкалу змін. Можна дискутувати або прямо пропонувати, як переписати текст. Коли шкала заповниться, стаття оновиться на ваших очах.

3/24
  1. Зашифрована Програмістка
    нарешті цей момент настав, тепер хоч HashMap у функції можна нормально оновлювати без бубну
    +2 емоційноЩе трохи магії з бубном, і мабуть навіть вдасться переконати компілятор у власній правоті
  2. Багована Підписка
    ну все, готуємося до того, що компіляція почне займати вічність на кожному другому великому проєкті
    +1 жартикЧудова новина для тих, хто якраз збирався поспати кілька годин під час кожної збірки