behaviour that only appears in the maintenance branch, but which has
changed in the development version.)
-To report a bug in Perl, use the program I<perlbug> which comes with
+To report a bug in Perl, use the program L<perlbug> which comes with
Perl (if you can't get Perl to work, send mail to the address
I<perlbug@perl.org> or I<perlbug@perl.com>). Reporting bugs through
I<perlbug> feeds into the automated bug-tracking system, access to
dist/ is for dual-life modules, where the blead source is
canonical.
+For some dual-life modules it has not been discussed if the CPAN version or the
+blead source is canonical. Until that is done, those modules should be in
+F<cpan/>.
+
=item Tests
There are tests for nearly all the modules, built-ins and major bits
C<runops_standard> function in F<run.c>; more specifically, it's done by
these three innocent looking lines:
- while ((PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX))) {
+ while ((PL_op = PL_op->op_ppaddr(aTHX))) {
PERL_ASYNC_CHECK();
}
them out), but it basically works that way. Everything else lives in
F<t/>.
+Testing of warning messages is often separately done by using expect scripts in
+F<t/lib/warnings>. This is because much of the setup for them is already done
+for you.
+
If you add a new test directory under F<t/>, it is imperative that you
add that directory to F<t/HARNESS> and F<t/TEST>.
=head2 Profiling
-Depending on your platform there are various of profiling Perl.
+Depending on your platform there are various ways of profiling Perl.
There are two commonly used techniques of profiling executables:
I<statistical time-sampling> and I<basic-block counting>.
quick hint:
- $ sh Configure -des -Doptimize='-g' -Accflags='-fprofile-arcs -ftest-coverage' \
+ $ sh Configure -des -Dusedevel -Doptimize='-g' \
+ -Accflags='-fprofile-arcs -ftest-coverage' \
-Aldflags='-fprofile-arcs -ftest-coverage' && make perl.gcov
$ rm -f regexec.c.gcov regexec.gcda
$ ./perl.gcov