zxcvbn パスワード強度アルゴリズムを Haskellに変換しています。
最初のステップでは、一般的な単語リスト (英単語、姓、男性名など) からいくつかの大きなデータ構造を生成します。これらのリストは静的で、ときどき再構築され、アプリケーションが再コンパイルされた場合にのみ再構築されます。
これらのリストとマップは、実際のパスワード強度アルゴリズムを初期化するために使用されます。
元の JavaScript を Scala に変換したときに、静的な値を JSON として保存しました。この値は、起動時にアルゴリズムによって読み込まれます。初期化された Scala を生成したかったval
のですが、Java 仮想マシンにはクラスに 64KByte の制限があり、私のデータはそれを超えていました (各構造には数千の単語が含まれており、64KBytes を超えています)。
Haskellでこれを処理する最良の方法は何ですか? データを含むソース コード モジュールを生成することはできますか? 最大モジュール サイズの制限は? Haskell2010 レポートを検索しましたが、コンパイラの制限セクションが見つかりませんでした。
Haskell のソース コードを生成することが私の最初の選択肢であることは明らかです。JSON をロードして起動時に解析する必要がある場合、モジュールのその部分は不純になります。