一昨日の記事では Camomile を使って Unicode 正規化を行ったのですが、この方法を用いたソフトウェアで opam-nix を使って Docker イメージを作成するとイメージサイズが膨れ上がってしまうことが分かりました[1]。
そこで別の選択肢である uunf を使い Unicode 正規化を行ってみます。uunf は Camomile と異なりチュートリアルや利用例がドキュメントに記載されているので便利です。これを読むと Uunf_string.normalize_utf_8 という便利関数を用いると Unicode 正規化(NFKC)ができることが分かります:
let nfkc = Uunf_string.normalize_utf_8 `NFKC
Camomile の代わりにこちらを組み込んで Docker イメージを作成すると特に膨らむこともありませんでした。
注釈
-
根本的な原因は調査していません。uunf でも Unicode 正規化のためのテーブルはコード中に持っているようなのでこの分はデータが増えているはずですが、Camomile を使うと色々な機能を含んでいる分、データ量が増えるということなのでしょうか。 ↩