From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#13539: Use fdopendir, fstatat and readlinkat, for efficiency. Date: Mon, 28 Jan 2013 16:37:48 +0200 Message-ID: <83obg9idab.fsf@gnu.org> References: <5100F04A.1020603@cs.ucla.edu> <83vcamlcce.fsf@gnu.org> <51063829.3020500@cs.ucla.edu> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1359387052 2804 80.91.229.3 (28 Jan 2013 15:30:52 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 28 Jan 2013 15:30:52 +0000 (UTC) Cc: 13539@debbugs.gnu.org To: Paul Eggert Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jan 28 16:31:12 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Tzqfu-0002hH-TX for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Jan 2013 16:31:11 +0100 Original-Received: from localhost ([::1]:40448 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tzqfd-0004kd-1Y for geb-bug-gnu-emacs@m.gmane.org; Mon, 28 Jan 2013 10:30:53 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:46432) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TzqfR-0004Gm-VN for bug-gnu-emacs@gnu.org; Mon, 28 Jan 2013 10:30:50 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TzqfL-0004JD-6C for bug-gnu-emacs@gnu.org; Mon, 28 Jan 2013 10:30:41 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:46898) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tzpr2-0004vk-QM for bug-gnu-emacs@gnu.org; Mon, 28 Jan 2013 09:38:36 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TzprS-00017K-5G for bug-gnu-emacs@gnu.org; Mon, 28 Jan 2013 09:39:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 28 Jan 2013 14:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13539 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 13539-submit@debbugs.gnu.org id=B13539.13593838874230 (code B ref 13539); Mon, 28 Jan 2013 14:39:02 +0000 Original-Received: (at 13539) by debbugs.gnu.org; 28 Jan 2013 14:38:07 +0000 Original-Received: from localhost ([127.0.0.1]:52362 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TzpqZ-00016B-7S for submit@debbugs.gnu.org; Mon, 28 Jan 2013 09:38:07 -0500 Original-Received: from mtaout22.012.net.il ([80.179.55.172]:40172) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TzpqX-000163-2k for 13539@debbugs.gnu.org; Mon, 28 Jan 2013 09:38:06 -0500 Original-Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0MHC00D00B8D8K00@a-mtaout22.012.net.il> for 13539@debbugs.gnu.org; Mon, 28 Jan 2013 16:37:33 +0200 (IST) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0MHC00D4ZBAK0V50@a-mtaout22.012.net.il>; Mon, 28 Jan 2013 16:37:33 +0200 (IST) In-reply-to: <51063829.3020500@cs.ucla.edu> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:70402 Archived-At: > Date: Mon, 28 Jan 2013 00:34:49 -0800 > From: Paul Eggert > CC: 13539@debbugs.gnu.org > > > Is it really worth our while to spend energy on speeding up an API > > that goes mostly unused in Emacs? Its only heavy user is ls-lisp.el, > > This patch also improves the performance of file-name-completion > -- perhaps you missed that part? I just didn't imagine that file-name-completion would need to call 'lstat'. But now I see that it does, even twice in a row -- only so it could support FOO/ in completion-ignored-extensions. So perhaps a further optimization would be to avoid the call to file_name_completion_stat if completion-ignored-extensions is devoid of elements that end in a slash. > Better than that, w32 can model the POSIX file descriptor by > using an int that represents the directory name. Yes, this is indeed much simpler, thanks. I have only one comment: > +static DIR * > +open_directory (char const *name, int *fdp) > +{ > + DIR *d; > + int fd, opendir_errno; > + > + block_input (); > + > +#ifdef DOS_NT > + /* Directories cannot be opened, so emulate an open directory with > + its name, cast to a pointer. This is good enough for Emacs. */ > + fd = (int) name; ^^^^^ I think we should use ptrdiff_t rather than int here, since that could make a difference in 64-bit builds on Windows.