انتشار زبان برنامه نویسی Rust 1.44

منتشر شده انتشار زبان برنامه نویسی سیستم زنگ 1.44توسط پروژه موزیلا تاسیس شد. این زبان بر مدیریت حافظه ایمن تمرکز می کند، مدیریت حافظه خودکار را فراهم می کند و ابزاری را برای دستیابی به موازی کاری بالا در عین اجتناب از استفاده از زباله جمع کن و زمان اجرا.

مدیریت خودکار حافظه Rust، برنامه‌نویس را از خطاها هنگام دستکاری نشانگرها نجات می‌دهد و از مشکلاتی که به دلیل دستکاری حافظه در سطح پایین ایجاد می‌شوند، مانند دسترسی به یک ناحیه حافظه پس از آزاد شدن، عدم ارجاع اشاره‌گرهای تهی، بیش از حد بافر و غیره محافظت می‌کند. برای توزیع کتابخانه ها، اطمینان از مونتاژ و مدیریت وابستگی ها، پروژه یک مدیر بسته توسعه می دهد بار، که به شما امکان می دهد کتابخانه های مورد نیاز برنامه را با یک کلیک دریافت کنید. یک مخزن برای میزبانی کتابخانه ها پشتیبانی می شود crates.io.

در متن اعلامیه نسخه جدید، توسعه دهندگان Rust درگیر سیاست شدند و با سرکشی از انتشار بررسی کامل تغییرات Rust 1.44 در همبستگی با معترضان به خشونت پلیس خودداری کردند که نشان می دهد این موضوع مهمتر از تبادل دانش فنی اصلی نوآوری ها:

  • دستور "درخت بار" در مدیر بسته بار ادغام شده است، که یک نمودار وابستگی درخت مانند را نمایش می دهد. همچنین گزینه "--dupliates" ("درخت محموله -d") اضافه شده است که به شما امکان می دهد وابستگی ها را در نسخه های مختلف یک بسته ارزیابی کنید.

    mdbook نسخه 0.3.2 (/Users/src/rust/mdbook)
    ├── آمونیاک نسخه 3.0.0
    │ ├── html5ever نسخه 0.24.0
    │ │ ├── ورود نسخه 0.4.8
    │ │ │ └── cfg-if نسخه 0.1.9
    │ │ ├── mac نسخه 0.1.1
    │ │ └── markup5ever نسخه 0.9.0
    │ │ ├── log نسخه 0.4.8 (*)
    │ │ ├── phf نسخه 0.7.24
    │ │ │ └── phf_shared نسخه 0.7.24
    │ │ │ ├── siphasher نسخه 0.2.3
    │ │ │ └── unicase نسخه 1.4.2
    │ │ │ [وابستگی های ساخت] │ │ │ └── version_check v0.1.5
    ...

  • برای برنامه‌هایی که به std ("#![no_std]" محدود نمی‌شوند)، پشتیبانی از روش‌های برنامه‌نویسی ناهمزمان مبتنی بر تابع "async"، بلوک async move { ... } و عملگر ".await" اجرا می‌شود که نوشتن جریان فرمان اصلی کنترل کننده های غیر مسدود کننده را آسان تر می کند.
  • پشتیبانی از طرح تعریف سلسله مراتب ماژول توسعه پذیر به تجزیه کننده اضافه شده است. به عنوان مثال، ساختار زیر با وجود عدم وجود واقعی ماژول "foo/bar/baz.rs" خطایی ایجاد نمی کند (از لحاظ معنایی، ساختار همچنان نامعتبر است و ممکن است باعث خطا شود، اما تغییرات قابل مشاهده و تجزیه هستند. در سطح کلان و تدوین مشروط):

    #[cfg(FALSE)] mod foo {
    نوار مد {
    مدباز;
    }
    }

  • کامپایلر rustc قابلیت استفاده از پرچم "-C codegen-units" را در حالت افزایشی اضافه کرد. اجرای catch_unwind دوباره طراحی شده است، که اکنون اگر فرآیند باز کردن غیرفعال شود و هیچ استثنایی وجود نداشته باشد، روی عملکرد تأثیری نمی‌گذارد.
  • پشتیبانی سطح سوم برای پلتفرم‌های aarch64-unknown-none، aarch64-unknown-none-softfloat، arm64-apple-tvos و x86_64-apple-tvos ارائه شده است. سطح سوم شامل پشتیبانی اولیه است، اما بدون آزمایش خودکار و انتشار بیلدهای رسمی.
  • بخش جدیدی از API به دسته پایدار، از جمله تثبیت شده، منتقل شده است
    PathBuf::with_capacity,
    PathBuf:: ظرفیت،
    PathBuf::روشن،
    PathBuf::رزرو،
    PathBuf::reserve_exact،
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked،
    Layout::align_to
    Layout::pad_to_align,
    Layout::array و
    طرح:: گسترش.

  • توابع گسترده کتابخانه استاندارد:
    • یک نوع خاص از "vec![]" اضافه شد که مستقیماً در Vec::new() منعکس می‌شود، و اجازه می‌دهد که "vec![]" در متن به جای ثابت‌ها استفاده شود.
    • اجرای صفت (impl) برای تبدیل::Infallible اضافه شد مخلوط.
    • OsString نشانگرهای هوشمند را پیاده سازی می کند DerefMut и IndexMut، "&mut OsStr" را برمی گرداند.
    • پشتیبانی از Unicode 13 اضافه شد.
    • در String پیاده سازی شده است از<&mutstr>.
    • ویژگی پیاده سازی شده در IoSlice نسخه.
    • Vec اجرا شده از<[T; N]>.
    • proc_macro::LexError fmt::Display و Error را پیاده سازی می کند.
  • ویژگی "const" که امکان استفاده در هر زمینه ای را به جای ثابت ها تعیین می کند، در متدهای from_le_bytes، to_le_bytes، from_be_bytes، to_be_bytes، from_ne_bytes و to_ne_bytes برای همه انواع عدد صحیح استفاده می شود.
  • برای پلتفرم‌های گنو برای ویندوز، پشتیبانی برای تولید کتابخانه‌های استاتیک در قالب «.a» به جای «.lib» اضافه شد.
  • حداقل الزامات LLVM به LLVM 8 افزایش یافته است.

منبع: opennet.ru

اضافه کردن نظر