रस्ट प्रोग्रामिङ भाषा 1.54 रिलीज

प्रणाली प्रोग्रामिङ भाषा Rust 1.54 को रिलीज, Mozilla परियोजना द्वारा स्थापित, तर अब स्वतन्त्र गैर-लाभकारी संस्था रस्ट फाउन्डेसन को तत्वावधान अन्तर्गत विकसित, प्रकाशित गरिएको छ। भाषाले मेमोरी सुरक्षामा फोकस गर्छ, स्वचालित मेमोरी व्यवस्थापन प्रदान गर्दछ, र फोहोर सङ्कलन वा रनटाइम (रनटाइमलाई मानक पुस्तकालयको आधारभूत प्रारम्भ र मर्मतसम्भारमा घटाइन्छ) प्रयोग नगरी उच्च कार्य समानान्तरता प्राप्त गर्ने माध्यमहरू प्रदान गर्दछ।

रस्टको स्वचालित मेमोरी व्यवस्थापनले विकासकर्तालाई पोइन्टरहरू हेरफेर गर्दा त्रुटिहरूबाट बचाउँछ र निम्न-स्तर मेमोरी हेरफेरको कारण उत्पन्न हुने समस्याहरूबाट जोगाउँछ, जस्तै मेमोरी क्षेत्रलाई खाली गरिसकेपछि पहुँच गर्ने, नल पोइन्टहरू, बफर ओभररन्स, इत्यादि। पुस्तकालयहरू वितरण गर्न, निर्माणहरू प्रदान गर्न र निर्भरताहरू व्यवस्थापन गर्न, परियोजनाले कार्गो प्याकेज प्रबन्धक विकास गर्दछ। 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

एक टिप्पणी थप्न