Rust 1.46 Programming Language Release

gepubliseer vrystelling 1.46 van die stelselprogrammeertaal Rustgestig deur die Mozilla-projek. Die taal fokus op veilige geheuebestuur, verskaf outomatiese geheuebestuur, en verskaf die middele om hoë werkparallelisme te bereik terwyl die gebruik van 'n vullisverwyderaar en runtime.

Rust se outomatiese geheuebestuur red die ontwikkelaar van foute wanneer wysers gemanipuleer word en beskerm teen probleme wat ontstaan ​​as gevolg van laevlakgeheuemanipulasie, soos toegang tot 'n geheuearea nadat dit vrygestel is, herkenning van nulwysers, bufferoorskryding, ens. Om biblioteke te versprei, samestelling te verseker en afhanklikhede te bestuur, ontwikkel die projek 'n pakketbestuurder Cargo, wat jou in staat stel om die biblioteke wat jy nodig het vir die program in een klik te kry. 'n Bewaarplek word ondersteun om biblioteke te huisves kratte.io.

Die belangrikste innovasies:

  • Die moontlikhede van funksies wat met die "const fn"-uitdrukking gedefinieer word, is uitgebrei, wat nie net as gewone funksies genoem kan word nie, maar ook in enige konteks in plaas van konstantes gebruik kan word. Hierdie funksies word tydens samestelling geëvalueer, nie tydens looptyd nie, so hulle is onderhewig aan sekere beperkings, soos om slegs vanaf konstantes te kan lees.

    In die nuwe vrystelling is die verbod op die gebruik van Boole-operateurs ("&&" en "||") in sulke funksies verwyder, die gebruik van die "as", "as laat", "pas",
    "while", "while let" en "loop", sowel as die vermoë om na skywe (sny, dinamiese skikkings) om te skakel deur die uitdrukking "&[T]" te gebruik. Die gebruik van hierdie kenmerke in die "const fn" funksies laat jou toe om sommige hulpbron-intensiewe bewerkings na die samestellingstadium te skuif. Byvoorbeeld, die implementering van "const-sha1" maak dit moontlik om SHA-1 hashes te bereken tydens samestelling tyd, wat lei tot die versnelling van WinRT bindings vir Rust met byna 40 keer.

  • Ondersteuning vir die "#[track_caller]"-kenmerk is gestabiliseer om foutboodskappe meer insiggewend te maak, wat nuttig is vir funksies soos ontvou wat nie paniekerig kan vermy wanneer tipes verkeerd gebruik word nie. Die gespesifiseerde kenmerk sal deur die paniekhanteerder gebruik word om die ligging van die beller in die foutboodskap te druk.
  • Die "const"-kenmerk, wat die moontlikheid bepaal om dit in enige konteks in plaas van konstantes te gebruik, word in die std::mem::forget-metode gebruik.
  • 'n Nuwe gedeelte van die API is na die stabiele kategorie geskuif, insluitend die stabilisering van Option::zip en vec::Drain::as_slice.
  • Aan die vragpakketbestuurder bygevoeg ondersteuning vir nuwe omgewingsveranderlikes wat tydens pakketsamestelling gestel is: CARGO_BIN_NAME (naam van die gevolglike uitvoerbare lêer), CARGO_CRATE_NAME (pakketnaam), CARGO_PKG_LICENSE (lisensie gespesifiseer in die manifes), CARGO_PKG_LICENSE_FILE (pad na die lisensielêer).

Bron: opennet.ru

Voeg 'n opmerking