Rust 1.43 бағдарламалау тілі шығарылымы

жарияланды жүйелік бағдарламалау тілінің шығарылымы Тот 1.43, Mozilla жобасымен құрылған. Бұл тіл жад қауіпсіздігіне назар аударады, жадты автоматты басқаруды қамтамасыз етеді және қоқыс жинағышты және жұмыс уақыты.

Rust жадты автоматты басқаруы әзірлеушіні көрсеткішті манипуляциялаудан босатады және бос жадқа қол жеткізу, нөлдік көрсеткіш сілтемелері, буфердің асып кетуі және т.б. сияқты төмен деңгейлі жад манипуляциясынан туындайтын мәселелерден қорғайды. Кітапханаларды тарату, құрастыруды қамтамасыз ету және жоба бойынша тәуелділіктерді басқару үшін пакет менеджері әзірленуде. жүк, бағдарламаға қажетті кітапханаларды бір рет басу арқылы алуға мүмкіндік береді. Хост кітапханалары үшін репозиторийге қолдау көрсетіледі crates.io.

басты инновациялар:

  • Макростар элементтердің фрагменттерін белгілерге (сипатқа), іске асыруға (impl) немесе сыртқы блоктарға арналған кодқа айналдыру үшін пайдалану мүмкіндігін қамтамасыз етеді. Мысалы:

    макро_ережелер! mac_trait {
    ($i:item) => {
    қасиет T { $i }
    }
    }
    mac_trait! {
    fn foo() {}
    }

    Ұрпаққа әкеледі:

    қасиет T {
    fn foo() {}
    }

  • Примитивтердің, сілтемелердің және екілік операциялардың түрін анықтау жақсартылған.
    Мысалы, бұрын қате тудырған келесі код енді құрастыра алады (Rust енді 0.0 және &0.0 мәндерінің f32 типті болуы керектігін дұрыс анықтайды):

    n болсын: f32 = 0.0 + &0.0;

  • CARGO_BIN_EXE_{name} жаңа орта айнымалысы Cargo жүйесіне қосылды, ол интеграциялық сынақтарды құру кезінде орнатылады және буманың «[[bin]]» бөлімінде анықталған орындалатын файлдың толық жолын анықтауға мүмкіндік береді.
  • Егер мәлімдемелерге "#[cfg()]" сияқты атрибуттарды пайдалануға рұқсат етілсе.
  • Кітапхана модульді импорттамастан тікелей бүтін және бөлшек түрлері үшін байланысты константаларды пайдалану мүмкіндігін қамтамасыз етеді. Мысалы, алдымен “use std::u32” және “us std::f32” көрсетпей u32::MAX немесе f32::NAN жазуға болады.
  • Жаңа модуль қосылды қарапайым, ол Rust қарапайым түрлерін қайта экспорттайды, мысалы, макрос жазу және түрлердің жасырын емес екеніне көз жеткізу қажет болғанда.
  • API интерфейстерінің жаңа бөлігі тұрақты санатқа, соның ішінде тұрақтандырылған санатқа ауыстырылды

    Бір рет ::аяқталған,
    f32::LOG10_2,
    f32::LOG2_10,
    f64::LOG10_2,
    f64::LOG2_10 және
    iter::one_with.

Ақпарат көзі: opennet.ru

пікір қалдыру