You can trace the system calls using strace.
strace zsh >/dev/null | grep zshrc
Look out for the "open" and "stat" system calls. If zsh uses the compiled .zwc
it will look like this:
stat("/home/joke/.zshrc.zwc", {st_mode=S_IFREG|0444, st_size=9624, ...}) = 0
stat("/home/joke/.zshrc", {st_mode=S_IFREG|0640, st_size=3477, ...}) = 0
open("/home/joke/.zshrc.zwc", O_RDONLY) = 3
zsh uses "stat" to check the modification time of .zshrc and .zshrc.zwc and
decides to open .zshrc.zwc.
If the .zshrc is more recent then .zshwc zsh opens the .zshrc file:
stat("/home/joke/.zshrc.zwc", {st_mode=S_IFREG|0444, st_size=9624, ...}) = 0
stat("/home/joke/.zshrc", {st_mode=S_IFREG|0640, st_size=3477, ...}) = 0
open("/home/joke/.zshrc", O_RDONLY|O_NOCTTY) = 3
On Friday 12 February 2010 14:51:49 Piotr Karbowski wrote:
> Hi there!
>
> I am trying to understand how zcompile work. When I do zcompile .zshrc
> it making .zshrc.zwc (3x bigger than .zshrc). How can I check if zsh
> really using compiled zshrc? And, when I changing zshrc but dont
> recompile .zwc, how it detect that zwc is outdatted? Sorry if I asking
> about something documented but I didnt found anything useful about it
> on google.
>
Attachment:
signature.asc
Description: This is a digitally signed message part.