=head2 Selecting File IO mechanisms
-Previous versions of perl used the standard IO mechanisms as defined in
-stdio.h. Versions 5.003_02 and later of perl allowed alternate IO
-mechanisms via a "PerlIO" abstraction, but the stdio mechanism is still
-the default and is the only supported mechanism.
+Executive summary: in Perl 5.8 you should use the default "PerlIO"
+as the IO mechanism unless you have a good reason not to.
+
+In more detail: previous versions of perl used the standard IO
+mechanisms as defined in stdio.h. Versions 5.003_02 and later of perl
+introuced alternate IO mechanisms via a "PerlIO" abstraction, but up
+until and including Perl 5.6 stdio mechanism was still the default and
+the only supported mechanism.
Starting from Perl 5.8 the default mechanism is to use the PerlIO
abstraction, because it allows better control of I/O mechanisms,
instead of having to work with (often, work around) vendors' I/O
implementations.
-This PerlIO abstraction can be disabled either on the Configure
-command line with
+This PerlIO abstraction can be disabled (but again, unless you know
+what you are doing, should not) either on the Configure command line
+with
sh Configure -Uuseperlio
Several tests in the test suite check timing functions, such as
sleep(), and see if they return in a reasonable amount of time.
-If your system is quite busy and doesn't return quickly enough,
-these tests might fail. If possible, try running the tests again with
-the system under a lighter load. These tests include F<t/op/alarm.t>,
-F<ext/Time/HiRes/HiRes.t>, and F<lib/Benchmark.t>.
+If your system is quite busy and doesn't respond quickly enough,
+these tests might fail. If possible, try running the tests again
+with the system under a lighter load. These timing-sensitive
+and load-sensitive tests include F<t/op/alarm.t>,
+F<ext/Time/HiRes/HiRes.t>, F<lib/Benchmark.t>,
+F<lib/Memoize/t/expmod_t.t>, and F<lib/Memoize/t/speed.t>.
=item Out of memory
=head1 Coexistence with earlier versions of perl5
+Perl 5.8 is not binary compatible with earlier versions of Perl.
+In other words, you have to recompile your XS modules.
+
In general, you can usually safely upgrade from one version of Perl (e.g.
5.004_04) to another similar version (e.g. 5.004_05) without re-compiling
all of your add-on extensions. You can also safely leave the old version
Perl installation into minimal systems (for example when installing
operating systems, or in really small filesystems).
+Leaving out as many extensions as possible is an obvious way:
+especially the Encode with its big conversion tables consumes a lot of
+space. On the other hand, you cannot throw away everything, especially
+the Fcntl module is pretty essential. If you need to do network
+programming, you'll appreciate the Socket module, and so forth: it all
+depends on what do you need to do.
+
In the following we offer two different slimmed down installation
recipes. They are informative, not normative: the choice of files
depends on what you need.