Dimittis programmandi linguae Rust 2021 (1.56)

Emissio systematis programmandi linguae Rust 1.56, a Mozilla projecto condita, nunc sub auspiciis organizationis Rust Fundationis independentis non lucri, divulgatum est. Praeter numerum versionis regularem, emissio etiam Rust 2021 designata est ac stabilizatio mutationum notarum per triennium propositae. Rubigo 2021 etiam fundamentum erit augendae functionis in proximo triennio, simile illi quomodo emissio Rust 2018 fundamentum factus est progressionis linguae praeteritis tribus annis.

Ad compatibilitatem retinendam, tincidunt titulus "2015", "2018" et "2021" in suis programmatibus uti possunt, permittens programmata coniungi cum pecias status linguae correspondentes delectis editionibus Rust. Editiones ad separandas incompatibiles mutationes introductae sunt et in metadata sarcinarum sarcinarum configurantur per "editionem" agri in sectione "[pagina]". Exempli gratia, editio "2018" functionem confirmatam sicut in fine anni 2018 includit et omnes insuper mutationes comprehendit quae convenientiam non frangunt. Editio 2021 insuper includit lineamenta interoperabilitatis-fractionis proposita in currenti 1.56 emissione et ad exsecutionem futurae approbatae. Praeter ipsam linguam, editores rationem habent status instrumentorum et documentorum.

Maiores incompatibilitates memorantur in Rust 2021 ;

  • Separare Capturam in Closures - Closures nunc singula nomina campi capere possunt loco totius identifiantis. exempli gratia' || securim + 1" modo capiet "securem" pro "pro".
  • The IntoIterator trait for arrays: array.into_iter() permittit vos iterari per elementa ordinata per valores, magis quam per references.
  • Processus verborum "|" in macro_rules mutatus est (Boolean OR) in exemplaria - The ":pat" speciem in par nunc respectus "A | B".
  • Procurator sarcinarum mercium includit per defaltam secundam versionem resolutoris plumarii, subsidium quod in Rust 1.51 apparuit.
  • TryFrom, TryInto and FromIterator notae additae sunt ad praeludium normae bibliothecae moduli.
  • Terrorem!(..) et asserunt!
  • Voces "identis", "identis" et "identis" in syntaxi linguae reservantur.
  • Mota sunt bare_objecta et ellipsis_inclusive_patterns admonitiones ad errores.

Novae in Rust 1.56;

  • In Cargo.toml, in sectione "[pagina]", agri versionis aeruginis addita est, per quam minimum firmatam versionem Rust pro sarcina cistam determinare potes. Si versio hodierna non congruit modulo determinato, Cargo cum errore nuntio cessabit.
  • Cum forma adaptatio expressionum "bingendi @ exemplaris" utens, subsidium praebetur ad ligamenta additamenta specificanda (exempli gratia, "matrix @matrix {row_len, ..} = get_matrix();").
  • Nova portio API in categoriis stabilis mota est, additis methodis et notarum exsecutionibus confirmatae sunt:
    • std ::os ::unix ::fs ::chroot
    • UnsafeCell :: raw_get
    • BufWriter :: into_parts
    • core::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec :: shrink_to
    • Filum :: shrink_to
    • OsString :: Shrink_to
    • PathBuf :: shrink_to
    • BinaryHeap :: shrink_to
    • VecDeque ::shrink_to
    • HashMap :: shrink_to
    • HashSet :: shrink_to
  • Attributum "const", quod determinat facultatem utendi in quovis contextu pro constantibus, in functionibus adhibetur
    • std :: mem :: transmutare
    • [T]:: primum
    • [T]:: split_first
    • [T]::last
    • [T]:: split_last
  • Compilator switched ad LLVM versionem 13 utendam.
  • Secundus gradus subsidii ad suggestum aarch64-mup-ios-sim ac tertium gradum ad suggesta powerpc ignotis-freebsd et riscv32imc-esp-espidf adlevata est. Tertius gradus fundamentalis subsidii implicat, sed sine probatione automated, officialium aedificationum evulgandarum, vel iniecta an codici aedificari possit.

Recole quod Rust ad salutem memoriae tendit, administrationem automaticam memoriam praebet et medium praebet ut altas parallelismus in executione operis efficiat sine purgamento collectoris vel runtime (runtime ad fundamentalem initializationem et sustentationem bibliothecae vexillum redactus).

Rubigo latae memoriae administratio errores excludit cum abusionibus indicibusque et quaestionibus ab humili gradu memoriae manipulationis ortis protegit, ut accessu memoriae regionis, postquam liberata est, nullum indicium dereferences, quiddam eliminatum, etc. Bibliothecas distribuere, conventum curare ac clientelas regere, consilium sarcina oneraria administrare. Crates.io repositorium ad bibliothecas hospites sustentatur.

Source: opennet.ru