diff options
author | Jarkko Hietaniemi <jhi@iki.fi> | 1999-07-29 14:02:50 +0000 |
---|---|---|
committer | Jarkko Hietaniemi <jhi@iki.fi> | 1999-07-29 14:02:50 +0000 |
commit | 9e24b6e2f422a9f67d0605cdea60de0c597868f3 (patch) | |
tree | a1d7aa4afcc1f20f6f872172f9f2673776d0e2f6 /pod | |
parent | 9429f27a525401f243c383770a5f171eef0929c3 (diff) | |
download | perl-9e24b6e2f422a9f67d0605cdea60de0c597868f3.tar.gz |
Repent and make overly large integerish
constants non-fatal. They are now promoted
to NVs, accompanied by an overflow warning that
is by default on.
p4raw-id: //depot/cfgperl@3832
Diffstat (limited to 'pod')
-rw-r--r-- | pod/perldelta.pod | 4 | ||||
-rw-r--r-- | pod/perldiag.pod | 64 |
2 files changed, 18 insertions, 50 deletions
diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 8a4c2d1d4e..624b152075 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -134,10 +134,6 @@ C<oct()>: $answer = 0b101010; printf "The answer is: %b\n", oct("0b101010"); -=head2 Too large hexadecimal, octal, and binary constants more serious - -Too large hexadecimal, octal, and binary constants now cause fatal errors. - =head2 syswrite() ease-of-use The length argument of C<syswrite()> is now optional. diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 7d27fc29f6..bffd191174 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -469,18 +469,9 @@ likely depends on its correct operation, Perl just gave up. =item Binary number > 0b11111111111111111111111111111111 non-portable -(W) The binary number you specified is larger than 2**32-1 and -therefore non-portable between systems. If you know that your code is -always going to be used only in systems that have more than 32-bit -integers (which means that Perl should be able to use such), you can -silence this warning by - - { - no warning 'unsafe'; - .... your code here ... - } - -See also L<perlport> for writing portable code. +(W) The binary number you specified is larger than 2**32-1 +(4294967295) and therefore non-portable between systems. See +L<perlport> for more on portability concerns. =item bind() on closed fd @@ -1431,18 +1422,9 @@ is now heavily deprecated. =item Hexadecimal number > 0xffffffff non-portable -(W) The hexadecimal number you specified is larger than 2**32-1 and -therefore non-portable between systems. If you know that your code is -always going to be used only in systems that have more than 32-bit -integers (which means that Perl should be able to use such), you can -silence this warning by - - { - no warning 'unsafe'; - .... your code here ... - } - -See also L<perlport> for writing portable code. +(W) The hexadecimal number you specified is larger than 2**32-1 +(4294967295) and therefore non-portable between systems. See +L<perlport> for more on portability concerns. =item Identifier too long @@ -1558,18 +1540,15 @@ known value, using trustworthy data. See L<perlsec>. =item Integer overflow in %s number -(F,X) The hexadecimal, octal or binary number you have specified -either as a literal in your code or as a scalar is too big for your -architecture. On a 32-bit architecture the largest literal hex, octal -or binary number representable without overflow is 0xFFFFFFFF, -037777777777, or 0b11111111111111111111111111111111 respectively. -Note that Perl transparently promotes decimal literals to a floating -point representation internally--subject to loss of precision errors -in subsequent operations--so this limit usually doesn't apply to -decimal literals. If the overflow is in a literal of your code, the -error is untrappable (there is no way the code could work safely in -your system), if the overflow happens in hex() or oct() the error is -trappable. +(W) The hexadecimal, octal or binary number you have specified either +as a literal in your code or as a scalar is too big for your +architecture, and has been converted to a floating point number. On a +32-bit architecture the largest hexadecimal, octal or binary number +representable without overflow is 0xFFFFFFFF, 037777777777, or +0b11111111111111111111111111111111 respectively. Note that Perl +transparently promotes all numbers to a floating point representation +internally--subject to loss of precision errors in subsequent +operations. =item Internal inconsistency in tracking vforks @@ -1996,16 +1975,9 @@ try using scientific notation (e.g. "1e6" instead of "1_000_000"). =item Octal number > 037777777777 non-portable -(W) The octal number you specified is larger than 2**32-1 and -therefore non-portable between systems. If you know that your code is -always going to be used only in systems that have more than 32-bit -integers (which means that Perl should be able to use such), you can -silence this warning by - - { - no warning 'unsafe'; - .... your code here ... - } +(W) The octal number you specified is larger than 2**32-1 (4294967295) +and therefore non-portable between systems. See L<perlport> for more +on portability concerns. See also L<perlport> for writing portable code. |