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ファイルが無いならコンパイルする必要があるってだけだと思う。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.