3

zxcvbn パスワード強度アルゴリズムを Haskellに変換しています。

最初のステップでは、一般的な単語リスト (英単語、姓、男性名など) からいくつかの大きなデータ構造を生成します。これらのリストは静的で、ときどき再構築され、アプリケーションが再コンパイルされた場合にのみ再構築されます。

これらのリストとマップは、実際のパスワード強度アルゴリズムを初期化するために使用されます。

元の JavaScript を Scala に変換したときに、静的な値を JSON として保存しました。この値は、起動時にアルゴリズムによって読み込まれます。初期化された Scala を生成したかったvalのですが、Java 仮想マシンにはクラスに 64KByte の制限があり、私のデータはそれを超えていました (各構造には数千の単語が含まれており、64KBytes を超えています)。

Haskellでこれを処理する最良の方法は何ですか? データを含むソース コード モジュールを生成することはできますか? 最大モジュール サイズの制限は? Haskell2010 レポートを検索しましたが、コンパイラの制限セクションが見つかりませんでした。

Haskell のソース コードを生成することが私の最初の選択肢であることは明らかです。JSON をロードして起動時に解析する必要がある場合、モジュールのその部分は不純になります。

4

1 に答える 1

3

データを含むソース コード モジュールを生成することはできますか?

はい。制限はありませんが、特定のマシンでは、一部のタイプのデータと一部の最適化レベルで問題が発生する場合があります。

シリアル化されたデータのバイト文字列リテラルは、通常、「問題なく機能します」。

前の質問 - How to compile a resource into a binary in Haskell? を参照してください。 およびHaskell wikiで

于 2012-12-31T17:13:35.513 に答える