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: bignum branch Date: Sun, 05 Aug 2018 18:18:09 +0300 Message-ID: <83va8osuz2.fsf@gnu.org> References: <87o9fbbw1t.fsf@tromey.com> <86in5jdj49.fsf@gmail.com> <83wotxaiwi.fsf@gnu.org> <86k1pxmvmx.fsf@gmail.com> <87efg4a9xc.fsf@tromey.com> <87a7qr8cz7.fsf@tromey.com> <86tvoy3je9.fsf@gmail.com> <86bmb0vbxf.fsf@gmail.com> <87k1pnfcg1.fsf@tromey.com> <86sh4b1833.fsf@gmail.com> <861sbgz3dm.fsf@gmail.com> <83a7q4ufxp.fsf@gnu.org> <87wot71hpb.fsf@tromey.com> <86in4rgt1m.fsf@gmail.com> <83pnyyu0k1.fsf@gnu.org> <86k1p59haq.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1533482181 5819 195.159.176.226 (5 Aug 2018 15:16:21 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 5 Aug 2018 15:16:21 +0000 (UTC) Cc: emacs-devel@gnu.org To: Andy Moreton Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Aug 05 17:16:16 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 1fmKlU-0001RC-3J for ged-emacs-devel@m.gmane.org; Sun, 05 Aug 2018 17:16:16 +0200 Original-Received: from localhost ([::1]:58937 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmKna-0002Km-KG for ged-emacs-devel@m.gmane.org; Sun, 05 Aug 2018 11:18:26 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37267) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmKnS-0002Kg-Py for emacs-devel@gnu.org; Sun, 05 Aug 2018 11:18:19 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fmKnP-0004sO-L4 for emacs-devel@gnu.org; Sun, 05 Aug 2018 11:18:18 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35047) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fmKnP-0004sK-GU; Sun, 05 Aug 2018 11:18:15 -0400 Original-Received: from [176.228.60.248] (port=1489 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fmKnO-0005xl-U8; Sun, 05 Aug 2018 11:18:15 -0400 In-reply-to: <86k1p59haq.fsf@gmail.com> (message from Andy Moreton on Sun, 05 Aug 2018 12:36:13 +0100) 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:228191 Archived-At: > From: Andy Moreton > Date: Sun, 05 Aug 2018 12:36:13 +0100 > > >> That allows "XBIGNUM(value)->value" to be replaced with "XBIGNUM(value)" > >> in all callers. > > > > That would go against the convention with all the other Xfoo macros. > > True, the only thing with similar behaviour being xmint_pointer. While > inconsistent with the other Xfoo macros, it does reduce visual clutter > in the callers. Yes, but then how do you access the C structure represented by a Lisp bignum objects? The usual way is XBIGNUM(bignum), from which you can access members other than 'value'. If XBIGNUM expands into the value, we will need something else to do what XBIGNUM does now. > > However, I see your point, and so perhaps an additional macro, > > XINTEGER, could call either XINT or XBIGNUM()->value, depending on the > > argument type? > > I'm not sure that would help, as callers still need to know if the > result is a bignum or fixnum to handle it correctly. That's fine, we have a lot of code like if (NATNUMP (foo)) x = XFASTINT (foo); And sometimes the test is redundant, as its result is known in advance.