From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Floating-point constant folding in Emacs byte compiler Date: Mon, 26 Mar 2018 17:28:07 -0700 Organization: UCLA Computer Science Department Message-ID: <7a49cbdf-f2c3-0803-2ee8-3d9f55e405a5@cs.ucla.edu> References: <2ce39e5c-cd1b-65d6-b125-719caad67932@cs.ucla.edu> <83vadmgfbz.fsf@gnu.org> <87d0zr2n1u.fsf@gmail.com> <83h8p2g99p.fsf@gnu.org> <87370m3k4y.fsf@gmail.com> <838taeg6z5.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1522110385 14503 195.159.176.226 (27 Mar 2018 00:26:25 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 27 Mar 2018 00:26:25 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 Cc: Robert Pluim , emacs-devel@gnu.org To: Pip Cet , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 27 02:26:21 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1f0cRR-0003fk-7V for ged-emacs-devel@m.gmane.org; Tue, 27 Mar 2018 02:26:21 +0200 Original-Received: from localhost ([::1]:59675 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0cTU-0003EW-Kv for ged-emacs-devel@m.gmane.org; Mon, 26 Mar 2018 20:28:28 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53529) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f0cTJ-0003CV-20 for emacs-devel@gnu.org; Mon, 26 Mar 2018 20:28:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f0cTI-0003hO-0x for emacs-devel@gnu.org; Mon, 26 Mar 2018 20:28:17 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:55090) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f0cTC-0003eg-JZ; Mon, 26 Mar 2018 20:28:10 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 1BFCC1615E8; Mon, 26 Mar 2018 17:28:09 -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 t3No5hN_Nwh7; Mon, 26 Mar 2018 17:28:08 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id EA6A8161621; Mon, 26 Mar 2018 17:28:07 -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 kaz1gZPPt9kK; Mon, 26 Mar 2018 17:28:07 -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 BE2201615E8; Mon, 26 Mar 2018 17:28:07 -0700 (PDT) In-Reply-To: Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 131.179.128.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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:224082 Archived-At: On 03/26/2018 11:23 AM, Pip Cet wrote: > if I understand things correctly, large integers in decimal notation > are automatically converted to floats, while large hex constants > signal an overflow error. I believe the former case applies to the > read syntax for byte-compiled functions. Yes, that's right. This thread got started, though, partly because I'm thinking of changing the behavior for plain integers to be more like that of other radixes, because the automatic-float conversion causes too many problems in practice. This is still work in progress. For a recent discussion please see: https://debbugs.gnu.org/30408 > is this really a problem for any actual code? Good code shouldn't > depend on more than the 30 bits Emacs guarantees, It is a real issue, I'm afraid.(I suppose this means the code isn't good....) See these recent fixes in the master branch: https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=f92c6dd6cd09991c2ab4c0612574064ca061d927 https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=011186279c1041e790b81af72981547d623d9b29 https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=cae9e0fa0358d6323b57a288b5661dc72d36356d Better treatment of large integers at compile-time will help catch these gotchas.