uutils coreutils zeigt jetzt mit dem Finger auf den Fehler

Pointing at the error: compiler-style diagnostics in uutils coreutils

Seit Version 0.11.0 liefern die uutils coreutils Compiler-artige Diagnosen: Bei Parsing-Fehlern in Argumenten wie `test`-Ausdrücken, `chmod`-Modi oder `sort`-Schlüsseln wird die fehlerhafte Stelle mit einem Caret markiert. Die Ausgabe erfolgt nur, wenn stderr ein Terminal ist, und kann über die Umgebungsvariable `UUTILS_DIAG` erzwungen oder deaktiviert werden. 28 Dienstprogramme nutzen das neue System, das auf der Bibliothek `ariadne` basiert und auch in anderen uutils-Projekten wie findutils und sed Einzug halten soll.

Wenn stderr ein Terminal ist, wird ein Parsing-Fehler als Bericht ausgegeben: Die Argumente werden als Quellzeile zurückgespiegelt, ein Caret markiert den Übeltäter, und eine Hilfszeile erklärt die Syntax, wenn wir etwas Nützliches dazu zu sagen haben.
  1. discardable_dan

    Die Fehlerbehandlung in Compilern ist zum interessantesten Teil meiner Arbeit geworden. Wenn man es durchrechnet, sind die meisten Aufrufe an Compiler Aufrufe, die Fehler erzeugen. Diese Aufrufe müssen also wirklich die bestmöglichen Fehler produzieren! (Vielleicht ist das in der LLM-Welt weniger der Fall, aber sicherlich war es kurz davor.) Spannen verfolgen, zusätzliche algorithmische Arbeit leisten und untersuchen, warum die Erwartung fehlgeschlagen ist, um dem Benutzer den aussagekräftigsten Fehler zu geben, ist zusätzliche Arbeit auf dem Hauptrechenpfad. Aber es zahlt sich aus: leicht diagnostizierbare Fehler und schnelle Korrekturen, die im Code selbst präsent sind. Das Verfolgen von Spannen, um auf Ursprungsdefinitionen zurückzuweisen, fühlt sich immer wie Klempnerarbeit an, bis man den Fehler sieht, der genau erklärt, was schiefgelaufen ist. Und wenn man es einmal getan hat, fühlen sich die Fehler nicht mehr wie eine Frustration an, über die man sein Netz werfen möchte.

  2. shakna

    Bitte führen Sie alle diese durch eine TTS-Engine aus. Ja, es ist sehr hilfreich, tatsächlich gerichtete Informationen zu haben. Aber die Notwendigkeit, eine TUI zu verwenden, um es zu tun, stört mich. Nicht zufällig benutze ich die meiste Zeit JAWS.

  3. emilfihlman

    Coole Innovation (ist tatsächlich gut und cool). Mach es, nachdem du tatsächlich die Rust-Version dazu gebracht hast, genauso zu funktionieren wie die C-Version. Es ist verrückt, Komplexität hinzuzufügen, Kompatibilität zu brechen und neue Fehler in Software einzuführen, die korrekt funktionieren muss.

Mehr von diesem Tag

2026-09-05