Harshen shirye-shiryen tsatsa 1.34

ya faru sakin harshe na tsarin shirye-shirye Kishiya 1.34, wanda aikin Mozilla ya haɓaka. Harshen yana mai da hankali kan amincin ƙwaƙwalwar ajiya, yana ba da sarrafa ƙwaƙwalwar ajiya ta atomatik, kuma yana ba da hanya don cimma babban aiki daidai gwargwado ba tare da amfani da mai tara shara ko lokacin aiki ba.

Gudanar da ƙwaƙwalwar ajiya ta atomatik na Rust yana 'yantar da mai haɓakawa daga magudin nuni kuma yana ba da kariya daga matsalolin da suka taso daga ƙananan ma'aunin ƙwaƙwalwar ajiya, kamar damar shiga ƙwaƙwalwar ajiya bayan kyauta, ɓangarorin null pointer, buffer overruns, da makamantansu. Ana haɓaka mai sarrafa fakiti don rarraba ɗakunan karatu, tabbatar da taro da sarrafa abubuwan dogaro ta hanyar aikin. ofishin, ba ku damar samun ɗakunan karatu da ake buƙata don shirin a dannawa ɗaya. Ana tallafawa wurin ajiya don ɗaukar ɗakunan karatu akwati.io.

Main sababbin abubuwa:

  • Manajan fakitin Cargo ya kara kayan aiki don yin aiki tare da madadin rajistar fakitin da za su iya zama tare da rajistar jama'a na crates.io. Misali, masu haɓaka aikace-aikacen mallakar mallaka yanzu za su iya amfani da nasu rajistar masu zaman kansu, waɗanda za a iya amfani da su lokacin da ake jera abubuwan dogaro a cikin Cargo.toml, kuma su yi amfani da ƙirar siga mai kama da crates.io don samfuran su, da kuma nuna dogaro ga akwatunan biyu. io kuma zuwa wurin yin rajistar ku.

    Don ƙara rajista na waje zuwa .cargo/config (wanda yake cikin $HOME ko a cikin kundin adireshi)
    bayar da sashe “[rejitoci]”, kuma don amfani da wurin yin rajista na waje, zaɓin “rejista” ya bayyana a cikin bayanin kowane abin dogaro a Cargo.toml. Don haɗawa zuwa ƙarin rajista, kawai sanya alamar tabbatarwa a cikin fayil ~/.cargo/credentials kuma gudanar da umarni
    "cargo login --registry=my-registry" da buga kunshin -
    "buga-buga -registry=na-rejista";

  • Ƙara cikakken goyon baya don amfani da afaretan "?" a gwaje-gwaje likitoci, yana ba ku damar amfani da lambar misali daga takardun azaman gwaji. Mai aiki a baya
    "?" za a iya amfani da shi don magance kurakurai yayin aiwatar da gwaji kawai a gaban aikin "fn main()" ko a cikin ayyukan "#[test]";

  • A cikin halayen al'ada da aka ayyana ta amfani da macro na tsari bayar da ikon yin amfani da saɓo na sabani ("#[attr ($ tokens)]", "#[attr[$tokens]] da #[attr{$tokens}]"). A baya can, ana iya ƙayyade abubuwa kawai a cikin bishiya/mai maimaitawa ta amfani da madaidaicin kirtani, misali “#[foo(bar, baz(quux, foo = “bar”))]”, amma yanzu yana yiwuwa a yi amfani da ƙididdiga (' #[kewayon (0. .10)]') da kuma gine-gine kamar "#[ daure (T: MyTrait)]";
  • Nau'ukan daidaitacce (halaye) Gwada Daga и Gwada Shiga, ƙyale nau'in juzu'i tare da sarrafa kuskure. Misali, hanyoyin kamar from_be_bytes tare da nau'ikan integer suna amfani da arrays azaman shigarwa, amma bayanan galibi suna zuwa cikin nau'in Yanki, kuma juyawa tsakanin tsararru da yanka yana da matsala don yin da hannu. Tare da taimakon sababbin halaye, ana iya aiwatar da ƙayyadadden aikin akan tashi ta hanyar kira zuwa .try_into (), misali, "let num = u32 :: from_be_bytes(slice.try_into()?)". Don jujjuyawar da koyaushe ke yin nasara (misali, daga nau'in u8 zuwa u32), an ƙara nau'in kuskure Ba wanda zai iya canzawa ba, kyale m amfani
    GwadaDaga duk abubuwan aiwatarwa na "Daga";

  • An soke aiki CommandExt :: kafin_exec, wanda ya ba da damar aiwatar da mai sarrafa kafin aiwatar da aiwatarwa, wanda aka aiwatar a cikin mahallin tsarin yaro da aka soke bayan kiran cokali mai yatsa (). A ƙarƙashin irin waɗannan yanayi, wasu albarkatun tsarin iyaye, kamar masu bayanin fayil da wuraren ajiyar taswira, za a iya kwafi su, wanda zai iya haifar da halayen da ba a bayyana ba da kuma aikin dakunan karatu ba daidai ba.
    Ana ba da shawarar yin amfani da aikin mara lafiya maimakon kafin_exec CommandExt :: pre_exec.

  • Ingantattun sa hannu da nau'ikan intiger iri-iri waɗanda ba sa hannu a cikin girman daga 8 zuwa 64 (misali, AtomicU8), kazalika da sa hannu iri NonZeroI[8|16|32|64|128].
  • An matsar da wani sabon yanki na API zuwa tsayayyen nau'i, gami da Kowane :: type_id, Kuskure :: nau'in_id, yanki :: nau'in_by_cached_key, str :: tserewa_*, str :: split_ascii_whitespace, Nan take :: checked_[ƙara|sub. ] kuma an daidaita hanyoyin SystemTime :: checked_[ƙara|sub]. An daidaita ayyukan iter :: daga_fn da iter :: masu nasara;
  • Ga kowane nau'in lamba, ana aiwatar da checked_pow, saturating_pow, wrapping_pow da hanyoyin zubar da ruwa;
  • Ƙara ikon don ba da damar ingantawa a matakin haɗin kai ta hanyar tantance zaɓin ginawa "-C linker-plugin-lto".

source: budenet.ru

Add a comment