
Rust 1.99.1 ուղղում է րեգրեսիաները wcslen կապակցման ժամանակ, FFI bool վերադարձում և rust-lld-ում macOS-ում
Rust 1.99.1-ը թողարկում է երեք րեգրեսիա ուղղելով՝ wcslen-ի ֆոլբեքը կապակցման ժամանակ, x86_64-ում FFI bool-ի վերադարձը և macOS-ում rust-lld-ի libLLVM բեռնումը համակարգում:
Ինչ է ուղղում Rust 1.99.1-ը
Rust-ի թիմը հրապարակել է Rust 1.99.1-ը որպես նոր կետային թողարկում: Թողարկումը ուղղում է նախորդ տարբերակներից հայտնի երեք րեգրեսիան, այդ թվում խնդիրները, որոնք ազդել են UEFI նպատակների, x86_64-ի FFI կոդի և macOS-ի կապակցման կազմաձևումների վրա:
Որոշ Rust նպատակներով նախագծերում կապակցման սխալներ կարող էին առաջանալ կորած wcslen սիմվոլի պատճառով: Ֆունկցիան այժմ ներկայացված է Rust-ի compiler-builtins գրադարանում որպես ֆոլբեք: Խնդիրը առաջացել է այն պատճառով, որ LLVM-ի loop-idiom-wcslen անցումը կարող է օպտիմիզացման ժամանակ ներմուծել wcslen կանչեր, իսկ որոշ նպատակների համար այս ֆունկցիան ոչ libc-ում և այլուր էլ հասանելի չի եղել: Մասնավորապես, UEFI նպատակները կոտրված էին ցանկացած նախագծի համար, որն օգտագործում էր std, քանի որ որոշ այդ կանչերից նախապես կոմպիլյացված ստանդարտ գրադարան էր ներմուծվել, նման կողմից օգտագործողի կոդի օրինակները նույնպես կարող էին հանդիպել նույն խնդրին:
Վերադարձվող արժեքներ և կապակցիչի բեռնում
Rust-ի ֆունկցիաները, որոնք FFI-ի միջոցով վերադարձնում են bool, կարող էին թողնել վերադարձման ռեգիստրի 1-ից 7 բիթերը անսահմանափակ չսահմանափակված, ինչը նշանակում էր, որ կանչողները կարող էին դիտել 0 կամ 1 բացի այլ վատ արժեքներ: Վերադարձի տեսակը այժմ կրկին նշված է զրոյով ընդլայնման համապատասխան, ինչպես պահանջում է ABI:
Առանձին, rust-lld-ն չէր կարող գործարկվել macOS-ում, երբ կոմպիլյատորը կանչվում էր առանց rustup-ի պրոքսիի, քանի որ համապատասխան գրադարանի որոնման ուղղի համապատասխան ուղիղ պարամետր գոյություն չուներ: Rust 1.99.1-ը այժմ կառուցում է rust-lld-ն rpath գրառմամբ libLLVM.dylib պարունակող դիրեկտորիայի համար:
Ինչպես թարմացնել և փորձարկել
Օգտագործողները, ովքեր նախորդ տարբերակը տեղադրել են rustup-ով, կարող են անցնել 1.99.1-ին rustup update stable-ով: Օգտագործողները, ովքեր չունեն rustup, կարող են ստանալ այն Rust-ի կայքի համապատասխան էջից: Rust-ի թողարկման թիմը նաև կոչ է արել մարդկանց փորձել ապագա թողարկումները beta և nightly ալիքներով տեղականորեն և CI-ում, ինչպես նաև հաղորդել ցանկացած հայտնաբերված սխալի մասին: Թիմը շնորհակալություն է հայտնել բոլորին, ովքեր ներդրում են ունեցել 1.99.1-ում, և ասել, որ առանց նրանց թողարկումը անհնար կլիներ:
Աղբյուրներ: Lobsters
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։