1. GeneralD

    Posted

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