Rubigo 1.47 Programming Language Release

editis dimittis 1.47 systema programmandi linguarum rustfundatum a Mozilla project. Lingua ad salutem memoriae intendit, administrationem automaticam memoriam praebet et modum praebet ut parallelismum magnum negotium consequatur sine usu quisquiliarum collectori ΠΈ currere tempus (runtime ulcera fundamentalia ad initializationem et sustentationem bibliothecae vexillum).

Rubigo latae memoriae administratione elit ab erroribus servat, cum argumentis abusionibus et quaestionibus abusionibus ortis, ob memoriam humili gradu manipulationis orientibus, ita ut area memoria accessu liberata, dereferencing nullis indicibus, quiddam eliminatum, etc. Bibliothecas distribuere, conventum curare ac clientelas regere, consilium in sarcina procurator enucleat cargo. Repositorium sustentatur ad exercitum libraries crates.io.

Main innovations:

  • Ad auxilium genera implemented vestit cuiuslibet magnitudinis. Antea, ob inhabilitatem functionum genericarum pro omnibus integris valoribus definiendi, vexillum biblioteca modo constructa in lineamentis subsidii solum ad instruendas 32 elementa in magnitudine (lineamenta pro unaquaque magnitudine statice definita erant). Per creationem functionis constantis genericae ("const genericae"), fieri potest functiones genericas pro quavis ordinata magnitudine definire, sed nondum in lineamentis linguae stabilibus comprehensae, quamquam in compilatoris sunt effectae et sunt. nunc implicari in the standard library for array of any size.

    Exempli gratia, haec constructio in Rust 1.47 contenta ordinatae imprimet, cum antea in errore evenisset:

    fnmain() {
    sit xs = [0; 34];

    println!("{:?}", xs);
    }

  • Provisum output de vestigiis brevioribus (backtrace), output in subitis condicionibus. Elementa, quae in pluribus adiunctis non sunt usuris, sed acervus intentus ac distrahens attentionem a primis causis quaestionis, a vestigio excluduntur. Ut vestigium plenum referre possis, "RUST_BACKTRACE=plenum" uti potes. Exempli gratia, pro codice

    fnmain() {
    terror!();
    }

    Antea vestigium in 23 gradibus erat output, sed nunc ad
    3 gressus, qui te permittit, ut essentiam statim capias;

    thread 'main' panicum 'panicum' expressum, src/main.rs:2:5
    BIBLIOTHECA REDITIO:
    0: std :: panicing ::begin_panic
    at /rustc/d..d75a/library/std/src/panicking.rs:497
    1: playground ::main
    apud ./src/main.rs:2
    2: core :: ops :: function :: FnOnce :: call_once
    at /rustc/d...d75a/library/core/src/ops/function.rs:227

  • In rustc compilator est updated facere utens LLVM 11 (Rust usus LLVM ut backend for codice generation). Eodem tempore facultas cum vetustioribus LLVMs aedificandi, usque ad VIII versionem, retinetur, sed per defaltam. rust-lang/llvm-project) nunc utens LLVM 11. LLVM 11 expectatur in venturis diebus dimitti.
  • In Fenestra suggestu, rustc compilator fulcimentum praebet ut integritas coercet (Control Flow Guard), utens "-C control-fluentes-custodes" utens reducitur. In aliis suggestis vexillum hoc nunc neglectum est.
  • Nova portio API in categoriis stabilis, inclusis stabilita, translatum est
    Ident:: new_raw,
    Range :: is_empty,
    RangeInclusive :: is_empty,
    Consequuntur:: as_deref,
    Consequuntur:: as_deref_mut,
    Vec:: Leak,
    monstratorem :: offset_from,
    f32 :: TAU et
    f64::TAU.

  • Attributum "const", quod facultatem utendi in quovis contextu loco constantium determinat, in modis adhibetur:
    • novis omnibus integris praeter nulla;
    • repressit_add, checked_sub, checked_mul, checked_neg, checked_shr, saturating_add, saturating_sub and saturating_mul for all integris;
    • is_ascii, is_ascii, is_ascii, is_ascii, is_ascii, is_ascii_alphanumeric, is_ascii, is_ascii, is_ascii_hexdigit, is_ascii_punctuation, is_ascii_graphic, is_ascii, is_ascii, is_ascii_control for char&u8 types.
  • Nam FreeBSD implicari toolkit from FreeBSD 11.4 (FreeBSD 10 LLVM XI non sustinet).

Source: opennet.ru