From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Using the GNU GMP Library for Bignums in Emacs Date: Sun, 22 Apr 2018 23:36:31 -0400 Message-ID: References: <29f933ac-a6bf-8742-66a7-0a9d6d3e5a88@disroot.org> <83bmecy6fx.fsf@gnu.org> <0d3175d8-d996-651e-b221-71978bde3a65@cs.ucla.edu> <51e619e0-ee38-eb97-6c1d-0925b675290a@disroot.org> <8e12135a-0fcc-7aa3-d000-731d2f26d918@disroot.org> Reply-To: rms@gnu.org NNTP-Posting-Host: blaine.gmane.org Content-Type: text/plain; charset=Utf-8 X-Trace: blaine.gmane.org 1524454481 3087 195.159.176.226 (23 Apr 2018 03:34:41 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 23 Apr 2018 03:34:41 +0000 (UTC) Cc: eliz@gnu.org, eggert@cs.ucla.edu, emacs-devel@gnu.org To: "Siraphob \(Ben\) Phipathananunth" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 23 05:34:37 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 1fASFQ-0000iW-Ei for ged-emacs-devel@m.gmane.org; Mon, 23 Apr 2018 05:34:36 +0200 Original-Received: from localhost ([::1]:33629 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fASHX-000549-BU for ged-emacs-devel@m.gmane.org; Sun, 22 Apr 2018 23:36:47 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54659) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fASHP-00053h-Q2 for emacs-devel@gnu.org; Sun, 22 Apr 2018 23:36:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fASHO-0003TH-PY for emacs-devel@gnu.org; Sun, 22 Apr 2018 23:36:39 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:33468) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fASHJ-0003RZ-VI; Sun, 22 Apr 2018 23:36:33 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.82) (envelope-from ) id 1fASHH-0001b6-ML; Sun, 22 Apr 2018 23:36:31 -0400 In-reply-to: <8e12135a-0fcc-7aa3-d000-731d2f26d918@disroot.org> (siraben@disroot.org) 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:224795 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > From what I understand, we would want to use fixnums by default in the > C code, and convert to bignums automatically (in lisp) when the number > exceeds the range of a fixnum, while retaining behavior as before, > using the regular math operations + - * / (and more) to interface this > to Lisp. Yes, exactly. > Would it not slow down computation to have to constantly convert > between the two types? (especially if the computation is switching > above/below the fixnum/bignum boundary). In such a case, a fix could > be to convert lisp numbers exceeding fixnum limits to bignums for the > rest of the number's life (until GC). This ensures memory usage is kept > low for fixnum computations. I am not sure that makes sense. Emacs works with numbers, and computes (or otherwise generates) new numbers, but it never changes an existing number. Numbers that are in the range of non-bignum integers MUST be represented as non-bignum integers so that the existing C code can work on them without change. Some places ought to be able to handle larger numbers, and we will need to change them, However, many places could continue to handle only small numbers. -- Dr Richard Stallman President, Free Software Foundation (https://gnu.org, https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) Skype: No way! See https://stallman.org/skype.html.