
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-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.