model (available internally since 5.6, and as a user-level module since 5.8) is
called interpreter-based implementation (ithreads), with one interpreter per
thread, and explicit sharing of data. The (deprecated) 5.005 version
-(5005threads) has been removed for release 5.10.
+(5005threads) was removed for release 5.10.
The 'threads' module is for use with the ithreads implementation. The
'Thread' module emulates the old 5005threads interface on top of the current
=item Directories for the perl distribution
-By default, Configure will use the following directories for 5.10.0.
+By default, Configure will use the following directories for 5.11.1.
$version is the full perl version number, including subversion, e.g.
-5.10.0 or 5.9.5, and $archname is a string like sun4-sunos,
+5.11.1 or 5.9.5, and $archname is a string like sun4-sunos,
determined by Configure. The full definitions of all Configure
variables are in the file Porting/Glossary.
If you are using a shared libperl, see the warnings about multiple
versions of perl under L<Building a shared Perl library>.
+Note that a perl built with -DDEBUGGING will be bigger and will run more
+slowly than a standard perl.
+
+=head2 DTrace support
+
+On platforms where DTrace is available, it may be enabled by
+using the -Dusedtrace option to Configure. DTrace probes are available for
+subroutine entry (sub-entry) and subroutine exit (sub-exit). Here's a
+simple D script that uses them:
+
+ perl$target:::sub-entry, perl$target:::sub-return {
+ printf("%s %s (%s:%d)\n", probename == "sub-entry" ? "->" : "<-",
+ copyinstr(arg0), copyinstr(arg1), arg2);
+ }
+
+
=head2 Extensions
Perl ships with a number of standard extensions. These are contained
=head2 suidperl
-suidperl is an optional component, which is normally neither built
-nor installed by default. From perlfaq1:
-
- On some systems, setuid and setgid scripts (scripts written
- in the C shell, Bourne shell, or Perl, for example, with the
- set user or group ID permissions enabled) are insecure due to
- a race condition in the kernel. For those systems, Perl versions
- 5 and 4 attempt to work around this vulnerability with an optional
- component, a special program named suidperl, also known as sperl.
- This program attempts to emulate the set-user-ID and set-group-ID
- features of the kernel.
-
-Because of the buggy history of suidperl, and the difficulty
-of properly security auditing as large and complex piece of
-software as Perl, we cannot recommend using suidperl and the feature
-should be considered deprecated.
-
-Instead, use a tool specifically designed to handle changes in
-privileges, such as B<sudo>.
+suidperl was an optional component of earlier releases of perl. It is no
+longer available. Instead, use a tool specifically designed to handle
+changes in privileges, such as B<sudo>.
=head1 make depend
at Perl startup.
+=item other environment variables
+
+Configure does not check for environment variables that can sometimes
+have a major influence on how perl is built or tested. For example,
+OBJECT_MODE on AIX determines the way the compiler and linker deal with
+their objects, but this is a variable that only influences build-time
+behaviour, and should not affect the perl scripts that are eventually
+executed by the perl binary. Other variables, like PERL_UNICODE,
+PERL5LIB, and PERL5OPT will influence the behaviour of the test suite.
+So if you are getting strange test failures, you may want to try
+retesting with the various PERL variables unset.
+
=item varargs
If you get varargs problems with gcc, be sure that gcc is installed
=head1 Coexistence with earlier versions of perl 5
-Perl 5.10 is not binary compatible with earlier versions of Perl.
+Perl 5.11 is not binary compatible with earlier versions of Perl.
In other words, you will have to recompile your XS modules.
In general, you can usually safely upgrade from one version of Perl (e.g.
libraries after 5.6.0, but not for executables. TODO?) One convenient
way to do this is by using a separate prefix for each version, such as
- sh Configure -Dprefix=/opt/perl5.10.0
+ sh Configure -Dprefix=/opt/perl5.11.1
-and adding /opt/perl5.10.0/bin to the shell PATH variable. Such users
+and adding /opt/perl5.11.1/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.
subversions may not have all the compatibility wrinkles ironed out
yet.
-=head2 Upgrading from 5.8.x or earlier
+=head2 Upgrading from 5.11.0 or earlier
-B<Perl 5.10.0 is binary incompatible with Perl 5.8.x and any earlier
+B<Perl 5.11.1 is binary incompatible with Perl 5.11.0 and any earlier
Perl release.> Perl modules having binary parts
(meaning that a C compiler is used) will have to be recompiled to be
-used with 5.10.0. If you find you do need to rebuild an extension with
-5.10.0, you may safely do so without disturbing the older
+used with 5.11.1. If you find you do need to rebuild an extension with
+5.11.1, you may safely do so without disturbing the older
installations. (See L<"Coexistence with earlier versions of perl 5">
above.)