summaryrefslogtreecommitdiff
path: root/pod
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>1999-07-29 14:02:50 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1999-07-29 14:02:50 +0000
commit9e24b6e2f422a9f67d0605cdea60de0c597868f3 (patch)
treea1d7aa4afcc1f20f6f872172f9f2673776d0e2f6 /pod
parent9429f27a525401f243c383770a5f171eef0929c3 (diff)
downloadperl-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.pod4
-rw-r--r--pod/perldiag.pod64
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.