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

Mozilla жобасы негізін қалаған, бірақ қазір Rust Foundation тәуелсіз коммерциялық емес ұйымының қолдауымен әзірленген Rust 1.69 жалпы мақсаттағы бағдарламалау тілінің шығарылымы жарияланды. Тіл жад қауіпсіздігіне назар аударады және қоқыс жинаушы мен жұмыс уақытын пайдалануды болдырмай, жоғары жұмыс параллелизміне қол жеткізу құралдарын қамтамасыз етеді (орындау уақыты стандартты кітапхананың негізгі инициализациясы мен қызмет көрсетуіне дейін қысқарады).

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

Жадтың қауіпсіздігі Rust бағдарламасында компиляция уақытында анықтамалық тексеру, объект иеленуін қадағалау, объектінің қызмет ету мерзімін (аумақтарын) қадағалау және кодты орындау кезінде жадқа қол жеткізудің дұрыстығын бағалау арқылы қамтамасыз етіледі. Rust сонымен қатар бүтін сандардың толып кетуінен қорғауды қамтамасыз етеді, пайдалану алдында айнымалы мәндерді міндетті түрде инициализациялауды талап етеді, стандартты кітапханада қателерді жақсы өңдейді, әдепкі бойынша өзгермейтін сілтемелер мен айнымалылар тұжырымдамасын қолданады, логикалық қателерді азайту үшін күшті статикалық теруді ұсынады.

Негізгі инновациялар:

  • Жүк пакетінің менеджері автоматты түрде шешілетін ескертулерді анықтауды және "жүкті түзету" немесе "жүк клипі --fix" іске қосу үшін сәйкес ұсыныстарды жүзеге асырады. ескерту: пайдаланылмаған импорт: 'std::hash::Hash' --> src/main.rs:1:5 | 1 | std::hash::hash пайдаланыңыз; | ^^^^^^^^^^^^^^^ | = ескертпе: '#[warn(unused_imports)]' әдепкі бойынша қосулы ескерту: 'foo' (bin "foo") 1 ескерту жасады (1 ұсынысты қолдану үшін "cargo fix --bin "foo"" іске қосыңыз)
  • «Жүкті орнату» пәрменімен кітапхананы орнату әрекеті кезінде «жүк қосу» пәрменін пайдалану ұсынысын көрсету үшін Жүк қосылды.
  • Компиляция уақытын қысқарту үшін құрастыру сценарийлеріндегі ақпаратты жөндеу әдепкі бойынша өшірілген. Құрастыру сценарийлері сәтті іске қосылса, өзгерту ешқандай көрінетін айырмашылықты жасамайды, бірақ ол сәтсіз болса, кері көшірме демпінде аз ақпарат болады. Ескі әрекетті Cargo.toml-ге қайтару үшін мынаны қосыңыз: [profile.dev.build-override] отлад = ақиқат [profile.release.build-override] жөндеу = шын
  • API жаңа бөлігі тұрақты санатқа ауыстырылды, оның ішінде белгілердің әдістері мен іске асырылуы тұрақтандырылды:
    • CStr :: бастап_байттан_нөлге дейін
    • core::ffi::FromBytesUntilNulError
  • Оны тұрақты мәндердің орнына кез келген контексте пайдалану мүмкіндігін анықтайтын "const" атрибуты функцияларда қолданылады:
    • SocketAddr::жаңа
    • SocketAddr::ip
    • SocketAddr::порт
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::жаңа
    • SocketAddrV4::ip
    • SocketAddrV4 :: порт
    • SocketAddrV6::жаңа
    • SocketAddrV6::ip
    • SocketAddrV6 :: порт
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Компилятор дәлелдерінде ақиқат және жалған жалаушаларды пайдалану мүмкіндігі қосылды.

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

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