Fuzzing des Gleam-Compilers: Zufällige Programme decken Bugs auf

Fuzzing the Gleam Compiler

Fuzzing des Gleam-Compilers: Zufällige Programme decken Bugs auf

Ein Entwickler nutzt strukturiertes Fuzzing, um den Gleam-Compiler zu testen. Dabei generiert er zufällige, aber typsichere Gleam-Programme und vergleicht die Ausgaben für die Zielplattformen JavaScript und Erlang. Der Ansatz fand bereits einen Regression auf Nightly sowie einen Parser-Crash. Der Artikel beschreibt die Phasen des Fuzzings: zunächst unstrukturierte Eingaben zum Finden von Compiler-Abstürzen, dann typsichere Programme für tiefere Codegenerierungsfehler. Er diskutiert die Wahl der Methode (generationsbasiert vs. mutationsbasiert) und verweist auf verwandte Ressourcen.

Es ist ein bisschen wie das Ziehen an einem Spielautomaten: teuer, nicht deterministisch und mit ungewissem Ausgang.
  1. nwellnhof

    > Wir können die Ausgabe desselben Programms für beide Ziele vergleichen und Unterschiede markieren.

    Das nennt man differentielles Fuzzing und es ist eine der mächtigsten Methoden, um Bugs in allen Arten von Software zu finden.

  2. goranmoomin

    Ich habe eine Ahnung, dass wir winzige LLMs nutzen könnten, um Teile zu identifizieren, die möglicherweise fragil sind, und sie mit traditionellem generierungs- oder mutationsbasiertem Fuzzing zu kombinieren, um Fuzz-Ziele zu erzeugen, die mit höherer Wahrscheinlichkeit einen Randfall auslösen.

    Ich habe überhaupt nicht daran gedacht, LLMs auf Fuzzing anzuwenden, bis ich llvm-hackme[0] gesehen habe, das sowohl traditionelles Mutations-Fuzzing als auch LLM-generierte gezielte Regressionstestfälle durchführt, wobei das LLM ziemlich effektiv darin ist, den PR zu verstehen und Randfälle zu zielen! Es war ziemlich beeindruckend, und ich denke ständig darüber nach, wie wir LLMs tatsächlich kombinieren können, um Fuzzing viel effizienter und effektiver zu machen.

    // Entschuldigung für den weiteren LLM-Kommentar. Ich liebe Programmiersprachen wirklich, und es tut mir schrecklich leid, dass ich noch mehr LLM-bezogenen Inhalt beitrage (anstatt der interessanteren Sachen!)

    [0]: https://github.com/dtcxzyw/llvm-hackme

  3. stephenlf

    Fantastischer Artikel. Danke fürs Teilen. Ich mag die ehrliche Einschätzung zum LLM-basierten Fuzzing. Genau das würde ich bei einem ähnlichen Problem tun.

Mehr von diesem Tag

2026-08-25