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

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

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

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

  • «const fn» өрнегі арқылы анықталған функциялардың мүмкіндіктері кеңейтілді, оларды тек тұрақты функциялар ретінде ғана емес, сонымен қатар тұрақты мәндердің орнына кез келген контексте қолдануға болады. Бұл функциялар орындау уақытында емес, компиляция уақытында есептеледі, сондықтан олар тек тұрақты мәндерден оқу мүмкіндігі сияқты белгілі бір шектеулерге ұшырайды.

    Жаңа шығарылым логикалық операторларды («&&» және «||») мұндай функцияларда пайдалануға тыйымды алып тастайды және «if», «if let», «match» конструкцияларын пайдалануға мүмкіндік береді,
    «while», «while let» және «loop», сонымен қатар «&[T]» өрнегі арқылы кесінділерге (кесінді, динамикалық массивтер) түрлендіру мүмкіндігін береді. Бұл мүмкіндіктерді «const fn» функцияларында пайдалану кейбір ресурстарды қажет ететін операцияларды жинақтау кезеңіне жылжытуға мүмкіндік береді. Мысалы, «const-sha1» іске асырылуы SHA-1 хэштерін компиляция уақытында есептеуге мүмкіндік береді, бұл Rust үшін WinRT байланыстыруын 40 есе дерлік жылдамдатуға әкеледі.

  • Қате туралы хабарларды көбірек ақпараттандыру үшін, түрлер дұрыс пайдаланылмаса, дүрбелең тудыруы мүмкін ашу сияқты функциялар үшін пайдалы «#[track_caler]» төлсипатын қолдау тұрақтандырылды. Көрсетілген атрибутты дүрбелең өңдеушісі қате туралы хабарда қоңырау шалушының орнын басып шығару үшін пайдаланады.
  • Оны тұрақты мәндердің орнына кез келген контексте пайдалану мүмкіндігін анықтайтын «const» атрибуты std::mem::forget әдісінде қолданылады.
  • API жаңа бөлігі тұрақталған Опция::zip және vec::Drain::as_slice қоса алғанда, тұрақты санатқа жылжытылды.
  • Жүкті пакет менеджерінде қосылды пакетті құрастыру кезінде орнатылған жаңа орта айнымалыларына қолдау көрсету: CARGO_BIN_NAME (нәтижеде орындалатын файлдың атауы), CARGO_CRATE_NAME (бума атауы), CARGO_PKG_LICENSE (манифестте көрсетілген лицензия), CARGO_PKG_LICENSE_FILE (лицензия файлына жол).

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

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