zcompileとは
zshのソースをコンパイルすること。
コンパイルされたソースはコンパイル前のファイル名に.zwcという拡張子が追加され、該当するファイルの代わりにロードされる。
「必要なファイルのみzcompile」とは
.zshrcロード時などに、もとのソースコードに変更が加えられたものだけがコンパイルされれば理想なのだが、その方法をググると.zwc(コンパイル後)ファイルとソースコード(コンパイル前)の更新日を比較するため、一度手動でコンパイルしzwcファイルを生成しておかなければ正常に稼働しないコードばかりが見つかった。
複数の環境で利用する.zshrcなどにコンパイルのコードを書いておくと新しい環境で利用する際のことを考えるとしっくり来ない。
そこで
.zshrc
() {
local src
for src in $@; do
([[ ! -e $src.zwc ]] || [ ${src:A} -nt $src ]) && zcompile $src
done
} ~/.zshrc ~/.zprofile ~/.zlogin ~/.zlogout
で良いと思う。
.zwcファイルが無いならコンパイルする必要があるってだけだと思う。