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: Using the GNU GMP Library for Bignums in Emacs Date: Mon, 23 Apr 2018 21:35:31 -0700 Organization: UCLA Computer Science Department Message-ID: <1f58acbf-a7d8-bf4e-3d0e-a285515a22e6@cs.ucla.edu> References: <29f933ac-a6bf-8742-66a7-0a9d6d3e5a88@disroot.org> <83bmecy6fx.fsf@gnu.org> <0d3175d8-d996-651e-b221-71978bde3a65@cs.ucla.edu> <42cbc5ab-2f02-4aa5-4b19-7b2357f91692@cs.ucla.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1524544422 4176 195.159.176.226 (24 Apr 2018 04:33:42 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 24 Apr 2018 04:33:42 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 Cc: eller.helmut@gmail.com, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Apr 24 06:33:38 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 1fApe6-00012I-3D for ged-emacs-devel@m.gmane.org; Tue, 24 Apr 2018 06:33:38 +0200 Original-Received: from localhost ([::1]:56467 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fApgC-00006g-S2 for ged-emacs-devel@m.gmane.org; Tue, 24 Apr 2018 00:35:48 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46772) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fApfy-00005A-Oq for emacs-devel@gnu.org; Tue, 24 Apr 2018 00:35:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fApfx-00081e-VG for emacs-devel@gnu.org; Tue, 24 Apr 2018 00:35:34 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:58482) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fApfx-00080A-KK; Tue, 24 Apr 2018 00:35:33 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id B19141600AC; Mon, 23 Apr 2018 21:35:32 -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 nxohfjbqDh-L; Mon, 23 Apr 2018 21:35:31 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E3DA81600B2; Mon, 23 Apr 2018 21:35:31 -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 GRt6vbjR2MDF; Mon, 23 Apr 2018 21:35:31 -0700 (PDT) Original-Received: from [192.168.1.9] (unknown [47.154.30.119]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id B42D81600AC; Mon, 23 Apr 2018 21:35:31 -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:224825 Archived-At: Richard Stallman wrote: > In practice, I think, the cases where one wants hexadecimal > are cases where there is a word width. Although that is true in traditional usage where word width is assumed, i= t's not=20 true for most applications using bignums, the original context of this th= read.=20 In such applications, it's routine to have hexadecimal numbers that are w= ider=20 than 32- or 64-bit words. And these numbers (when printed without a sign)= are=20 routinely treated as nonnegative, not as negative. For an example of this= sort=20 of application, see the OpenSSL C code that deals with bignums: e.g., BN_= bn2hex=20 generates a leading "-" when converting a negative number to a hexadecima= l string. Even in the standard C library (which lacks bignums), the %x printf forma= t is=20 supposed to be used only with unsigned integers. Nowadays GCC even option= ally=20 warns about using %x on signed integers. > The reason to invent a special syntax is to get the commonly desired > result in a simpler way. If it turns out to be useful to have a shorthand printf format for format= ting=20 the least N bits of an argument, we can add it as needed. I have my doubt= s,=20 though, as other bignum formatters seem to get along fine without such a = feature.