Pelo menos para usar os arquivos .zwc
, você não precisa fazer nada. Como a seção no comando .
nos estados do Zsh's manpage :
[…] If a file named ‘file
.zwc
’ is found, is newer than file, and is the compiled form (created with thezcompile
builtin) of file, then commands are read from that file instead of file.
O mesmo é válido para source
, pois é igual a .
, exceto para a ordem de pesquisa.
Compilar automaticamente qualquer script de origem pode ser feito criando funções de wrapper. Por exemplo:
source () {
[[ ! "$1.zwc" -nt $1 ]] || zcompile $1
builtin source $@
}
. () {
[[ ! "$1.zwc" -nt $1 ]] || zcompile $1
builtin . $@
}
É claro que esses wrappers são muito simples e podem precisar de alguns fail-saves extras. Por exemplo, se o diretório, no qual o arquivo a ser armazenado reside, não for gravável. Além disso, a compilação pode falhar, mesmo que o arquivo de origem não tenha erros de sintaxe.