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

Re: perl: 64-bit integers and long doubles



On Mon, May 10, 2010 at 11:50:23AM +0200, Martin Becker wrote:

> I'd argue against a default setting where floating point numbers
> are less precise than integers.

I believe this has always been the case on our 64-bit architectures
(ia64, alpha, amd64.)

On current sid / amd64 (perl 5.10.1-12):

% perl -le 'print ((2**60 + 1) - (1 << 60))'
0
% perl -Minteger -le 'print ((2**60 + 1) - (1 << 60))'
1

(2**60 is a float in the first case and an integer in the second one.
 1<<60 is an integer in both.)

> Therefore, I'd like to see the migration to 64-bit integers and
> long doubles happen simultaneously, painful as it might be, or
> not at all.  Keep in mind, I am talking default settings here,
> which should lead to a perl interpreter with sane arithmetic.
> Individual admins may always choose differently and live with
> the consequences.

Given the amount of amd64 users that never had sane arithmetic in this
sense, I don't quite see why it would be so important for i386.

(Most of the discussion is on debian-devel, so please followup there.)
-- 
Niko Tyni   ntyni@debian.org


Reply to: