From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Making 'eq' == 'eql' in bignum branch Date: Wed, 01 Aug 2018 08:51:13 +0300 Message-ID: <83ftzyocry.fsf@gnu.org> References: <29f933ac-a6bf-8742-66a7-0a9d6d3e5a88@disroot.org> <49d8ba62-c9a5-9203-d882-8e900b441ff3@cs.ucla.edu> <8e0320d9-e0d0-2b57-57cc-2df4399f133c@cs.ucla.edu> <87lgaio7xd.fsf@tromey.com> <877em1cb0i.fsf@tromey.com> <765767b2-d2e5-a9a6-f724-d58ecf4847bb@cs.ucla.edu> <76081b5d-8c10-0a37-2c97-d4864c0faa80@cs.ucla.edu> <09153aed-361d-4f82-d9ac-b502314769ae@cs.ucla.edu> <83600yt8ih.fsf@gnu.org> <83h8kgpnir.fsf@gnu.org> <7dd71d44-69bc-3adf-576b-8b9e31184a24@cs.ucla.edu> <83d0v4p1si.fsf@gnu.org> <827beb76-3adf-f2f9-33b1-1baee55680cd@cs.ucla.edu> <83wotbo04h.fsf@gnu.org> <77d5f8b0-2277-b28e-8565-d3e00c411795@cs.ucla.edu> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1533102553 30634 195.159.176.226 (1 Aug 2018 05:49:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 1 Aug 2018 05:49:13 +0000 (UTC) Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Aug 01 07:49:08 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 1fkk0S-0007s6-Fi for ged-emacs-devel@m.gmane.org; Wed, 01 Aug 2018 07:49:08 +0200 Original-Received: from localhost ([::1]:33615 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fkk2Z-0007QZ-6G for ged-emacs-devel@m.gmane.org; Wed, 01 Aug 2018 01:51:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54459) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fkk2N-0007QG-5P for emacs-devel@gnu.org; Wed, 01 Aug 2018 01:51:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fkk2K-0001Wv-0o for emacs-devel@gnu.org; Wed, 01 Aug 2018 01:51:07 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:42554) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fkk2J-0001Wp-Sg; Wed, 01 Aug 2018 01:51:03 -0400 Original-Received: from [176.228.60.248] (port=4075 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fkk2J-0000H3-7X; Wed, 01 Aug 2018 01:51:03 -0400 In-reply-to: <77d5f8b0-2277-b28e-8565-d3e00c411795@cs.ucla.edu> (message from Paul Eggert on Tue, 31 Jul 2018 15:44:24 -0700) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e 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:228073 Archived-At: > Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org > From: Paul Eggert > Date: Tue, 31 Jul 2018 15:44:24 -0700 > > > One way of estimating what happens in the majority of uses is to find > > Emacs APIs other than numerical calculations that can return floats, > > and try to analyze what kind of floats will be the result. Like > > file-system-info and file-attributes, for example. > > These should be fine on a 64-bit platform. file-system-info invariably > yields floating-point numbers with the bottom three bits zero, due to > how modern file systems are built (their sizes are multiples of powers > of two). file-attributes returns an exact value unless your file is > larger than 2**61 bytes (2 EiB), and once we get to the rare files > larger than that we should be using bignums anyway. (The same could be > said for file-system-info, of course.) OK, but those were just examples, I didn't do an exhaustive search for such APIs. Are there any others? Then there are FP calculations in Lisp, e.g. in line-move-partial. This gets executed many times in any Emacs, and I presume the values there can be any FP number, so it's more akin to the use case of FP programs we agreed not to consider. Searching for 'float', 'round', and 'floor' through the lisp/ directory brings more than 2000 hits, quite a few in Calc, but many unrelated to Calc. For example, window.el seems to have many hits, as well as CC Mode, Org, and calendar-related functions. Also image.el, Gnus, and timer.el. > > How faster, in absolute numbers and in percents, will your build > > finish with the proposed changes? > > I won't know unless I take the time to code it up. OK, but do you have an estimate? If not, how do you know it will be faster?