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

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

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

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

  • Дар compiler rustc таъмин карда шудааст дастгирии оптимизатсия дар асоси натиҷаҳои профилсозии код (PGO, Optimization Profile-Guided),
    ба шумо имкон медиҳад, ки дар асоси таҳлили омори ҳангоми иҷрои барнома ҷамъшуда коди оптималӣ тавлид кунед. Барои тавлиди профил, парчами "-C profile-generate" пешбинӣ шудааст ва барои истифодаи профил ҳангоми васлкунӣ - "-C profile-use" (аввал, барнома бо парчами аввал ҷамъ карда мешавад, дар гирду атроф давр мезанад ва пас аз эҷод кардан. профил, он бо байраки дуюм аз нав васл карда мешавад);

  • Ҳангоми иҷро кардани фармони "боркашӣ", ки барои зуд санҷиши барномаҳои консолӣ истифода бурдан қулай аст, қобилияти ба таври худкор интихоб кардани файли иҷрошаванда барои иҷро илова карда шудааст, агар дар баста якчанд файлҳои иҷрошаванда мавҷуд бошанд. Файли пешфарз, ки бояд иҷро шавад, тавассути директиваи пешфарз-иҷрошуда дар қисмати [packet] бо параметрҳои баста муайян карда мешавад, ки ба шумо имкон медиҳад, ки ҳар дафъа ҳангоми иҷро кардани "cargo run" аз нишон додани номи файл тавассути парчами "-bin" худдорӣ намоед;
  • Фармони "фурӯшандаи бор", ки қаблан ҳамчун бастаи алоҳида. Фармон ба шумо имкон медиҳад, ки корро бо нусхаи локалии вобастагӣ ташкил кунед - пас аз иҷрои "фурӯшандаи бор", ҳама рамзҳои сарчашмаҳои вобастагии лоиҳа аз crates.io ба феҳристи маҳаллӣ зеркашӣ карда мешаванд, ки баъдан онро барои кор бидуни дастрасӣ ба қуттиҳо истифода бурдан мумкин аст. io (пас аз иҷрои фармон, маслиҳат оид ба тағир додани конфигуратсия барои истифодаи директория барои сохтмон нишон дода мешавад). Ин хусусият аллакай барои ташкили интиқоли компилятори rustc бо бастабандии ҳама вобастагӣ дар як бойгонӣ бо нашр истифода мешавад;
  • Ҳоло имконпазир аст, ки истинодҳоро ба имконоти рақамӣ бо истифода аз тахаллуси навъи (масалан, дар бадани функсияи “fn increment_or_zero(x: ByteOption) шумо метавонед “ByteOption::None => 0” таъин кунед), намуди конструксияҳои ҳисобкуниро (‹ MyType‹.. ››::option => N) ё худ дастрасӣ (дар блокҳои c &self шумо метавонед "Self::Quarter => 25" -ро муайян кунед);
  • Қобилияти эҷоди константаҳои беном дар макросҳо илова карда шуд. Ба ҷои муайян кардани номи элемент дар "const" шумо акнун метавонед аломати "_"-ро барои интихоби динамикӣ истифода баред, идентификатори такрорнашавандаро пешгирӣ кунед ва ҳангоми занг задан ба макрос аз ихтилофи номҳо канорагирӣ кунед;
  • Имконияти истифодаи атрибути "#[repr(align(N))" бо рақамҳо бо истифода аз синтаксиси шабеҳ ба таърифи сохтори AlignN‹T› бо ҳамоҳангсозӣ ва сипас бо истифода аз AlignN‹MyEnum› илова карда шуд;
  • Қисми нави API ба категорияи устувор кӯчонида шуд, аз ҷумла BufReader::buffer, BufWriter::buffer, ва
    Ҳуҷайра ::from_mut,
    Ҳуҷайра::ҳамчун буридаи_ҳуҷайраҳо,
    DoubleEndedIterator ::nth_back,
    Варианти::xor
    {i,u}{8,16,64,128,size}::reverse_bits, Wrapping::reverse_bits ва
    slice::copy_thin.

Илова бар ин, метавон қайд кард оғози санҷиш лоиҳа Async-std, ки варианти асинхронии китобхонаи стандартии Rust-ро пешниҳод мекунад (бандари китобхонаи std, ки дар он ҳама интерфейсҳо дар версияи асинкӣ пешниҳод карда мешаванд ва барои истифода бо синтаксиси асинхронӣ/интизорӣ омодаанд).

Манбаъ: opennet.ru

Илова Эзоҳ