Gleamコンパイラをファジングで攻めてみた——ランダム生成プログラムが明らかにしたバグ
Fuzzing the Gleam Compiler

Gleamコンパイラのコード生成バグを発見するため、構造認識ファジングを実装した話。まずパーサー段階でlibFuzzerを使い、ランダムなバイト列を入力してクラッシュを検出。その結果、`const b = 1 |> 2`のようなパイプライン式がパニックを引き起こすリグレッションを発見した。次に、型安全なプログラムを生成する「スミス」を構築し、ErlangとJavaScriptの出力差分を検証する計画を紹介している。
コンパイラのバグを見つけるために、ランダムなプログラムを生成するなんてできるのだろうか?