X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlhack.pod;h=01692806ad2acb03f884731bda8b1c90d98e968e;hb=a5365663f59d38ce50a53f9b46b25daa36d5ab17;hp=8c5d213fb03c70fa55e16170ff4eaf40a3fb9748;hpb=7d7d56956ffccd7e55408c3bd48a31d5bf524b49;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlhack.pod b/pod/perlhack.pod index 8c5d213..0169280 100644 --- a/pod/perlhack.pod +++ b/pod/perlhack.pod @@ -480,63 +480,23 @@ for reference. =back -=head2 Perlbug remote interface - -=over 4 - -There are three (3) remote administrative interfaces for modifying bug -status, category, etc. In all cases an admin must be first registered -with the Perlbug database by sending an email request to -richard@perl.org or bugmongers@perl.org. - -The main requirement is the willingness to classify, (with the -emphasis on closing where possible :), outstanding bugs. Further -explanation can be garnered from the web at http://bugs.perl.org/ , or -by asking on the admin mailing list at: bugmongers@perl.org - -For more info on the web see - - http://bugs.perl.org/perlbug.cgi?req=spec - -=item 1 http://bugs.perl.org - -Login via the web, (remove B if only browsing), where interested -Cc's, tests, patches and change-ids, etc. may be assigned. - - http://bugs.perl.org/admin/index.html - - -=item 2 bugdb@perl.org - -Where the subject line is used for commands: - - To: bugdb@perl.org - Subject: -a close bugid1 bugid2 aix install - - To: bugdb@perl.org - Subject: -h +=head2 Perlbug administration +There is a single remote administrative interface for modifying bug status, +category, open issues etc. using the B I system, maintained +by I. Become an administrator, and close any bugs you can get +your sticky mitts on: -=item 3 commands_and_bugdids@bugs.perl.org + http://rt.perl.org -Where the address itself is the source for the commands: +The bugtracker mechanism for B bugs in particular is at: - To: close_bugid1_bugid2_aix@bugs.perl.org + http://bugs6.perl.org/perlbug - To: help@bugs.perl.org +To email the bug system administrators: + "perlbug-admin" -=item notes, patches, tests - -For patches and tests, the message body is assigned to the appropriate -bugs and forwarded to p5p for their attention. - - To: test__aix_close@bugs.perl.org - Subject: this is a test for the (now closed) aix bug - - Test is the body of the mail - -=back =head2 Submitting patches @@ -1256,6 +1216,14 @@ important ones are explained in L as well. Pay special attention to L for information on the C<[pad]THX_?> macros. +=head2 The .i Targets + +You can expand the macros in a F file by saying + + make foo.i + +which will expand the macros using cpp. Don't be scared by the results. + =head2 Poking at Perl To really poke around with Perl, you'll probably want to build Perl for @@ -1349,8 +1317,11 @@ blessing when stepping through miles of source code. =item print Execute the given C code and print its results. B: Perl makes -heavy use of macros, and F is not aware of macros. You'll have to -substitute them yourself. So, for instance, you can't say +heavy use of macros, and F does not necessarily support macros +(see later L). You'll have to substitute them +yourself, or to invoke cpp on the source code files +(see L) +So, for instance, you can't say print SvPV_nolen(sv) @@ -1360,7 +1331,15 @@ but you have to say You may find it helpful to have a "macro dictionary", which you can produce by saying C. Even then, F won't -recursively apply the macros for you. +recursively apply those macros for you. + +=head2 gdb macro support + +Recent versions of F have fairly good macro support, but +in order to use it you'll need to compile perl with macro definitions +included in the debugging information. Using F version 3.1, this +means configuring with C<-Doptimize=-g3>. Other compilers might use a +different switch (if they support debugging macros at all). =back @@ -1759,6 +1738,18 @@ modules hanging around in here that need to be moved out into F. Testing features of how perl actually runs, including exit codes and handling of PERL* environment variables. +=item F + +Tests for the core support of Unicode. + +=item F + +Windows-specific tests. + +=item F + +A test suite for the s2p converter. + =back The core uses the same testing style as the rest of Perl, a simple @@ -1835,7 +1826,7 @@ F. =item test.torture torturetest Run all the usual tests and some extra tests. As of Perl 5.8.0 the -only extra tests are Abigail's JAPHs, t/japh/abigail.t. +only extra tests are Abigail's JAPHs, F. You can also run the torture test with F by giving C<-torture> argument to F. @@ -1844,6 +1835,59 @@ C<-torture> argument to F. Run all the tests with -Mutf8. Not all tests will succeed. +=item test_harness + +Run the test suite with the F controlling program, instead of +F. F is more sophisticated, and uses the +L module, thus using this test target supposes that perl +mostly works. The main advantage for our purposes is that it prints a +detailed summary of failed tests at the end. Also, unlike F, it +doesn't redirect stderr to stdout. + +=back + +=head2 Running tests by hand + +You can run part of the test suite by hand by using one the following +commands from the F directory : + + ./perl -I../lib TEST list-of-.t-files + +or + + ./perl -I../lib harness list-of-.t-files + +(if you don't specify test scripts, the whole test suite will be run.) + +You can run an individual test by a command similar to + + ./perl -I../lib patho/to/foo.t + +except that the harnesses set up some environment variables that may +affect the execution of the test : + +=over 4 + +=item PERL_CORE=1 + +indicates that we're running this test part of the perl core test suite. +This is useful for modules that have a dual life on CPAN. + +=item PERL_DESTRUCT_LEVEL=2 + +is set to 2 if it isn't set already (see L) + +=item PERL + +(used only by F) if set, overrides the path to the perl executable +that should be used to run the tests (the default being F<./perl>). + +=item PERL_SKIP_TTY_TEST + +if set, tells to skip the tests that need a terminal. It's actually set +automatically by the Makefile, but can also be forced artificially by +running 'make test_notty'. + =back =head1 EXTERNAL TOOLS FOR DEBUGGING PERL @@ -2064,7 +2108,14 @@ For example, for "third-degreed" Perl: (Note: the mod_perl apache module uses also this environment variable for its own purposes and extended its semantics. Refer to the mod_perl -documentation for more information.) +documentation for more information. Also, spawned threads do the +equivalent of setting this variable to the value 1.) + +If, at the end of a run you get the message I, you can +recompile with C<-DDEBUG_LEAKING_SCALARS>, which will cause +the addresses of all those leaked SVs to be dumped; it also converts +C from a macro into a real function, so you can use your +favourite debugger to discover where those pesky SVs were allocated. =head2 Profiling