zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: zsh-users@zsh.org
Subject: Re: "Once-a-day" long delay before startup
Date: Fri, 19 Aug 2011 10:58:27 -0700	[thread overview]
Message-ID: <110819105827.ZM21713@torch.brasslantern.com> (raw)
In-Reply-To: <20110819083624.GD1685@prunille.vinc17.org>
In-Reply-To: <20110819090844.GF1685@prunille.vinc17.org>

On Aug 19, 10:36am, Vincent Lefevre wrote:
} Subject: Re: "Once-a-day" long delay before startup
}
} That can be annoying. But I don't really understand. What if none
} of the concerned directories are group-writable? I suppose that
} getent should be useless. Why not calling it only when needed?

The test is written to find the directories that are both writable
and owned by the user/group in a single glob pass.  It comes down
to predicting whether two globs are slower than one getent, which
isn't practical.  But the test could be rewritten.

On Aug 19, 11:08am, Vincent Lefevre wrote:
}
} With HASH_DIRS, couldn't zsh fill the hash table only when the
} directory is accessed?

Yes, that is what it does, except during completion when it fills
the whole thing so as not to miss some possible completions.  But
whether incremental filling is any faster depends on the order of
the path and where the command is found in it.

Again the optimization chosen years ago was for commands you have
yet to use; a better one nowadays might be to assume command use is
mostly repetitive and only store individual commands as they are
found.  Except, again, for the completion issue, which usually makes
all of this discussion moot.

} Now, if zsh could fill the hash tables in background, this would be
} even better.

That could require completely rewriting the way the shell interacts
with the user for I/O -- I'm not even sure it's possible to maintain
POSIX compliance and do that.  Shells generally don't support shared
memory multithreading, and you'd still have to wait for the table to
be completely filled when completion begins, so you need a sempahore
as well.

However, it might be possible to *cache* the hash table in a manner
similar to the way completion caches work.


  reply	other threads:[~2011-08-19 17:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-14 14:57 gi1242+zsh
2011-08-14 15:36 ` Vincent Lefevre
2011-08-14 17:32   ` Vincent Lefevre
2011-08-14 18:06 ` Bart Schaefer
2011-08-18 22:08 ` Piotr Karbowski
2011-08-19  2:03   ` gi1242+zsh
2011-08-19  4:05     ` Bart Schaefer
2011-08-19  9:08       ` Vincent Lefevre
2011-08-19 17:58         ` Bart Schaefer [this message]
2011-08-20  0:47       ` gi1242+zsh
2011-08-20  7:01         ` Bart Schaefer
2011-08-19  3:52   ` Bart Schaefer
2011-08-19  8:36     ` Vincent Lefevre
2011-08-19  9:05     ` Piotr Karbowski

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=110819105827.ZM21713@torch.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --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).