ipata 1.37 Siseto ede Tu

atejade itusilẹ ede siseto eto Ipata 1.37, ti a da nipasẹ iṣẹ akanṣe Mozilla. Ede naa dojukọ aabo iranti, pese iṣakoso iranti aifọwọyi, ati pese ọna lati ṣaṣeyọri isọdọmọ iṣẹ-giga laisi lilo agbasọ idoti tabi akoko asiko.

Iṣakoso iranti aifọwọyi ti Rust n ṣe ominira oluṣe idagbasoke lati ifọwọyi ijuboluwole ati aabo lodi si awọn iṣoro ti o dide lati ifọwọyi iranti ipele-kekere, gẹgẹbi awọn iraye si iranti ọfẹ lẹhin, awọn ifisilẹ ijuboluwole asan, awọn agbekọja buffer, ati bii bẹẹ. Oluṣakoso package ti wa ni idagbasoke lati kaakiri awọn ile-ikawe, rii daju apejọ ati ṣakoso awọn igbẹkẹle nipasẹ iṣẹ akanṣe naa. laisanwo, gbigba ọ laaye lati gba awọn ile-ikawe ti o nilo fun eto naa ni titẹ kan. Ibi ipamọ jẹ atilẹyin lati gbalejo awọn ile-ikawe crates.io.

akọkọ awọn imotuntun:

  • Ni rustc alakojo pese atilẹyin fun iṣapeye ti o da lori awọn abajade profaili koodu (PGO, Iṣapejuwe-Itọnisọna Profaili),
    gbigba ọ laaye lati ṣe agbejade koodu to dara julọ ti o da lori itupalẹ awọn iṣiro ti a kojọpọ lakoko ipaniyan eto. Lati ṣe agbekalẹ profaili kan, asia “-C profile-generate” ti pese, ati lati lo profaili lakoko apejọ - “-C profile-lilo” (ni ibẹrẹ, eto naa ni apejọ pẹlu asia akọkọ, nṣiṣẹ ni ayika, ati lẹhin ṣiṣẹda profaili, o ti wa ni reassembled pẹlu awọn keji Flag;

  • Nigbati o ba n ṣiṣẹ pipaṣẹ “ṣiṣe ẹru”, eyiti o rọrun lati lo fun idanwo awọn ohun elo console ni iyara, agbara lati yan faili ti o le ṣiṣẹ laifọwọyi ti ṣafikun ti awọn faili ti o le ṣiṣẹ ni package. Faili aiyipada lati ṣiṣẹ ni ipinnu nipasẹ itọsọna aiyipada-ṣiṣe ni apakan [package] pẹlu awọn paramita package, eyiti o fun ọ laaye lati yago fun sisọ orukọ faili ni gbangba nipasẹ asia “-bin” ni gbogbo igba ti o ba ṣiṣẹ “ṣiṣe ẹru”;
  • Aṣẹ “olutaja ẹru”, ti a ti pese tẹlẹ bi lọtọ package. Aṣẹ naa gba ọ laaye lati ṣeto iṣẹ pẹlu ẹda agbegbe ti awọn igbẹkẹle - lẹhin ṣiṣe “olutaja ẹru”, gbogbo awọn koodu orisun ti awọn igbẹkẹle iṣẹ akanṣe naa ni igbasilẹ lati crates.io si itọsọna agbegbe, eyiti o le ṣee lo fun iṣẹ laisi wiwọle si awọn apoti. io (lẹhin ṣiṣe pipaṣẹ, ofiri fun iyipada iṣeto ni a fihan lati lo itọsọna fun awọn kikọ). Ẹya yii ti lo tẹlẹ lati ṣeto ifijiṣẹ ti olupilẹṣẹ rustc pẹlu apoti ti gbogbo awọn igbẹkẹle ninu ile-ipamọ kan pẹlu itusilẹ;
  • O ṣee ṣe ni bayi lati ṣẹda awọn ọna asopọ si awọn aṣayan enum nipa lilo awọn inagijẹ iru (fun apẹẹrẹ, ninu ara iṣẹ naa “fn increment_or_zero(x: ByteOption) o le pato “ByteOption :: Kò => 0”), iru awọn itumọ ti iṣiro (‹‹ MyType‹.. › :: aṣayan => N) tabi awọn iraye si ti ara ẹni (ninu awọn bulọọki c &self o le pato "Self :: Quarter => 25");
  • Ṣafikun agbara lati ṣẹda awọn ibakan ti a ko darukọ ni awọn macros. Dipo ti asọye orukọ ano ni "const", o le lo ohun kikọ "_" bayi lati yan idanimọ ti kii ṣe atunwi, yago fun awọn ikọlu orukọ nigbati o pe Makiro lẹẹkansi;
  • Ṣafikun agbara lati lo “#[repr(align(N))) abuda pẹlu awọn enums ni lilo sintasi kan ti o jọra si asọye ẹya AlignN‹T› pẹlu titete ati lẹhinna lilo AlignN‹MyEnum›;
  • Apa tuntun ti API ni a ti gbe lọ si ẹka iduro, pẹlu BufReader :: saarin, BufWriter :: saarin, ati
    Ẹyin: lati_mut,
    Ẹyin: bi_pipẹ_awọn sẹẹli,
    DoubleEndedIterator :: nth_pada,
    Aṣayan :: xor
    {i,u}{8,16,64,128,size}::reverse_bits, Wípa:: yiyipada_bits ati
    bibẹ :: daakọ_innu.

Ni afikun, o le ṣe akiyesi ibere igbeyewo ise agbese Async-std, eyiti o funni ni iyatọ asynchronous ti ile-ikawe boṣewa Rust (ibudo kan ti ile-ikawe std, ninu eyiti gbogbo awọn atọkun ti funni ni ẹya async ati pe o ti ṣetan fun lilo pẹlu async / duro sintasi).

orisun: opennet.ru

Fi ọrọìwòye kun