[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Making --with-wide-int the default

From: David Kastrup
Subject: Re: Making --with-wide-int the default
Date: Sun, 15 Nov 2015 22:36:03 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Ulrich Mueller <address@hidden> writes:

>>>>>> On Sun, 15 Nov 2015, Eli Zaretskii wrote:
>>> Date: Sat, 14 Nov 2015 18:38:37 +0100
>>> From: Ulrich Mueller <address@hidden>
>>> Cc: address@hidden, address@hidden, address@hidden, address@hidden,
>>> address@hidden
>>> In case you want any feedback from distros, Gentoo makes the option
>>> available to users as the "wide-int" use flag, and the default is off.
>>> I've not seen a single complaint from users that we should change that
>>> default. (So most likely the Gentoo default will stay off, regardless
>>> of what you decide to do with the upstream default.)
>> Did the option you offer mention the fact that using it enlarges the
>> maximum buffer and string size to (almost) 2GB? If not, it's quite
>> possible that your users simply did not realize what this option would
>> give them in user-level functionality, and treated it as yet another
>> obscure build feature.
> This is what we have as description:
>    app-editors/emacs:wide-int - Prefer wide Emacs integers (typically
>    62-bit). This option has an effect only on architectures where
>    "long" and "long long" types have different size.
> Seems that we copied the first sentence from Emacs' configure --help
> output, which also doesn't say anything about buffer size or memory
> footprint.

It's not really "Prefer".  It makes _all_ Lisp data 64 bit (allowing for
62 bit integers instead of the usual 30 bit ones), at the obvious cost
of doubling the size of Lisp cells (and immediate expressions and
symbols and a few other things) to a value not natively supported by
instructions and registers.

> Unrelated question: Are the "62 bit" in the description above correct,
> or should it rather be 61 bit?

Yes.  The basic type tagging is 3 bits, but two tag values are reserved
for integers.  So effectively only 2 bits are missing from the integer

David Kastrup

reply via email to

[Prev in Thread] Current Thread [Next in Thread]