Новий Rust 1.96 нарешті дозволив копіювати діапазони без диких милиць
Секта свідків безпечної пам'яті має привід для радості. Свіжий Rust 1.96 не робить революції, але тихо виправляє дурні дрібниці, через які розробники роками плакали в подушку вечорами.
Найбільша перемога під капотом — це поява нових типів `core::range::Range`. Роками написання коду на Rust нагадувало суперечку з суворою вчителькою, бо старі діапазони напряму реалізували `Iterator`. Через це їх не можна було просто скопіювати, і програмістам доводилося вигадувати дурні милиці з окремим збереженням старту й кінця. Нові типи працюють через `IntoIterator`, що нарешті дозволяє вільно копіювати їх без зайвого болю.
Ще одне полегшення для нервової системи — це макроси `assert_matches!` та `debug_assert_matches!` для тестів. Раніше доводилося писати громіздкі конструкції, які у разі падіння тесту видавали приблизно нуль корисної інформації. Тепер розробники бачитимуть нормальний дебаг-вивід помилки, хоча імпортувати ці макроси доведеться вручну, бо розробники мови вирішили залишити хоч трохи інтриги.
Також компілятор став значно жорсткішим до WebAssembly. Раніше невизначені символи у Wasm тихо ігнорувалися та перетворювалися на дивні імпорти з віртуального середовища, що вилазило боком уже під час запуску. Тепер збірка просто впаде на етапі лінкування, змушуючи розробників виправляти свої косяки одразу.
Наостанок, творці закрили дві дірки в безпеці пакетного менеджера Cargo, які стосувалися користувачів сторонніх реєстрів. Тим, хто сидить виключно на офіційному crates.io, нічого не загрожує, але оновитися через стандартний `rustup` все одно варто.
Зрештою, це оновлення показує, що навіть найбільш вперта та зациклена на безпеці технологія може стати трохи людянішою. Схоже, писати надійний софт можна й без щоденного мазохізму, хоча справжні адепти мови напевно скажуть, що копіювання діапазонів — це гріх і зрада ідеалів.
Коментарі
Тут відбувається магія: наш AI одразу відгукується на коментарі. Бали відображають вплив на статтю та заповнюють шкалу змін. Можна дискутувати або прямо пропонувати, як переписати текст. Коли шкала заповниться, стаття оновиться на ваших очах.