From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Improve reporting of I/O, access errors for Emacs Date: Thu, 12 Sep 2019 13:32:16 -0700 Organization: UCLA Computer Science Department Message-ID: References: <83d0g51jdp.fsf@gnu.org> <83a7b91f6l.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="132444"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 Cc: Emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 12 22:33:13 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i8VmD-000YLL-AX for ged-emacs-devel@m.gmane.org; Thu, 12 Sep 2019 22:33:13 +0200 Original-Received: from localhost ([::1]:38796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i8VmB-0002VJ-Kd for ged-emacs-devel@m.gmane.org; Thu, 12 Sep 2019 16:33:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:51038) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i8VlS-0002Nw-6T for Emacs-devel@gnu.org; Thu, 12 Sep 2019 16:32:27 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i8VlP-0005tx-VT for Emacs-devel@gnu.org; Thu, 12 Sep 2019 16:32:25 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:45476) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1i8VlP-0005t0-N6; Thu, 12 Sep 2019 16:32:23 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 9073F16023B; Thu, 12 Sep 2019 13:32:21 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id KukwQ6YURk_I; Thu, 12 Sep 2019 13:32:19 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 95642160266; Thu, 12 Sep 2019 13:32:19 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 7mv5Vwuno5Pk; Thu, 12 Sep 2019 13:32:19 -0700 (PDT) Original-Received: from Penguin.CS.UCLA.EDU (Penguin.CS.UCLA.EDU [131.179.64.200]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 7C1D416023B; Thu, 12 Sep 2019 13:32:19 -0700 (PDT) Openpgp: preference=signencrypt Autocrypt: addr=eggert@cs.ucla.edu; prefer-encrypt=mutual; keydata= xsFNBEyAcmQBEADAAyH2xoTu7ppG5D3a8FMZEon74dCvc4+q1XA2J2tBy2pwaTqfhpxxdGA9 Jj50UJ3PD4bSUEgN8tLZ0san47l5XTAFLi2456ciSl5m8sKaHlGdt9XmAAtmXqeZVIYX/UFS 96fDzf4xhEmm/y7LbYEPQdUdxu47xA5KhTYp5bltF3WYDz1Ygd7gx07Auwp7iw7eNvnoDTAl KAl8KYDZzbDNCQGEbpY3efZIvPdeI+FWQN4W+kghy+P6au6PrIIhYraeua7XDdb2LS1en3Ss mE3QjqfRqI/A2ue8JMwsvXe/WK38Ezs6x74iTaqI3AFH6ilAhDqpMnd/msSESNFt76DiO1ZK QMr9amVPknjfPmJISqdhgB1DlEdw34sROf6V8mZw0xfqT6PKE46LcFefzs0kbg4GORf8vjG2 Sf1tk5eU8MBiyN/bZ03bKNjNYMpODDQQwuP84kYLkX2wBxxMAhBxwbDVZudzxDZJ1C2VXujC OJVxq2kljBM9ETYuUGqd75AW2LXrLw6+MuIsHFAYAgRr7+KcwDgBAfwhPBYX34nSSiHlmLC+ KaHLeCLF5ZI2vKm3HEeCTtlOg7xZEONgwzL+fdKo+D6SoC8RRxJKs8a3sVfI4t6CnrQzvJbB n6gxdgCu5i29J1QCYrCYvql2UyFPAK+do99/1jOXT4m2836j1wARAQABzSBQYXVsIEVnZ2Vy dCA8ZWdnZXJ0QGNzLnVjbGEuZWR1PsLBfgQTAQIAKAUCTIByZAIbAwUJEswDAAYLCQgHAwIG FQgCCQoLBBYCAwECH In-Reply-To: <83a7b91f6l.fsf@gnu.org> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 131.179.128.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:240003 Archived-At: On 9/12/19 12:34 PM, Eli Zaretskii wrote: > We should just set > errno and return an error indication, and then let the caller deal > with that. I don't see how that could work. Callers are typically written in Lisp, and so can't see errno. For example, suppose Lisp code calls (file-symlink-p "/a/b/c") and Emacs cannot tell whether /a/b/c is a symbolic link because of an I/O error, or because of a timeout in network access, or because /a is a symlink into an unreadable directory, or whatever. If file-symlink-p merely returns nil, there's no way for the Lisp code to know that there was an exceptional situation and the Lisp code will continue based on the incorrect assumption that /a/b/c was not a symlink. Instead of signaling these exceptional conditions, we could extend each primitive with a new optional argument saying what to do on failure. For example, (file-symlink-p "/a/b/c" t) could signal an exception or return a special value for these exceptional cases, whereas (file-symlink-p "/a/b/c" nil) would simply return nil. However, such an extension would require changes to Lisp code if it is intended to be reliable, and most Lisp code would not be changed and would continue to be unreliable in these exceptional situations. In contrast, the proposed patch means existing Lisp code will gain reliability without needing to be changed. > That's too small a sample, so it doesn't prove much in my book, sorry. I've looked at and experimented with a reasonable amount of Elisp code, and haven't run into problems with the proposed patch. What's your contrary intuition based on? Can you give a realistic example of the problems you see from the patch?