Rust 1.46 Rilaxx tal-Lingwa ta' Programmazzjoni

ippubblikat rilaxx 1.46 tal-lingwa tal-ipprogrammar tas-sistema Rust, imwaqqfa mill-proġett Mozilla. Il-lingwa tiffoka fuq is-sikurezza tal-memorja, tipprovdi ġestjoni awtomatika tal-memorja, u tipprovdi għodod biex jinkiseb paralleliżmu għoli tal-kompiti mingħajr ma tuża kollettur taż-żibel u runtime.

Il-ġestjoni awtomatika tal-memorja ta 'Rut telimina l-iżbalji meta timmanipula pointers u tipproteġi kontra problemi li jirriżultaw minn manipulazzjoni tal-memorja ta' livell baxx, bħall-aċċess għal reġjun tal-memorja wara li jkun ġie meħlus, dereferences null pointer, buffer overruns, eċċ. Qed jiġi żviluppat maniġer tal-pakketti biex iqassam il-libreriji, jiżgura l-assemblaġġ u jamministra d-dipendenzi mill-proġett. merkanzija, li jippermettilek tikseb il-libreriji meħtieġa għall-programm fi klikk waħda. Repożitorju huwa appoġġjat biex jospita libreriji crates.io.

Il-prinċipali innovazzjonijiet:

  • Расширены возможности функций, определённых с использованием выражения «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 miżjud поддержка новых переменных окружения, устанавливамых при компиляции пакета: CARGO_BIN_NAME (имя результирующего исполняемого файла), CARGO_CRATE_NAME (имя пакета), CARGO_PKG_LICENSE (лицензия, указанная в манифесте), CARGO_PKG_LICENSE_FILE (путь к файлу с лицензией).

Sors: opennet.ru

Żid kumment