io_uring erhält neue Funktionalität zur Prozesserstellung

2024-12-20

LWN.net berichtet über die Entwicklung einer neuen Funktion zur Prozesserstellung für das io_uring-Subsystem. Diese Funktionalität wird durch zwei neue io_uring-Operationen implementiert: IORING_OP_CLONE, die einen neuen Prozess erstellt, und IORING_OP_EXEC, die einen execveat()-Systemaufruf ausführt, um ein neues Programm zu laden. Dies verspricht eine höhere Effizienz und ermöglicht die asynchrone Ausführung komplexerer Logik im Kernel, wie z. B. die Pfadsuche. Die Funktion befindet sich jedoch noch in einem frühen Stadium und weist Einschränkungen auf, wie z. B. die Notwendigkeit der synchronen Ausführung von io_uring-Operationen im neuen Prozess. Zukünftige Entwicklungen zielen darauf ab, die Flexibilität zu erhöhen und die Funktion schließlich in den Mainline-Linux-Kernel zu integrieren.

Mehr lesen

Fish Shell 4.0 veröffentlicht: In Rust umgeschrieben für verbesserte Leistung

2024-12-19

Fish shell, eine Kommandozeilen-Shell, die für ihre Benutzerfreundlichkeit und intelligenten Funktionen bekannt ist, hat Version 4.0 veröffentlicht. Die größte Änderung ist eine vollständige Umschreibung der Codebasis von C++ zu Rust, was zu einer verbesserten modernen Rechenleistung führt. Version 4.0 bietet auch viele neue Funktionen, wie natürlichere Tastenkombinationen und eine verbesserte Verlaufssuche, die entwickelt wurden, um die Kommandozeilenerfahrung einfacher und angenehmer zu gestalten. Um die Stabilität zu gewährleisten, wurde eine öffentliche Beta-Version veröffentlicht, die alle Benutzer zur Teilnahme an Tests einlädt.

Mehr lesen
Entwicklung

Emacs mit Guile: Ein ehrgeiziges Umschreibungsprojekt

2024-12-16

Emacs ist bekannt für seine Erweiterbarkeit, leidet aber unter Performance- und Ausdrucksbeschränkungen seiner Kernprogrammiersprache Emacs Lisp (Elisp). Um dies zu beheben, zielt das Guile-Emacs-Projekt darauf ab, Elisp in Emacs durch Guile Lisp zu ersetzen. Nach Jahren der Entwicklung und Inaktivität wurde Guile-Emacs von den Entwicklern Robin Templeton und Larry Valkama wiederbelebt. Das Projekt möchte die Vorteile des Guile-Compilers und seiner Leistung nutzen, um die Geschwindigkeit und Erweiterbarkeit von Emacs zu verbessern, während die Elisp-Kompatibilität erhalten bleibt. Das endgültige Ziel ist es, einen erheblichen Teil des C-Codes von Emacs in Lisp umzuschreiben, wodurch seine Anpassungsfähigkeit deutlich verbessert wird. Trotz technischer und politischer Herausforderungen bietet das Projekt spannende Möglichkeiten für die Zukunft von Emacs.

Mehr lesen
Entwicklung

Rust-Compiler: Eine abfragebasierte Architektur für inkrementelle Kompilierung

2024-12-13

Um die Effizienzprobleme der traditionellen Pipeline-basierten Kompilierung zu lösen, verwendet der Rust-Compiler eine abfragebasierte Architektur für inkrementelle Kompilierung. Diese Architektur zerlegt den Kompilierungsprozess in eine Reihe von voneinander abhängigen Abfragen und nutzt eine Kompilierungsdatenbank zum Zwischenspeichern von Zwischenergebnissen. Dadurch müssen nur die notwendigen Codeabschnitte neu kompiliert werden. Ähnlich wie bei der Abhängigkeitsverwaltung eines Build-Systems verbessert dies die Kompilierungsgeschwindigkeit erheblich, was besonders in Szenarien wie der IDE-Integration von Vorteil ist. Obwohl dies Komplexität mit sich bringt, bietet dieser Ansatz im Vergleich zu schrittweisen Verbesserungen traditioneller Systeme eine stabilere und effizientere inkrementelle Kompilierungserfahrung für Rust und ist jetzt die Standardeinstellung für Entwicklungsbuilds.

Mehr lesen

Git-Projekt im Patt wegen Rust-Integration

2024-12-13

Das Git-Projekt steckt in einer hitzigen Debatte über die Integration der Programmiersprache Rust fest. Befürworter argumentieren, dass Rusts Speichersicherheit und die einfache Refaktorierung die Sicherheit und die Entwicklererfahrung von Git verbessern würden. Gegner hingegen befürchten, dass die Rust-Integration die Unterstützung von Nischenplattformen wie NonStop gefährden und die langfristige Lebensfähigkeit von Git beeinträchtigen könnte. Die Verbreitung von NonStop im Finanzsektor, seine Abhängigkeit von Git und das Fehlen eines Rust-Compilers für die Plattform verkomplizieren das Problem. Die Diskussion führte letztendlich zu keinem Ergebnis und lässt das Git-Projekt mit der kritischen Entscheidung zwischen der Beibehaltung einer breiten Plattformunterstützung und der Verbesserung von Sicherheit und Entwicklererfahrung zurück.

Mehr lesen