نکات اختیاری به کد منبع اجازه میدهد حتی زمانی که توسط همه کامپایلرها پشتیبانی نمیشوند، عیبیابی را ارائه دهد.
Rust 1.78 که بهتازگی بهعنوان آخرین نسخه زبان برنامهنویسی پرطرفدار و ایمن برای حافظه منتشر شد، برای تأثیرگذاری بر پیامهای کامپایلر، پشتیبان فضای نام ویژگی #[diagnostic]
اضافه میکند. .
تیم Rust گفت: این پیامها به عنوان نکاتی در نظر گرفته میشوند که کامپایلر نیازی به استفاده از آن ندارد. همچنین ارائه تشخیصی که کامپایلر آن را تشخیص ندهد، خطا نیست. این ویژگی به گونهای طراحی شده است که به کد منبع اجازه میدهد حتی زمانی که توسط همه کامپایلرها پشتیبانی نمیشوند، عیبیابی را ارائه دهد.
۲ می اعلام شد، Rust 1.78 می توان از طریق rustup
:
نصب کرد
$ rustup بهروزرسانی پایدار است
یکی دیگر از ویژگیهای Rust 1.78 مربوط به بیان پیششرطهای ناامن
است. کتابخانه استاندارد Rust دارای تعدادی ادعا برای پیششرطهای توابع ناامن
است، اما از نظر تاریخی آنها فقط در ساختهای #[cfg(debug_assertions)]
از کتابخانه فعال شدهاند تا از آن جلوگیری شود. موثر بر عملکرد انتشار از آنجایی که کتابخانه معمولاً در حالت انتشار جمعآوری و توزیع میشود، اکثر توسعهدهندگان Rust این بررسیها را اجرا نمیکردند.
در Rust 1.78، شرط این ادعاها تا تولید کد به تعویق میافتد، بنابراین بسته به تنظیمات کاربر برای اظهارات اشکالزدایی، که به طور پیشفرض در اشکالزدایی و ساختهای آزمایشی فعال است، بررسی میشوند. تیم Rust گفت: این تغییر به شناسایی رفتارهای تعریف نشده در کد کمک می کند. با این حال، جزئیات مربوط به میزان بررسی معمولاً ثابت نیست.
تراز مجدد قطعی نیز در Rust 1.78 نشان داده شده است. کتابخانه استاندارد دارای عملکردهایی است که چینش نشانگرها و برش ها را تغییر می دهد، اما قبلاً اخطارهایی داشتند که تکیه بر آنها را در عمل دشوار می کرد. این اخطارها بیشتر به عنوان پوششی در برابر ارزیابی const
وجود داشتند، اما آنها فقط برای استفاده غیرconst
پایدار بودند. اکنون، به آنها قول داده شده است که مطابق با ورودی های واقعی رفتار زمان اجرا ثابتی داشته باشند.
Rust 1.78 همچنین تعدادی از APIها را تثبیت می کند، حداقل نیاز خود را به ویندوز ۱۰ برای اهدافی مانند x_86-pc-windows-msvc
افزایش می دهد و LLVM همراه خود را به LLVM 18 ارتقا می دهد.
>
Rust 1.78 پس از انتشار در ۲۱ مارس Rust 1.77 است که از C-string literals پشتیبانی میکرد. دو نسخه بعدی نیز منتشر شد، Rust 1.77.1< /a>، که رفتار Cargo جدید را در ویندوز برای اهدافی که از MSVC استفاده میکنند (Microsoft C و C++) غیرفعال میکند، و Rust 1.77.2، که شامل رفع آسیبپذیری بود.
پست های مرتبط
Rust فضای نام ویژگی تشخیصی را برای پیام های کامپایلر اضافه می کند
Rust فضای نام ویژگی تشخیصی را برای پیام های کامپایلر اضافه می کند
Rust فضای نام ویژگی تشخیصی را برای پیام های کامپایلر اضافه می کند