Rust 1.46 Варақаи забони барномасозӣ

нашр шудааст барориши 1.46 забони барномасозии система зангин, аз ҷониби лоиҳаи Mozilla таъсис дода шудааст. Забон ба бехатарии хотира тамаркуз мекунад, идоракунии автоматии хотираро таъмин мекунад ва асбобҳоро барои ноил шудан ба параллелизми вазифаҳои баланд бидуни истифодаи коллектори партовҳо ва runtime.

Идоракунии хотираи автоматии Rust хатогиҳоро ҳангоми коркарди нишондиҳандаҳо бартараф мекунад ва аз мушкилоте, ки аз коркарди хотираи сатҳи паст ба вуҷуд меоянд, ба монанди дастрасӣ ба минтақаи хотира пас аз озод шудани он, истинодҳои нули нишоннамо, изофаи буфер ва ғайра муҳофизат мекунад. Менеҷери бастаҳо барои паҳн кардани китобхонаҳо, таъмини ҷамъбаст ва идоракунии вобастагӣ аз ҷониби лоиҳа таҳия карда мешавад. бор, ба шумо имкон медиҳад, ки китобхонаҳои барои барнома лозимиро бо як клик дастрас кунед. Барои китобхонаҳои мизбон як анбор дастгирӣ карда мешавад crates.io.

асосӣ навовариҳо:

  • Имкониятҳои функсияҳое, ки бо ифодаи “const fn” муайян шудаанд, васеъ карда шудаанд, ки онҳоро на танҳо ҳамчун функсияҳои муқаррарӣ номидан мумкин аст, балки дар ҳама гуна контекст ба ҷои константаҳо низ истифода мешавад. Ин функсияҳо дар вақти тартибдиҳӣ ҳисоб карда мешаванд, на дар вақти иҷро, аз ин рӯ онҳо таҳти маҳдудиятҳои муайян қарор доранд, ба монанди қобилияти хондан танҳо аз доимӣ.

    Нашри нав мамнӯъияти истифодаи операторҳои мантиқиро (“&&” ва “||”) дар чунин функсияҳоро аз байн мебарад ва имкон медиҳад, ки конструксияҳои “агар”, “агар бигзор”, “мувофиқ”,
    "while", "while let" ва "loop" ва инчунин қобилияти табдил додан ба буридаҳо (бурида, массивҳои динамикӣ) бо истифода аз ифодаи "&[T]" -ро фароҳам меорад. Истифодаи ин хусусиятҳо дар функсияҳои "const fn" ба шумо имкон медиҳад, ки баъзе амалиёти захираҳои серталабро ба марҳилаи тартибдиҳӣ гузаронед. Масалан, татбиқи "const-sha1" имкон медиҳад, ки хэшҳои SHA-1 дар вақти компиляция ҳисоб карда шаванд, ки ин боиси суръат бахшидан ба пайвастшавии WinRT барои Rust тақрибан 40 маротиба мегардад.

  • Барои иттилоотии бештари паёмҳои хатогӣ, дастгирии атрибути "#[track_caller]" устувор карда шудааст, ки барои функсияҳо ба монанди кушодан муфид аст, ки дар сурати нодуруст истифода бурдани навъҳо метавонад боиси воҳима шавад. Аттрибути муайяншуда аз ҷониби коркардкунандаи ваҳм барои чоп кардани макони зангзананда дар паёми хато истифода мешавад.
  • Дар усули std::mem::forget атрибути "const", ки имкони истифодаи онро дар ҳама гуна контекст ба ҷои доимӣ муайян мекунад, истифода мешавад.
  • Қисми нави API ба категорияи устувор гузаронида шуд, аз ҷумла Опсияи устуворшуда::zip ва vec::Drain::as_slice.
  • Дар мудири бастаи боркаш илова кард дастгирии тағирёбандаҳои нави муҳити зист ҳангоми тартиб додани баста: CARGO_BIN_NAME (номи файли иҷрошавандаи натиҷа), CARGO_CRATE_NAME (номи баста), CARGO_PKG_LICENSE (литсензия дар манифест нишон дода шудааст), CARGO_PKG_LICENSE_FILE (роҳ ба файли иҷозатнома).

Манбаъ: opennet.ru

Илова Эзоҳ