רוסט 1.46 פּראָגראַממינג שפּראַך מעלדונג

ארויס מעלדונג 1.46 פון די סיסטעם פּראָגראַממינג שפּראַך זשאַווער, געגרינדעט דורך די מאָזיללאַ פּרויעקט. די שפּראַך פאָוקיסיז אויף זיקאָרן זיכערקייַט, גיט אָטאַמאַטיק זכּרון פאַרוואַלטונג און גיט מכשירים פֿאַר אַטשיווינג הויך אַרבעט פּאַראַלעליזאַם אָן ניצן אַ מיסט קאַלעקטער און רונטימע.

רוסט ס אָטאַמאַטיק זכּרון פאַרוואַלטונג ילימאַנייץ ערראָרס ווען מאַניפּיאַלייטינג פּוינטערז און פּראַטעקץ קעגן פּראָבלעמס ערייזינג פון נידעריק-מדרגה זכּרון מאַניפּיאַליישאַן, אַזאַ ווי אַקסעס אַ זכּרון געגנט נאָך באפרייט, נאַל טייַטל דיפעראַנסיז, באַפער אָוווערראַנז, עטק. א פּעקל פאַרוואַלטער איז דעוועלאָפּעד צו פאַרשפּרייטן לייברעריז, ענשור פֿאַרזאַמלונג און פירן דיפּענדאַנסיז דורך די פּרויעקט. לאַסט, אַלאַוינג איר צו באַקומען די לייברעריז דארף פֿאַר די פּראָגראַם אין איין גיט. א ריפּאַזאַטאָרי איז געשטיצט צו באַלעבאָס לייברעריז crates.io.

הויפּט ינאָווויישאַנז:

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

מקור: opennet.ru

לייגן אַ באַמערקונג