Bigger warning on the changed behaviour of the unary ~.
Jarkko Hietaniemi [Tue, 29 Feb 2000 01:37:43 +0000 (01:37 +0000)]
p4raw-id: //depot/cfgperl@5339

pod/perldelta.pod

index f1216fe..39ac610 100644 (file)
@@ -199,6 +199,18 @@ always coerced simple scalar arguments to a typeglob, which wasn't useful
 in situations where the subroutine must distinguish between a simple
 scalar and a typeglob.  See L<perlsub/Prototypes>.
 
+=head2 On 64-bit platforms the semantics of bit operators have changed
+
+If your platform is either natively 64-bit or your Perl has been
+configured to used 64-bit integers (say C<perl -V> and see what is
+your ivsize: if it is 8, you are 64-bit) , be warned that the
+semantics of all the bitwise numeric operators (& | ^ ~ << >>) have
+been changed.  They used to be forced to be 32 bits wide, but now in
+the aforementioned platforms they are 64 bits wide.  Most dramatically
+this affects the unary ~: what used to be 32 bits wide, is now 64 bits
+wide.  If you depend on your integers being 32 bits wide, mask off the
+excess bits with C<& 0xffffffff>.
+
 =back
 
 =head2 C Source Incompatibilities