2025-11-05: カラフルなネジを集めた
やったこと
Recheck
ESLintのmultithreadの実装を読んでいたら、 #1546 の対応方針がまとまってきた。
まず、設定でESLintレベル指定でキャッシュするかどうか明示するのは無理筋なので諦めたい。
別枠で pluginReDoS.enableCache(...) みたいな関数を用意して、そちらで設定することにする。
で、その関数の中身は、メインスレッド (main worker) ではキャッシュの初期値を読み込んで、BroadcastChannel を使って配信し、実際にlintを行うworkerでそれを受信する。
さらに、lintを行なった際にキャッシュの更新があればメインスレッドにその更新を伝える (これは別の BroadcastChannel で行う)。worker間のキャッシュの同期は一旦諦めてもいいと思っている (可能ならやる)。
最後に、メインスレッド (main worker) のプロセスの終了前にキャッシュをファイルに書き込むことにする。
この方法なら競合も起こらず、ESLintがworkerを使っている限りは上手く動作するのではないかと思う。
気が向いたときにやる予定。
Repair
Chida & Terauchiの論文を読み込んでいた。
実装のイメージはついてきたように思う。
とはいえやることが結構多いな‥‥。
間に合うのだろうか。
ZA
カラフルなネジを集めきって巨大カナリィぬいぐるみを手に入れた。
なんなんだ。
次はストーリーを進めたい。