PATH sollte ein Systemcall sein

2025-04-25

Emacs und bash suchen beim Start ineffizient nach Konfigurationsdateien, indem sie jedes Verzeichnis in der PATH-Umgebungsvariablen durchlaufen und die Existenz der Zieldatei einzeln überprüfen. Dieser Artikel untersucht diesen ineffizienten Suchmechanismus und verwendet das Tool strace, um die Systemaufrufe von Emacs und bash zu verfolgen, wobei zahlreiche fstatat-Aufrufe gezeigt werden. Der Autor argumentiert, dass diese Suche vom Betriebssystem oder Dateisystem optimiert werden sollte, indem eine Datenbank-ähnliche Abfrage verwendet wird, um die übereinstimmenden Dateien direkt zurückzugeben, anstatt iterative Versuche zu unternehmen. Die Python-Implementierung ist zwar relativ effizienter, weist aber auch Mängel auf. Der Autor schlägt eine verbesserte Lösung vor: dem Betriebssystem eine Liste aller möglichen Dateinamen und Verzeichnisse zu übergeben, um die Anzahl der Systemaufrufe und Netzwerk-Roundtrips zu reduzieren.

Mehr lesen
Entwicklung

Das Komma-Rätsel: Warum JSONs Syntax überdacht werden sollte

2025-04-06

Dieser Beitrag hinterfragt die Notwendigkeit von Kommas in JSON. Der Autor argumentiert, dass Kommas in JSON keine kluge Designentscheidung sind, sondern eher die Wahrscheinlichkeit von Syntaxfehlern erhöhen und die Lesbarkeit verringern. Der Autor schlägt vor, Kommas zu entfernen und Leerzeichen und Doppelpunkte zu verwenden, um Schlüssel-Wert-Paare zu unterscheiden, und verwendet JSON5 als Beispiel für Verbesserungen, obwohl JSON5 das Problem nur teilweise löst. Der Beitrag schließt mit der Erwähnung eines merkwürdigen Nebeneffekts der Verwendung von KI-Systemen bei der Textgenerierung.

Mehr lesen
Entwicklung Syntax