Ja, mit rustc 1.32 - vermutlich so lange sinnvoll nutzbar, bis rustc 1.37 mit async/await erscheint, und sich das crates.io Ökosystem in diese Richtung bewegt, dann muss man wieder verschiedene crates in älteren Versionen verwenden, was schnell ziemlich hässlich werden kann.
Ich installiere übrigens in meinem Home-Verzeichnis mit rustup den stable und den nightly compiler. Dazu richte ich mir entsprechend https://github.com/rust-lang/rustup.rs#working-with-distribution-rust-packages den Compiler von Debian als Standard ein. Damit kann ich dann aber auch z.B. rustfmt und clippy von rustup verwenden, was ganz praktisch ist.
Und mit Debian 11 Bullseye ist das dann hoffentlich auch alles direkt in Debian verfügbar. Auch so eine signifikante Änderung wie async/await wird danach hoffentlich nicht mehr allzu schnell folgen. Aber bis dahin dauert es vermutlich noch ca. 2 bis 2,5 Jahre.
Das ist kein Problem, das wird erst in einer Rust 2018+Next Edition relevant.
So hatte ich mir das auch mal gedacht. Aber leider nein, die jeweils letzte Edition "lebt", wird also aktiv um Features erweitert. Voraussetzung ist, dass die Keywords in der vorherigen Edition bereits reserviert waren, was auf async und await zutrifft. Siehe z.B. Changelog von rustc 1.33:
You can now have multiple patterns in if let and while let expressions.
if let Creature::Crab(name) | Creature::Person(name) = state {…}
Dieses Feature wurde in 1.33 stabil veröffentlicht, und neu geschriebener Code, der es verwendet, baut nicht mit älteren Compilerversionen, obwohl bereits rustc 1.31 die 2018 Edition unterstützt.
und das fest als offizielles Paket.
Ich freue mich schon auf Buster.
Ja, mit rustc 1.32 - vermutlich so lange sinnvoll nutzbar, bis rustc 1.37 mit
async/await
erscheint, und sich das crates.io Ökosystem in diese Richtung bewegt, dann muss man wieder verschiedene crates in älteren Versionen verwenden, was schnell ziemlich hässlich werden kann.Ich installiere übrigens in meinem Home-Verzeichnis mit
rustup
den stable und den nightly compiler. Dazu richte ich mir entsprechend https://github.com/rust-lang/rustup.rs#working-with-distribution-rust-packages den Compiler von Debian als Standard ein. Damit kann ich dann aber auch z.B. rustfmt und clippy von rustup verwenden, was ganz praktisch ist.Und mit Debian 11 Bullseye ist das dann hoffentlich auch alles direkt in Debian verfügbar. Auch so eine signifikante Änderung wie async/await wird danach hoffentlich nicht mehr allzu schnell folgen. Aber bis dahin dauert es vermutlich noch ca. 2 bis 2,5 Jahre.
Das ist kein Problem, das wird erst in einer Rust 2018+Next Edition relevant. Also eventuell Rust 2020 oder später.
Siehe dazu:
Edition Guide
async
undawait
zutrifft. Siehe z.B. Changelog vonrustc
1.33: Dieses Feature wurde in 1.33 stabil veröffentlicht, und neu geschriebener Code, der es verwendet, baut nicht mit älteren Compilerversionen, obwohl bereitsrustc
1.31 die 2018 Edition unterstützt.Siehe dazu auch die Kommentare zu diesem Beitrag auf Reddit.
Ach so, hm, das ist schade. Dann habe ich das mit den Editions falsch verstanden.
Dann hast du recht, dann müssen wir auf Backports hoffen.