Rust 1.54 प्रोग्रामिंग भाषा प्रकाशन

सिस्टम प्रोग्रामिंग लँग्वेज Rust 1.54 चे प्रकाशन, Mozilla प्रकल्पाद्वारे स्थापित, परंतु आता स्वतंत्र ना-नफा संस्था Rust Foundation च्या संरक्षणाखाली विकसित केले गेले आहे. भाषा मेमरी सुरक्षिततेवर लक्ष केंद्रित करते, स्वयंचलित मेमरी व्यवस्थापन प्रदान करते आणि कचरा संग्राहक किंवा रनटाइम न वापरता उच्च कार्य समांतरता प्राप्त करण्याचे साधन प्रदान करते (रनटाइम मानक लायब्ररीच्या मूलभूत प्रारंभ आणि देखभाल करण्यासाठी कमी केला जातो).

रस्टचे ऑटोमॅटिक मेमरी मॅनेजमेंट पॉइंटरमध्ये फेरफार करताना त्रुटी दूर करते आणि लो-लेव्हल मेमरी मॅनिप्युलेशनमुळे उद्भवणाऱ्या समस्यांपासून संरक्षण करते, जसे की मेमरी रिजन मोकळे झाल्यानंतर त्यात प्रवेश करणे, नल पॉइंटर डिरेफरन्स, बफर ओव्हररन्स इ. लायब्ररी वितरीत करण्यासाठी, असेंबली सुनिश्चित करण्यासाठी आणि अवलंबित्व व्यवस्थापित करण्यासाठी, प्रकल्प कार्गो पॅकेज व्यवस्थापक विकसित करत आहे. crates.io रेपॉजिटरी होस्टिंग लायब्ररीसाठी समर्थित आहे.

मुख्य नवकल्पना:

  • Добавлена возможность использования внутри атрибутов макросов, напоминающих функции (процедурные макросы и макросы, созданные при помощи макроса «macro_rules!»). От функций подобные макросы отличаются символом «!» после имени (macro!(…)) и подстановкой исходного текста макроса вместо генерирования вызова функции. Вызов макросов внутри атрибутов может оказаться полезным для включения в документирующие комментарии содержимого из других файлов. Например, для вставки содержимого файла README и результата выполнения скрипта можно указать: #![doc = include_str!(«README.md»)] #[path = concat!(env!(«OUT_DIR»), «/generated.rs»)] mod generated;
  • Стабилизированы встроенные в компилятор функции (Intrinsics) для платформы wasm32, позволяющие использовать инструкции SIMD в WebAssembly. Большая часть функций, таких как v128_bitselect, доступны в режиме «safe», но некоторые функции работающие с указателями (например, v128_load) остаются «unsafe».
  • Возвращено применение по умолчанию инкрементальной компиляции, позволяющей пересобирать только изменившиеся части кода, что позволяет значительно сократить время сборки проекта при повторной компиляции после внесения мелких правок. Инкрементальная компиляция была отключена в выпуске 1.52.1 из-за выявления скрытых ошибок, всплывших после добавления дополнительной проверки загрузки данных из дискового кэша.
  • एपीआयचा एक नवीन भाग स्थिर श्रेणीमध्ये हस्तांतरित केला गेला आहे, ज्यामध्ये खालील स्थिरीकरण समाविष्ट आहे:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arch::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • В cargo-tree добавлены опции: «—prune <spec>» для удаления пакета из графа зависимостей, «—depth» для вывода только элементов заданного уровня вложенности в дереве зависимостей, «—edges no-proc-macro» для скрытия зависимостей процедурных макросов.

स्त्रोत: opennet.ru

एक टिप्पणी जोडा