Rust 1.44 د پروګرام کولو ژبې خپرول

خپور شوی د سیسټم پروګرام کولو ژبه خپرول زنګ 1.44د موزیلا پروژې لخوا تاسیس شوی. ژبه د حافظې خوندیتوب باندې تمرکز کوي، د اتوماتیک حافظې مدیریت چمتو کوي، او د کثافاتو راټولونکي کارولو پرته د لوړې دندې موازي کولو لپاره وسایل چمتو کوي. د چلولو وخت.

د زنګ د اتوماتیک حافظې مدیریت د پوائنټرونو مینځلو په وخت کې غلطۍ له مینځه وړي او د ټیټې کچې حافظې له مینځه وړلو څخه رامینځته شوي ستونزو څخه ساتي ، لکه د حافظې ساحې ته لاسرسی وروسته له دې چې خلاص شو ، د نول پوینټر ډیریفرنسونه ، بفر اوورونونه او داسې نور. د بسته بندۍ مدیر د کتابتونونو توزیع کولو لپاره رامینځته کیږي ، د غونډې ډاډ ترلاسه کوي او د پروژې لخوا انحصار اداره کوي. کارګو، تاسو ته اجازه درکوي په یو کلیک کې د برنامې لپاره اړین کتابتونونه ترلاسه کړئ. یو ذخیره د کتابتونونو کوربه کولو لپاره ملاتړ کیږي crates.io.

د نوي خوشې کیدو د اعلان په متن کې ، د زنګ پراختیا کونکي په سیاست کې ښکیل شول او په کلکه یې د پولیسو تاوتریخوالی پروړاندې د لاریون کونکو سره د پیوستون نښه په توګه په Rust 1.44 کې د بدلونونو بشپړ بیاکتنې خپرولو څخه انکار وکړ ، دا په ګوته کوي چې دا مسله خورا مهمه ده. د تخنیکي پوهې د تبادلې په پرتله. بنسټیز نوښتونه:

  • د کارګو کڅوړه مدیر د "کارګو ونې" کمانډ مدغم کوي ، کوم چې د ونې په څیر د انحصار ګراف ښیې. همدا رنګه د "— نقلونو" ("کارګو ونې -d") اختیار هم اضافه شوی، کوم چې تاسو ته اجازه درکوي د ورته کڅوړې په مختلفو نسخو کې د انحصار ارزونه وکړئ.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── امونیا v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-که v0.1.9
    │ │ ├── ماک v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── log v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── سيپاسشر v0.2.3
    │ │ │ └── یونیسیس v1.4.2
    │ │ │ [جوړښت-تړاوونه] │ │ │ └── د نسخې_چیک v0.1.5
    ...

  • د هغو غوښتنلیکونو لپاره چې په std ("#![no_std]" پورې تړلي ندي)، د غیر متناسب پروګرام کولو تخنیکونو ملاتړ د "async" فنکشن، د async حرکت {... } بلاک او ". انتظار" آپریټر پراساس پلي کیږي، کوم چې د غیر بلاکینګ هینډلر اصلي کمانډ جریان لیکل ساده کړئ.
  • د پراخیدونکي ماډل درجه بندي تعریف سکیم لپاره ملاتړ پارسر ته اضافه شوی. د مثال په توګه، د "foo/bar/baz.rs" ماډل ریښتیني نشتوالي سره سره، لاندې جوړښت به کومه تېروتنه ونه کړي (جوړښت لاهم په سیمینټ ډول غلط دی او ممکن د تېروتنې لامل شي، مګر بدلونونه لیدل کیدی شي او تجزیه شي. د میکرو او مشروط تالیف کچه):

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

  • د rustc کمپیلر په زیاتیدونکي حالت کې د "-C codegen-units" بیرغ کارولو وړتیا اضافه کړې. د catch_unwind پلي کول بیا کار شوی ترڅو دا د فعالیت اغیزه ونلري که چیرې د خلاصیدو پروسه غیر فعاله وي او هیڅ استثنا نه وي.
  • د aarch64-unknown-none، aarch64-unknown-none-softfloat، arm64-apple-tvos او x86_64-apple-tvos پلیټ فارمونو لپاره د XNUMX کچې ملاتړ چمتو شوی. په دریمه کچه کې بنسټیز ملاتړ شامل دی، مګر د اتوماتیک ازموینې او د رسمي ودانیو خپرولو پرته.
  • د APIs نوې برخه باثباته کټګورۍ ته لیږدول شوې، په شمول ثبات
    PathBuf :: with_capacity,
    PathBuf:: ظرفیت،
    PathBuf :: روښانه،
    PathBuf::ریزرو،
    PathBuf :: reserve_exact,
    PathBuf:: shrink_to_fit،
    {f32|f64}::to_int_uncheck شوی،
    ترتیب:: align_to,
    ترتیب::pad_to_align,
    ترتیب:: صف او
    ترتیب:: پراخول.
  • د معیاري کتابتون پراخې دندې:
    • یو ځانګړی "vec![]" ډول اضافه شوی چې په مستقیم ډول په Vec::new() کې منعکس شوی، اجازه ورکوي چې "vec![]" د ثابتو پر ځای په شرایطو کې وکارول شي.
    • د بدلولو لپاره د خاصیت تطبیق (impl) اضافه شوی:: Infallible هاش.
    • OsString سمارټ ټکي پلي کوي DerefMut и IndexMutد "&mut OsStr" بیرته راګرځي.
    • د یونیکوډ 13 لپاره ملاتړ اضافه شوی.
    • په سټینګ کې تطبیق شوی له<&mut str> څخه.
    • IoSlice دا ځانګړتیا پلي کوي کاپي.
    • Vec له <[T; ن]>.
    • proc_macro::LexError fmt:: ښودنه او تېروتنه پلي کوي.
  • د "const" خاصیت، کوم چې دا مشخص کوي چې ایا دا د ثابتو پر ځای په کوم شرایطو کې کارول کیدی شي، په from_le_bytes، to_le_bytes، from_be_bytes، to_be_bytes، from_ne_bytes او to_ne_bytes میتودونو کې د ټولو عدد ډولونو لپاره کارول کیږي.
  • په وینډوز کې د GNU پلیټ فارمونو لپاره د ".lib" پرځای په ".a" شکل کې د جامد کتابتونونو رامینځته کولو لپاره ملاتړ اضافه شوی.
  • د LLVM لپاره لږترلږه اړتیاوې د LLVM نسخه 8 ته پورته شوي.

سرچینه: opennet.ru

Add a comment