From: Ray Andrews <rayandrews@eastlink.ca>
To: zsh-users@zsh.org
Subject: Re: autoload
Date: Fri, 18 Sep 2015 08:49:03 -0700 [thread overview]
Message-ID: <55FC326F.4050503@eastlink.ca> (raw)
In-Reply-To: <150917225221.ZM25880@torch.brasslantern.com>
On 09/17/2015 10:52 PM, Bart Schaefer wrote:
> It's not a mystery. Try this:
>
> zsh -nf /usr/share/zsh/functions/Completion/Base.zwc
Ah, so the error is really from some other file. I assumed it was some
sort of
second parsing or something. Nice if the called file was identified tho.
Anyway at least that's clear.
> If we now throw zcompile into the mix, the -z / -k options to autoload
> are ignored in favor of the -z / -k options to zcompile. However, the
> rule about the file name having to be the same as the function name
> doesn't change. Further "autoload -w" still doesn't define anything;
> it just uses the index table in the zcompiled file to grab the list
> of names to mark for later processing.
This could be made clearer in the docs.
> } Strangely there seems to be no trouble with multiple functions in one
> } file except in the case of 'miscfunctions' so I have to source it
> } separately. (The other multiple functions are all help functions only
> } called by the main function in each file. I don't know why that makes
> } a difference, but it does.)
>
> Does what I just wrote, above, help? In the "miscfunctions" case, the
> name of the file matches NONE of the names of the functions inside it;
> they can't be autoloaded. The name of the file has to match the name
> of AT LEAST ONE function inside the file, *OR* the entire file has to
> be that single function (as if it were a script).
I see. Nuts, there's nothing about that in the docs is there?
> ... The contents of fpath at the
> instant of execution ALWAYS takes precedence; there is no "never get
> this function from anywhere except [here]" in the autoload scheme.
>
As always Bart you make things as clear as they can be, but it sure is
obtuse. I long for:
$ autoload --just_DO_IT Source.zwc
... that is functionally identical to:
$ for aa in /aWorking/Zsh/Source/*; do source $aa; done
( Of course that's after having done:)
$ zcompile --just_DO_IT Source.zwc /aWorking/Zsh/Source/*
... but much faster--all functions are pre-digested to word code and
ready for action, only not loaded into memory until/unless actually
called. 'zcompile --just_DO_IT' is smart enough to create function
names after filenames in the case of scripts, and of course named
functions are named functions. No need for wandering around in $fpath,
the names of all the functions found in '.../Source' (regardless of the
name of any file except in the case of scripts) and their definition
.zwc are tabled for instant access so the user can consider them as
having been sourced already, it's just much faster and trimmer. (Speed
is the point of all this, right?) "zcompile -t --just_DO_IT Source.zwc"
returns the list of all *functions* found or created (from scripts) in
'Source.zwc'.
Never mind, like completion, this is not for mortals to dabble in. My
'for' loop does it all in one line and there's no gotchas. Transparency
is not a zsh virtue.
next prev parent reply other threads:[~2015-09-18 15:49 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-17 15:54 autoload Ray Andrews
2015-09-17 17:34 ` autoload Bart Schaefer
2015-09-17 19:22 ` autoload Ray Andrews
2015-09-17 20:40 ` autoload Bart Schaefer
2015-09-17 23:06 ` autoload Ray Andrews
2015-09-17 23:20 ` autoload Bart Schaefer
2015-09-18 1:20 ` autoload Ray Andrews
2015-09-18 4:04 ` autoload Bart Schaefer
2015-09-18 5:00 ` autoload Ray Andrews
2015-09-18 5:52 ` autoload Bart Schaefer
2015-09-18 15:49 ` Ray Andrews [this message]
2015-09-18 16:52 ` autoload Bart Schaefer
2015-09-18 18:29 ` autoload Ray Andrews
2015-09-18 19:02 ` autoload Bart Schaefer
2015-09-18 22:57 ` autoload Ray Andrews
2015-09-19 0:14 ` autoload Bart Schaefer
2015-09-19 15:04 ` autoload Ray Andrews
2015-09-19 16:29 ` autoload Bart Schaefer
2015-09-19 18:13 ` autoload Ray Andrews
2015-09-19 21:22 ` autoload Bart Schaefer
2015-09-19 22:12 ` autoload Ray Andrews
2015-09-20 5:53 ` autoload Bart Schaefer
2015-09-20 15:37 ` autoload Ray Andrews
2015-09-20 15:59 ` autoload Bart Schaefer
2015-09-20 0:58 ` autoload Ray Andrews
2015-09-20 5:41 ` autoload Bart Schaefer
2015-09-20 23:21 ` autoload Ray Andrews
2015-09-21 4:18 ` autoload Bart Schaefer
2015-09-21 17:03 ` autoload Ray Andrews
2015-09-21 18:17 ` autoload Bart Schaefer
2015-09-21 20:09 ` autoload Ray Andrews
2015-09-22 3:19 ` autoload Bart Schaefer
2015-09-22 17:33 ` autoload Ray Andrews
2015-09-23 4:39 ` autoload Bart Schaefer
2015-09-23 15:06 ` autoload Ray Andrews
2015-09-29 23:16 ` wheels within wheels Ray Andrews
2015-09-30 2:55 ` Kurtis Rader
2015-09-30 3:24 ` Ray Andrews
2015-09-30 3:40 ` Bart Schaefer
2015-09-30 4:03 ` Mikael Magnusson
2015-09-30 4:15 ` Ray Andrews
2015-09-30 7:05 ` Bart Schaefer
2015-09-30 15:06 ` Ray Andrews
2015-09-30 8:01 ` ZyX
2015-09-30 15:18 ` Ray Andrews
-- strict thread matches above, loose matches on Subject: below --
2015-09-08 12:32 Announce of Zsh Navigation Tools Sebastian Gniazdowski
2015-09-12 17:50 ` Ray Andrews
2015-09-12 19:41 ` ZyX
2015-09-12 21:03 ` Ray Andrews
2015-09-12 22:10 ` Bart Schaefer
2015-09-12 23:03 ` Ray Andrews
2015-09-12 23:43 ` Bart Schaefer
2015-09-14 2:14 ` autoload Ray Andrews
2015-09-14 2:38 ` autoload Bart Schaefer
2015-09-14 3:34 ` autoload Ray Andrews
2015-09-14 20:21 ` autoload Bart Schaefer
2015-09-15 2:48 ` autoload Ray Andrews
2015-09-15 3:48 ` autoload Bart Schaefer
2015-09-15 16:18 ` autoload Ray Andrews
2015-09-16 4:09 ` autoload Ray Andrews
2014-12-23 15:51 autoload Ray Andrews
2014-12-23 17:36 ` autoload Bart Schaefer
2014-12-23 18:19 ` autoload Ray Andrews
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55FC326F.4050503@eastlink.ca \
--to=rayandrews@eastlink.ca \
--cc=zsh-users@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).