Abo
  • Services:

Programmiersprache: Rust 1.30 überarbeitet Modulsystem und erweitert Makros

Die Entwickler der Programmiersprache Rust haben die aktuelle Version 1.30.0 angekündigt. Diese ergänzt neue Arten prozeduraler Makros, legt deren Gültigkeit mit use fest und verbessert das Modulsystem.

Artikel veröffentlicht am , Kristian Kißling/Linux Magazin/
Rust ist in Version 1.30 verfügbar.
Rust ist in Version 1.30 verfügbar. (Bild: Luca 4891/Flickr.com/CC-BY 2.0)

Anfang dieses Jahres kündigte das Team der Programmiersprache Rust mit Rust 2018 ein großes Produktivitätsupdate an. Die kommende Version 1.31 soll dieses umsetzen, doch auch schon die nun verfügbare aktuelle Version 1.30 bringt eine für Rust 2018 wichtige Neuerung mit: So können nun Schlüsselworte als Identifikator (Identifier) genutzt werden, etwa als lokale Variablen oder Funktionsname. Das soll für den Übergang und die Mischung von Projekten aus Rust 2015 und Rust 2018 hilfreich sein.

Stellenmarkt
  1. CSL Behring GmbH, Marburg, Hattersheim am Main
  2. Robert Bosch GmbH, Stuttgart

Neuzugänge für Rust 1.30 sind außerdem Attribut- und funktionsartige prozedurale Makros. Erstere ähneln angepassten Derive-Makros, ermöglichen es aber, anstelle des Attributs #[derive] selbst gewählte zusätzliche und neue Attribute zu definieren. Zudem funktionieren sie nicht nur für Structs und Enums, sondern auch für Funktionen.

Funktionsartige prozedurale Makros definieren Makros, die wie Funktionsaufrufe aussehen. Dies kann für den Fall von SQL etwa so aussehen:

  1. let sql = sql!(SELECT * FROM posts WHERE id=1);

Das Makro, das an dem Ausrufezeichen zu erkennen ist, würde laut der Ankündigung der neuen Version das eingebettete SQL-Statement parsen und auf seine syntaktische Korrektheit hin überprüfen. Definieren lässt sich das Makro so:

  1. #[proc_macro]
  2. pub fn sql(input: TokenStream) -> TokenStream {...}

Hierbei folgt das funktionsartige Makro dem Derive-Makro, indem es den Code innerhalb der Klammern auswertet und den zu generierenden Code zurückgibt. Darüber hinaus fällt die bisherige Schreibweise #[macro_use] weg, um Makros von externen Crates zu verwenden. Sie ersetzt der Einsatz des Schlüsselwortes use.

Modulsystem verbessert

Für Version 1.30 haben die Entwickler zudem das Modulsystem verbessert beziehungsweise einige umständliche und ungewöhnliche Syntaxregeln verändert. So kam es bislang zu Problemen, wenn Entwickler eine Funktion in ein Submodul verschoben haben, ohne noch einmal explizit ein use voranzustellen. Neuerdings prüft Rust den Pfad, um automatisch zu erkennen, ob es sich um ein externes Crate handelt. Ist das der Fall, wird es ungeachtet der aktuellen Position in der Modulhierarchie verwendet.

Dazu passend bringt Rust 1.30 auch das crate-Schlüsselwort. So signalisiert use crate::foo::bar;, dass der Pfad zur Funktion bar aus dem Modul foo im Crate-Wurzelverzeichnis beginnt und nicht im aktuellen Verzeichnis. Das ermöglicht es etwa, die Funktion von Modul Nummer 1 aus der Funktion von Modul Nummer 2 heraus aufzurufen, ohne use verwenden zu müssen.

Weitere Änderungen und Neuerungen erläutert die offizielle Ankündigung zur aktuellen Version sowie die ausführlicheren Release Notes auf Github.



Anzeige
Spiele-Angebote
  1. 2,99€
  2. 34,99€ (erscheint am 14.02.)
  3. (-76%) 3,60€
  4. 33,99€

pythoneer 30. Okt 2018

Mit jeder Version fühlt sich das immer runder an und mit der Idee Updates in kurzen...


Folgen Sie uns
       


Audi Holoride ausprobiert (CES 2019)

Dirk Kunde probiert für Golem.de den Holoride von Audi aus. Gemeinsam mit Marvel-Figuren wie Rocket aus Guardians of the Galaxy sitzt er dafür auf der Rückbank, während es um eine Rennstrecke geht.

Audi Holoride ausprobiert (CES 2019) Video aufrufen
Nubia X im Hands on: Lieber zwei Bildschirme als eine Notch
Nubia X im Hands on
Lieber zwei Bildschirme als eine Notch

CES 2019 Nubia hat auf der CES eines der interessantesten Smartphones der letzten Monate gezeigt: Dank zweier Bildschirme braucht das Nubia X keine Frontkamera - und dementsprechend auch keine Notch. Die Umsetzung der Dual-Screen-Lösung gefällt uns gut.

  1. H2Bike Alpha Wasserstoff-Fahrrad fährt 100 Kilometer weit
  2. Bosch Touch-Projektoren angesehen Virtuelle Displays für Küche und Schrank
  3. Mobilität Das Auto der Zukunft ist modular und wandelbar

Schwer ausnutzbar: Die ungefixten Sicherheitslücken
Schwer ausnutzbar
Die ungefixten Sicherheitslücken

Sicherheitslücken wie Spectre, Rowhammer und Heist lassen sich kaum vollständig beheben, ohne gravierende Performance-Einbußen zu akzeptieren. Daher bleiben sie ungefixt. Trotzdem werden sie bisher kaum ausgenutzt.
Von Hanno Böck

  1. Sicherheitslücken Bauarbeitern die Maschinen weghacken
  2. Kilswitch und Apass US-Soldaten nutzten Apps mit fatalen Sicherheitslücken
  3. Sicherheitslücke Kundendaten von IPC-Computer kopiert

Schwerlastverkehr: Oberleitung - aber richtig!
Schwerlastverkehr
Oberleitung - aber richtig!

Der Schwerlast- und Lieferverkehr soll stärker elektrifiziert werden. Dafür sollen kilometerweise Oberleitungen entstehen. Dass Geld auf diese Weise in LKW statt in die Bahn zu stecken, ist aber völlig irrsinnig!
Ein IMHO von Sebastian Grüner

  1. Softwarefehler Lime-Tretroller werfen Fahrer ab
  2. Hyundai Das Elektroauto soll automatisiert parken und laden
  3. Kalifornien Ab 2029 müssen Stadtbusse elektrisch fahren

    •  /