ipata 1.46 Siseto ede Tu

atejade tu 1.46 ti ede siseto eto ipata, ti a da nipasẹ iṣẹ akanṣe Mozilla. Ede naa dojukọ aabo iranti, pese iṣakoso iranti aifọwọyi, ati pese awọn irinṣẹ lati ṣaṣeyọri isọdọkan iṣẹ-ṣiṣe giga laisi lilo ikojọpọ idoti ati akoko asiko.

Iṣakoso iranti aifọwọyi ti Rust yọkuro awọn aṣiṣe nigbati o ba n ṣakoso awọn itọka ati aabo lodi si awọn iṣoro ti o dide lati ifọwọyi iranti ipele kekere, gẹgẹbi iraye si agbegbe iranti lẹhin ti o ti ni ominira, awọn ifọkasi ijuboluwole asan, awọn agbekọja buffer, ati bẹbẹ lọ. Oluṣakoso package ti wa ni idagbasoke lati kaakiri awọn ile-ikawe, rii daju apejọ ati ṣakoso awọn igbẹkẹle nipasẹ iṣẹ akanṣe naa. laisanwo, gbigba ọ laaye lati gba awọn ile-ikawe ti o nilo fun eto naa ni titẹ kan. Ibi ipamọ jẹ atilẹyin lati gbalejo awọn ile-ikawe crates.io.

akọkọ awọn imotuntun:

  • Расширены возможности функций, определённых с использованием выражения «const fn», которые могут вызываться не только как обычные функции, но и использоваться в любом контексте вместо констант. Данные функции вычисляются на этапе компиляции, а не в ходе выполнения, поэтому на них накладываются определённые ограничения, такие как возможность чтения только из констант.

    В новом выпуске убран запрет на применение в подобных функциях булевых операторов («&&» и «||»), разрешено использование конструкций «if», «if let», «match»,
    «while», «while let» и «loop», а также предоставлена возможность преобразования в срезы (slice, динамические массивы) при помощи выражения «&[T]». Применение данных возможностей в функциях «const fn» позволяет вынести некоторые ресурсоёмкие операции на стадию компиляции. Например, реализация «const-sha1» даёт возможность вычислять хэши SHA-1 во время компиляции, что приводит к ускорению работы WinRT привязок для Rust почти в 40 раз.

  • Для повышения информативности сообщений об ошибках стабилизирована поддержка атрибута «#[track_caller]», полезного для функций, подобных unwrap, в которых не исключается возникновение сбоев (panic) при некорректном использовании типов. Указанный атрибут будет использован обработчиком panic для вывода местоположения вызывающего в сообщении об ошибке.
  • Признак «const», определяющий возможность использования в любом контексте вместо констант, применён в методе std::mem::forget.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы Option::zip и vec::Drain::as_slice.
  • В пакетный менеджер Сargo kun поддержка новых переменных окружения, устанавливамых при компиляции пакета: CARGO_BIN_NAME (имя результирующего исполняемого файла), CARGO_CRATE_NAME (имя пакета), CARGO_PKG_LICENSE (лицензия, указанная в манифесте), CARGO_PKG_LICENSE_FILE (путь к файлу с лицензией).

orisun: opennet.ru

Fi ọrọìwòye kun