Remacs: Rust-Basis für Editor Emacs vorgestellt

Das Remacs-Projekt will den Code des erweiterbaren Editors Emacs auf Rust portieren. Bei dem Projekt wird vor allem der für Emacs sehr wichtige Lisp-Interpreter von C auf Rust portiert.

Artikel veröffentlicht am , Kristian Kißling/Linux Magazin
Das nächste altehrwürdige Projekt bekommt eine Rust-Portierung von der Community.
Das nächste altehrwürdige Projekt bekommt eine Rust-Portierung von der Community. (Bild: Barta IV/Flickr.com/CC-BY 2.0)

Der freie Editor des GNU-Projekts, Emacs, interpretiert die Sprache Lisp und lässt sich darüber erweitern. Zwar sind auch viele Funktionen des Editors in dem Emacs-eigenen Lisp-Dialekt Elisp geschrieben, der Kern des Lisp-Interpreters selbst besteht allerdings nach wie vor aus C-Code. Ein neues Projekt namens Remacs will das ändern und spendiert Emacs eine Rust-Grundlage.

Stellenmarkt
  1. Consultant (m/w/d) MES
    J.M. Voith SE & Co. KG, Heidenheim an der Brenz
  2. Softwareentwickler (m/w/d) mit Schwerpunkt Regelungstechnik/DSP
    KOSTAL Automobil Elektrik GmbH & Co. KG, Dortmund
Detailsuche

Für den Entwickler Wilfred Hughes liegen die Gründe für die Portierung von C auf Rust klar auf der Hand, wie er in seinem Blog ausführt. Dank Rust könne Emacs vom Crate-Ökosystem der Sprache profitieren, das heißt von Paketen, die die Community für die Sprache erstellt hat. Ebenso müssten bei der Portierung keine veralteten Compiler und Plattformen mehr unterstützt werden wie etwa MS-DOS.

Mit Hilfe von Rust könnten außerdem Docstrings und Unit-Tests auch für solche Kernfunktionen ergänzt werden, zu denen Elisp selbst keinen Zugang hat. Nicht zuletzt mache so ein Portierungsprojekt schlicht Spaß und die Entwickler könnten Rust besser kennenlernen.

An dem Projekt Interessierte hätten dabei je nach Ambition die Möglichkeit, wahlweise riesige Teilbereiche wie die komplette Regular-Expression-Engine oder einfach nur einzelne Elisp-Funktionen oder kleine C-Funktionen auf Rust zu portieren. Einer der Vorteile von Rust ist die einfache Integration von C-Code, so dass einzelne Funktionen Stück für Stück ersetzt werden könnten. Entwickler Hughes macht in seinem Blogpost auch einige Vorschläge, welche Komponenten sich problemlos ändern lassen sollten, verlinkt ein Tutorial hierzu ebenso wie offene Bugs des Projekts. Remacs basiert auf der noch nicht veröffentlichten Emacs-Version 25.2, der Code zum Projekt steht auf Github.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed


Aktuell auf der Startseite von Golem.de
Resident Evil (1996)
Grauenhaft gut

Resident Evil zeigte vor 25 Jahren, wie Horror im Videospiel auszusehen hat. Wir schauen uns den Klassiker im Golem retro_ an.

Resident Evil (1996): Grauenhaft gut
Artikel
  1. Streaming: Chromecast erhält spezielle Youtube-Fernbedienung
    Streaming
    Chromecast erhält spezielle Youtube-Fernbedienung

    Die Steuerung von Youtube auf einem Chromecast soll mit einer neuen Funktion deutlich komfortabler werden.

  2. Studie: Kinder erhalten Smartphone meist zwischen 6 und 11 Jahren
    Studie
    Kinder erhalten Smartphone meist zwischen 6 und 11 Jahren

    Nur eine sehr geringe Minderheit der Eltern will ihrem Kind erst mit 15 Jahren ein Smartphone zur Verfügung stellen.

  3. Google: Kopfhörer verlieren Google-Assistant-Support auf iPhones
    Google
    Kopfhörer verlieren Google-Assistant-Support auf iPhones

    Wer Google Assistant am Kopfhörer benutzen will, ist künftig auf ein Android-Gerät angewiesen.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Saturn-Advent: Samsung Portable SSD T5 1 TB 84€ • ViewSonic VX2718-2KPC-MHD (WQHD, 165 Hz) 229€ • EPOS Sennheiser GSP 670 199€ • EK Water Blocks Elite Aurum 360 D-RGB All in One 205,89€ • KFA2 Geforce RTX 3070 OC 8 GB 1.019€ • Alternate (u. a. AKRacing Core SX 269,98€) [Werbung]
    •  /