X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Porting%2Fpumpkin.pod;h=cf49121f16f49f38c98310e053d259a610136364;hb=92a3e63c3aba23d356cf70f5886c704d07f8067d;hp=1ecab878dd0a415d9ec50d3df33cc9c7d63cf3bf;hpb=2032ff041c2b56dfdcd796fd2747c38dcdc99fdc;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Porting/pumpkin.pod b/Porting/pumpkin.pod index 1ecab87..cf49121 100644 --- a/Porting/pumpkin.pod +++ b/Porting/pumpkin.pod @@ -43,7 +43,7 @@ to perl5-porters-request@perl.org . Archives of the list are held at: - http://www.rosat.mpe-garching.mpg.de/mailing-lists/perl-porters/ + http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/ =head1 How are Perl Releases Numbered? @@ -103,7 +103,7 @@ always match the regular expression: C<$1> in the pattern is always an even number for maintenance versions, and odd for developer releases. -In the past it has been observed that pumkings tend to invent new +In the past it has been observed that pumpkings tend to invent new naming conventions on the fly. If you are a pumpking, before you invent a new name for any of the three types of perl distributions, please inform the guys from the CPAN who are doing indexing and @@ -159,6 +159,8 @@ settled elsewhere. If feasible, try to keep filenames 8.3-compliant to humor those poor souls that get joy from running Perl under such dire limitations. There's a script, check83.pl, for keeping your nose 8.3-clean. +In a similar vein, do not create files or directories which differ only +in case (upper versus lower). =head2 Seek consensus on major changes @@ -590,19 +592,19 @@ to change the version number near the top of the F file. =head2 Todo -The F file contains a roughly-catgorized unordered list of -aspects of Perl that could use enhancement, features that could be -added, areas that could be cleaned up, and so on. During your term as -pumpkin-holder, you will probably address some of these issues, and -perhaps identify others which, while you decide not to address them -this time around, may be tackled in the future. Update the file -reflect the situation as it stands when you hand over the pumpkin. +The F file contains a roughly-categorized unordered +list of aspects of Perl that could use enhancement, features that could +be added, areas that could be cleaned up, and so on. During your term +as pumpkin-holder, you will probably address some of these issues, and +perhaps identify others which, while you decide not to address them this +time around, may be tackled in the future. Update the file to reflect +the situation as it stands when you hand over the pumpkin. You might like, early in your pumpkin-holding career, to see if you can find champions for partiticular issues on the to-do list: an issue owned is an issue more likely to be resolved. -There are also some more porting-specific L items later in this +There are also some more porting-specific L items later in this file. =head2 OS/2-specific updates @@ -769,6 +771,48 @@ clean up, and print warnings from the log files (-Wformat support by Robin Barker.) +=item gcc -ansi -pedantic + +Configure -Dgccansipedantic [ -Dcc=gcc ] will enable (via the cflags script, +not $Config{ccflags}) the gcc strict ANSI C flags -ansi and -pedantic for +the compilation of the core files on platforms where it knows it can +do so (like Linux, see cflags.SH for the full list), and on some +platforms only one (Solaris can do only -pedantic, not -ansi). +The flag -DPERL_GCC_PEDANTIC also gets added, since gcc does not add +any internal cpp flag to signify that -pedantic is being used, as it +does for -ansi (__STRICT_ANSI__). + +Note that the -ansi and -pedantic are enabled only for version 3 (and +later) of gcc, since even gcc version 2.95.4 finds lots of seemingly +false "value computed not used" errors from Perl. + +The -ansi and -pedantic are useful in catching at least the following +nonportable practices: + +=over 4 + +=item * + +gcc-specific extensions + +=item * + +lvalue casts + +=item * + +// C++ comments + +=item * + +enum trailing commas + +=back + +The -Dgccansipedantic should be used only when cleaning up the code, +not for production builds, since otherwise gcc cannot inline certain +things. + =back =head1 Running Purify @@ -1216,12 +1260,18 @@ a mail message from Larry: probably have been named something to do with overriding though. Since it's undocumented we could still change it... :-) -Given that it's already there, you can use it to override -distribution modules. If you do +Given that it's already there, you can use it to override distribution modules. +One way to do that is to add - sh Configure -Dccflags='-DAPPLLIB_EXP=/my/override' + ccflags="$ccflags -DAPPLLIB_EXP=\"/my/override\"" + +to your config.over file. (You have to be particularly careful to get the +double quotes in. APPLLIB_EXP must be a valid C string. It might +actually be easier to just #define it yourself in perl.c.) -then perl.c will put /my/override ahead of ARCHLIB and PRIVLIB. +Then perl.c will put /my/override ahead of ARCHLIB and PRIVLIB. Perl will +also search architecture-specific and version-specific subdirectories of +APPLLIB_EXP. =head2 Shared libperl.so location @@ -1277,21 +1327,22 @@ Anyway, all this leads to quite obscure failures that are sure to drive casual users crazy. Even experienced users will get confused :-). Upon reflection, I'd say leave libperl.so in $archlib. -=item 4. +=back + +=head2 Indentation style -Indentation style: over the years Perl has become a mishmash of +Over the years Perl has become a mishmash of various indentation styles, but the original "Larry style" can probably be restored with (GNU) indent somewhat like this: indent -kr -nce -psl -sc -More full solution would also specify a list of Perl specific types -with -TSV -TAV -THV .. -TMAGIC -TPerlIO ... but that list would be -quite ungainly. Also note that GNU indent also doesn't do aligning -of assignments, which would truly wreck the indentation in places -like sv.c:Perl_sv_upgrade(). - -=back +A more ambitious solution would also specify a list of Perl specific +types with -TSV -TAV -THV .. -TMAGIC -TPerlIO ... but that list would +be quite ungainly. Also note that GNU indent also doesn't do aligning +of consecutive assignments, which would truly wreck the layout in +places like sv.c:Perl_sv_upgrade() or sv.c:Perl_clone_using(). +Similarly nicely aligned &&s, ||s and ==s would not be respected. =head1 Upload Your Work to CPAN @@ -1507,7 +1558,7 @@ in recent config.sh files though. =head1 AUTHORS -Original author: Andy Dougherty doughera@lafcol.lafayette.edu . +Original author: Andy Dougherty doughera@lafayette.edu . Additions by Chip Salzenberg chip@perl.com and Tim Bunce Tim.Bunce@ig.co.uk .