মরিচা 1.52 প্রোগ্রামিং ভাষা প্রকাশ

সিস্টেম প্রোগ্রামিং ল্যাঙ্গুয়েজ রাস্ট 1.52 প্রকাশ করা হয়েছে, মোজিলা প্রকল্প দ্বারা প্রতিষ্ঠিত, কিন্তু এখন স্বাধীন অলাভজনক সংস্থা রাস্ট ফাউন্ডেশনের পৃষ্ঠপোষকতায় বিকশিত হয়েছে। ভাষাটি মেমরির সুরক্ষার উপর দৃষ্টি নিবদ্ধ করে, স্বয়ংক্রিয় মেমরি ব্যবস্থাপনা প্রদান করে এবং আবর্জনা সংগ্রহকারী বা রানটাইম ব্যবহার না করে উচ্চ কার্য সমান্তরালতা অর্জনের উপায় প্রদান করে (রানটাইমটি সাধারণ লাইব্রেরির প্রাথমিক প্রাথমিককরণ এবং রক্ষণাবেক্ষণে হ্রাস করা হয়)।

রাস্টের স্বয়ংক্রিয় মেমরি ম্যানেজমেন্ট পয়েন্টারগুলি পরিচালনা করার সময় ত্রুটিগুলি দূর করে এবং নিম্ন-স্তরের মেমরি ম্যানিপুলেশন থেকে উদ্ভূত সমস্যাগুলি থেকে রক্ষা করে, যেমন একটি মেমরি অঞ্চল মুক্ত হওয়ার পরে অ্যাক্সেস করা, নাল পয়েন্টার ডিরেফারেন্স, বাফার ওভাররান ইত্যাদি। লাইব্রেরি বিতরণ, সমাবেশ নিশ্চিত করতে এবং নির্ভরতা পরিচালনা করতে, প্রকল্পটি কার্গো প্যাকেজ ম্যানেজার তৈরি করছে। লাইব্রেরি হোস্ট করার জন্য crates.io সংগ্রহস্থল সমর্থিত।

প্রধান উদ্ভাবন:

  • Убрана привязка к порядку выполнения команд «cargo check» и «cargo clippy». Раньше вызов «cargo clippy» после «cargo check» не приводил к запуску утилиты clippy (linter) из-за отсутствия разделения кэшей для данных режимов проверки. Теперь эта проблема решена и порядок вызова «cargo clippy» и «cargo check» перестал иметь значение.
  • API এর একটি নতুন অংশ স্থিতিশীল বিভাগে স্থানান্তর করা হয়েছে, নিম্নলিখিত পদ্ধতিগুলিকে স্থিতিশীল করা হয়েছে:
    • Arguments::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::partition_point
    • str::rsplit_once
    • str::split_once
  • "const" বৈশিষ্ট্য, যা ধ্রুবকের পরিবর্তে যেকোনো প্রসঙ্গে এটি ব্যবহারের সম্ভাবনা নির্ধারণ করে, পদ্ধতিগুলিতে ব্যবহৃত হয়:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Добавлена lint-проверка unsafe_op_in_unsafe_fn для определения обрамления unsafe-блоками unsafe-кода, используемого в unsafe-функциях.
  • Разрешено приведение mutable-указателей на массивы в форму указателей на тип, что и у элемента массива. let mut x: [usize; 2] = [0, 0]; let p = &mut x as *mut usize; let p = &mut x as *const usize;
  • В clippy (linter) добавлено 9 новых проверок.
  • В пакетном менеджере cargo для пакетов реализована поддержка поля «manifest_path» в JSON. В репозиторий crates.io добавлена поддержка указания информации о лицензиях в формате SPDX 3.11.
  • Разрешено указание нескольких фильтров при выполнении тестов, например запуск «cargo test — foo bar» запустит все тесты, соответствующие маскам «foo» и «bar».
  • Применяемый по умолчанию инструментарий LLVM обновлён до версии LLVM 12.
  • Реализован третий уровень поддержки для платформ s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl и powerpc-unknown-openbsd. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

উত্স: opennet.ru

একটি মন্তব্য জুড়ুন