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: documentation of integers, fixnums and bignums Date: Sat, 8 Sep 2018 16:37:26 -0700 Organization: UCLA Computer Science Department Message-ID: <7f7411eb-32c8-9ea6-8ead-2aaf603d3901@cs.ucla.edu> References: <0f632217-27ad-4f54-8ce0-480301fa2a86@cs.ucla.edu> <83pnxorm37.fsf@gnu.org> <92915cae-21d5-c365-89f2-3a15fc9114c4@cs.ucla.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------C0F0F3136AD0A25C4CFACDB2" X-Trace: blaine.gmane.org 1536450627 31398 195.159.176.226 (8 Sep 2018 23:50:27 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 8 Sep 2018 23:50:27 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 To: Stefan Monnier , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Sep 09 01:50:23 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 1fymze-00085O-RY for ged-emacs-devel@m.gmane.org; Sun, 09 Sep 2018 01:50:22 +0200 Original-Received: from localhost ([::1]:45513 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fyn1l-0006p9-9L for ged-emacs-devel@m.gmane.org; Sat, 08 Sep 2018 19:52:33 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fyn1W-00067z-43 for emacs-devel@gnu.org; Sat, 08 Sep 2018 19:52:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fymnE-0003fj-He for emacs-devel@gnu.org; Sat, 08 Sep 2018 19:37:36 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:46322) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fymnC-0003Yb-Id for emacs-devel@gnu.org; Sat, 08 Sep 2018 19:37:32 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 25CC71615E8; Sat, 8 Sep 2018 16:37:28 -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 KHxA8cadEA5O; Sat, 8 Sep 2018 16:37:27 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 5D7A01615FB; Sat, 8 Sep 2018 16:37:27 -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 TZm0TmItkQOS; Sat, 8 Sep 2018 16:37:27 -0700 (PDT) Original-Received: from [192.168.1.9] (cpe-23-242-74-103.socal.res.rr.com [23.242.74.103]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 2CCAB1615E8; Sat, 8 Sep 2018 16:37:27 -0700 (PDT) In-Reply-To: Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x 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:229524 Archived-At: This is a multi-part message in MIME format. --------------C0F0F3136AD0A25C4CFACDB2 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Stefan Monnier wrote: >>>> encode-char could potentially return a value that cannot be >>>> represented as a fixnum. >>> Can this still happen? When? >> When INDEX_TO_CODE_POINT returns a code point greater than >> most-positive-fixnum, which can happen (in theory, at least) on 32-bit >> platforms. > > Can it, really? I don't know of any way it could happen. So what you're saying is that we should install something like the attached patch? Also, how about glyph-ids returned by font-variation-glyphs? Can they exceed fixnum range? If not, font-variation-glyphs could see a similar speedup. --------------C0F0F3136AD0A25C4CFACDB2 Content-Type: text/x-patch; name="encode-char.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="encode-char.diff" diff --git a/src/charset.c b/src/charset.c index e11a8366d5..a5a5a944dc 100644 --- a/src/charset.c +++ b/src/charset.c @@ -1870,8 +1870,7 @@ although this usage is obsolescent. */) DEFUN ("encode-char", Fencode_char, Sencode_char, 2, 2, 0, doc: /* Encode the character CH into a code-point of CHARSET. -Return the encoded code-point, a fixnum if its value is small enough, -otherwise a bignum. +Return the encoded code-point, a fixnum. Return nil if CHARSET doesn't support CH. */) (Lisp_Object ch, Lisp_Object charset) { @@ -1886,7 +1885,8 @@ Return nil if CHARSET doesn't support CH. */) code = ENCODE_CHAR (charsetp, c); if (code == CHARSET_INVALID_CODE (charsetp)) return Qnil; - return INT_TO_INTEGER (code); + eassert (!FIXNUM_OVERFLOW_P (code)); + return make_fixnum (code); } --------------C0F0F3136AD0A25C4CFACDB2--