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: `message' not outputting the newline "atomically" Date: Mon, 24 Jun 2019 15:03:01 -0700 Organization: UCLA Computer Science Department Message-ID: <68b398b1-3790-b32f-535d-6ea2518f79b8@cs.ucla.edu> References: <07619925-e367-fb88-2dd8-27addb2e9052@grinta.net> 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="232837"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 Cc: Daniele Nicolodi , emacs-devel@gnu.org To: Lars Ingebrigtsen Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Jun 25 00:16:29 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 1hfXGF-000yPc-1i for ged-emacs-devel@m.gmane.org; Tue, 25 Jun 2019 00:16:27 +0200 Original-Received: from localhost ([::1]:54984 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfXGD-0003BR-1Q for ged-emacs-devel@m.gmane.org; Mon, 24 Jun 2019 18:16:25 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55306) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hfX3L-0000BH-HX for emacs-devel@gnu.org; Mon, 24 Jun 2019 18:03:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hfX3J-0005f6-AJ for emacs-devel@gnu.org; Mon, 24 Jun 2019 18:03:06 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:39626) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hfX3I-0005a0-HB for emacs-devel@gnu.org; Mon, 24 Jun 2019 18:03:04 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 51C10162623; Mon, 24 Jun 2019 15:03:02 -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 hNb73h92c-cm; Mon, 24 Jun 2019 15:03:01 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 87F91162627; Mon, 24 Jun 2019 15:03:01 -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 VYl6KqnXLf92; Mon, 24 Jun 2019 15:03:01 -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 6A105162619; Mon, 24 Jun 2019 15:03:01 -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: 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:238122 Archived-At: On 6/24/19 2:33 PM, Lars Ingebrigtsen wrote: > the code also calls code_convert_string, so I thought one > more xmalloc didn't make much difference. If code_convert_string could cause an infloop when reporting low-on-memory messages, then we should fix that infloop too. In the meantime we shouldn't make things worse by doing yet another heap allocation. One possibility would be to use an auto (C stack) buffer of size (min (MAX_ALLOCA, PIPE_BUF)) bytes if that buffer is large enough; otherwise, stick with the current code. This would handle the vast majority of cases atomically, and the remaining cases would be no worse off than they are now. Still, it would be better if the code didn't need to copy the string into a buffer at all. writev would work for that, since stderr is unbuffered. There are other possibilities. > * The patch also needs a FIXME comment saying it fixes only "message" > output, not the other uses of stderr in Emacs. > Well... that's kinda unusual. The commit message may say so, but > having that in the code would be odd. I think it's worth having that comment here. Someone reading this code will reasonably wonder why we're going to all this trouble to hand-buffer stderr here, when we don't bother doing it elsewhere. The commit log is not a good place to document curious code like that.