Rust 1.53

Ma kijött az újabb verzió: $ rustup update stable
   stable-x86_64-unknown-linux-gnu updated - rustc 1.53.0 (53cb7b09b 2021-06-17) (from rustc 1.52.1 (9bc8c42bb 2021-05-09))

Ami szembetűnő: megengedi az ékezetes változó- és függvénynevek használatát.

fn main() {
    let lecsó = 32;
    println!("Hello, world! Lecsó: {}", lecsó);
}

1.52 esetén még hibaüzenet fogadott:

error[E0658]: non-ascii idents are not fully supported
 --> src/main.rs:2:9
  |
2 |     let lecsó = 32;
  |         ^^^^^
  |
  = note: see issue #55467 <https://github.com/rust-lang/rust/issues/55467> for more information

Hogy jó-e vagy nem az ékezetes változónevek és ékezetes függvénynevek engedélyezése, azt ki-ki döntse el. Az biztos, hogy a Rust is mostantól engedi.
Viszont csak a nyelvi unicode karaktereket engedélyezték, a 🍏, 🍎, 🍕 és egyéb jeleket a változónevekben továbbra sem.

További változások: https://blog.rust-lang.org/2021/06/17/Rust-1.53.0.html

Hozzászólások

"a nyelvi unicode karaktereket engedélyezték" - A klingont is? :-D

Szerkesztve: 2021. 06. 17., cs – 22:59

Sajnos a span paramétereit lenyeli a hup :-/

<span style="font-size:150%;font-family:pIqaD, Constructium, Unifont CSUR, Klingon pIqaD HaSta, Code2000, Horta;">&#xf8e4;&#xf8d7;&#xf8dc;&#xf8d0;&#xf8db; &#xf8d6;&#xf8dd;&#xf8d9;</span>

Nemrég kezdtem el nézegetni a Rustot, eddig nagyon szimpatikus. A memóriakezelése teljesen kézenfekvő, de ami a legjobban tetszik, az informatív hibaüzenetek.

Debian - The "What?!" starts not!
http://nyizsa.blogspot.com

Magányosan programozok MO-n, nem csapatban, az se kíváncsi a kódra, akinek szeretném megmutatni, mégis, azért inkább törekszem az angol elnevezésekre, és ahol épp nincs így, ott se jutna eszembe ékezetet használni. Ha engedné a rendszer, akkor sem, valamint kód tisztázás után a magyar azonosítók is át lesznek nevezve általában angolra.

Mondok még valamit. Ma let mut árvíztűrő_tükörfúrógépek_száma=1, holnap meg let mut 防洪镜钻 =1 ?

Inkább maradjon mindenki az angol abc keretein belül, mindenkinek jobb így.

Amúgy Rust szimpatizáns vagyok, de ezt nagyonnemkéne.

Tíz éves sztori, remélem jól emlékszem. Az Ustreamben melóztam, ahol a szomszédos Android csapat szopott mindenféle korai Androidos device-ok támogatásával. Rengeteg telón mindenféle gyártóspecifikus multimédia, kamera és egyéb frameworkok voltak, mivel a gyári Google cucc az adott feladatra vagy még nem létezett, vagy igen gyerekcipőben járt, így a gyártók mindenféle saját intergalaktikus innovációkkal jöttek elő, hogy támogassák a hardvereiket. A csapatnak kiadták, hogy valami belpiacos jappppán telót kell támogatni (hogy most japán piacszerzés, vagy valami befektetőnek benyalás ürügyén, arra már nem emlékszem). Valahogy sikerült is felvenni a kapcsolatot a gyártóval, hogy küldjenek SDK-t a cucc custom részeihez. Ők segítőkészen és lelkiismeretesen olyan jappppán módra ezt el is küldték.

Amikor megérkezett, akkor realizálta a csapat, hogy a Java sajnos támogat unicode identifiereket. A komplett SDK ugyanis japánul volt. Nem csak a doksi, gyakorlatilag a számokon, műveletjeleken és zárójeleken kívül minden. És nem romanizált japánul, hanem rendesen, kajni meg minden ahogy kell. Végül nem tudom hogy az Android csapat hogy oldotta meg a dolgot, de azért akkor röhögtem szegényeken.

Szóval, az unicode identifierek támogatása egy nyelvben leginkább arra jó, hogy az adott nyelvre recskázó computer scientistek kipipálhassák mint szükséges advanced fícsört, csak azért, hogy utána minden épeszű és kicsit is nemzetközi projekt linterből tiltsa az ilyesmit a build systemben. Nincs új a nap alatt.

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Érdekes sztori. Talán írtak egy automata, google translate alapú japán API => angol API generátort? Mint egy extra API réteg.

Egyébként nemrég a Julia nyelvvel kapcsolatban olvastam, hogy a kutatók/mérnökök egyre gyakrabban használnak a forráskódban görög és egyéb karaktereket a problémák megfogalmazásánál. Ebben a környezetben talán van is értelme, bizonyos szabályokat betartva.

Szerkesztve: 2021. 06. 22., k – 10:29

Érdekesség:

fn main() {
    let freq = 50.0; // Hz
    let π = 3.14;
    let ω = 2.0 * π * freq;
    println!("ω: {}", ω);   // eddig oké

    let 🍏 = 42; // hibára fut, nem engedi a szimbólumokat
}
$ rustc -O teszt.rs 
error: unknown start of token: \u{1f34f}
 --> teszt.rs:7:9
  |
7 |     let 🍏 = 42;
  |         ^

Python3-ban az ω és társai lefutnak, a szimbólumokat ez sem engedi:

$ ./teszt.py
  File "/tmp/./teszt.py", line 9
    🍏 = 42
    ^
SyntaxError: invalid character '🍏' (U+1F34F)

 

Nézzük meg a C-t (gcc, clang fordítókkal):

#include <stdio.h>

int main() {
    float freq = 50.0; // Hz
    float π = 3.14;
    float ω = 2.0 * π * freq;
    printf("ω: %f\n", ω);

    int 🍏 = 42;
    return 🍏;
}

Lefordul, semmi szűrés, semmi warning.

Julia sem szűr, engedi a szimbólumokat:

🍏 = 42
println("🍏:", 🍏)

Simán lefuttatja a Julia.