=head1 This Week on perl5-porters - 23-29 March 2008 I<"Anyway, a lot of these design changes work together to produce a smoother result. I confess I haven't thought much about whether they could be borrowed piecemeal; I have a hard enough time keeping one fantasy language in my head at a time."> -- Larry Wall, on the differences in exception handling between Perl 5 and Perl 6. =head1 Topics of Interest =head2 Perl and CPAN distributors The thread wound up this week with Gabor Szabo asking for someone to summarise the main points made in the discussion, for inclusion on the Perl5 wiki. The idea is to make life easier for people who package perl in operating system distributions, by explaining what they may, should and must do. Nicholas Clark noted that starting from 5.11, the infrastructure is nearly all there for the perl5-porters to remove modules from the core while allowing distributors and local sites to continue to keep them, in a graceful manner. modular ecology http://xrl.us/biu9g =head2 Perl @ 33536 The 5.8.9 snapshot is having problems on Vista. Jan Dubois saw F failing but wasn't able to track down why. In the meantime, he released C 0.35 on CPAN. This will be folded into 5.8.9 to upgrade the C therein from its current development status. http://xrl.us/biu9i =head2 local C<$@> has an unwanted side effect Larry Wall gave the porters a run down on the current thinking regarding exception handling in Perl 6. Most of the pieces are in place, except for a hierarchy of exception object types, as @Larry are waiting to see the various implementations make of it all. there is no try http://xrl.us/biu9k http://xrl.us/biu9n =head2 pod wiki? Reini Urban wanted to write in POD for the Perl 5 wiki (that uses SocialText as a back-end). Michael G. Schwern explained that the existing plug-in/markup-escape infrastructure was up to the job, and sketched out how one might go about doing it. Reini was sufficiently motivated to take a stab at setting it up. Tels thought that it was silly to write Yet Another Pod-HTML convertor, and Michael thought that C should be close. Aristotle Pagaltzis thought that C wasn't too bad either. http://xrl.us/biu9p =head2 C problem Reini has started to write a document about the guts of the op-tree. He started with the most trivial of op-codes, the one that performs a left bitshift (C<<< << >>>). Unfortunately he became side-tracked over the way signed and unsigned integers are used depending on whether the C pragma is in force. Yitzchak Scott-Thoennes explained the reason why things were why they are. hard left turn right http://xrl.us/biu9r =head2 Append "64" suffix to some of the installed files Sérgio Durigan Júnior continued his quest to get 32- and 64-bit perls coexisting peacefully on his machine. Abigail showed how many different perls could live in the same directory tree, sharing common pure-Perl modules and keeping binary-incompatible files separate. Dominic Dunlop remarked that Apple had managed to do just that already, but unfortunately no-one outside Apple had managed to replicate what they had done. Nicholas Clark mentioned that Edward Moy had some raw patch files to do just that, but didn't have the time to tidy them up (nor did Nicholas). Sounds like a nice self-contained task... Other discussion in the thread talked about how perl is installed on HP-UX. more bits http://xrl.us/biu9t =head2 Too late for -Co Alberto Simőes wanted to know how he could make some old scripts work with 5.10, since they have C<-Co0> on the shebang line. Aristotle Pagaltzis recommended C<< use open OUT => ':utf8', ':std' >> as a suitable replacement. Rafael Garcia-Suarez explained that C<-C> had received this treatment as a consequence of a bug report, and that there was a TODO item recorded that explained what needed to be done to have the old behaviour reinstated (this time, without bugs). get it right http://rt.perl.org/rt3/Public/Bug/Display.html?id=34087 http://xrl.us/biu9v =head2 Making F more robust Jan Dubois had been exploring approaches to make C, since depending on whether an executable F anything, as opposed to a specific F, exists in the current directory or not, you can wind up running something else that the program you thought you were going to run. Spaces in path names add to the fun. With a series of four fall-through tests, Jan thought he had all the bases covered, and defied anyone to come up with a scenario that could get past the last case and hit the "Can't find full path" error message. Jan also hoped that there were no longer any serious Perl users stuck on Win9X. going batty http://xrl.us/biu9x =head1 Patches of Interest =head2 Too much F consting Nicholas Clark undid the final batch of consting from last week that Steven Schubiger had applied to F. What is more, it was the second time he had had to roll back the same change. Unfazed, Stephen delivered the fourteenth patch in the series. Andy Lester explained that he had considered doing what Steven is currently doing, when he was on his consting quest, but had considered that the added value wasn't worth the price. http://xrl.us/biu9z =head2 Borg F Rafael Garcia-Suarez edited F to recommend F in its place, and ask Max "Corion" Maischein to release a new version of C to synchronise CPAN with blead. Some minor problems cropped up that Jerry D. Hedden tidied up. debased http://xrl.us/biu93 =head2 F and F fixes John E. Malmberg delivered some urgent patches to get VMS to build out of the box. H.Merijn Brand handled part of the patch through the brand new metaconfig infrastructure. Unfortunately this caused other platforms to complain unnecessarily. H.Merijn wasn't sure if he was doing something wrong, or whether the approach cannot work. http://xrl.us/biu95 =head2 Documentation fix for perlfunc/shutdown Paul Fenwick documented the return values of C (whose existence I had so far managed to ignore). Nicholas Clark tried to improve Paul's prose and Paul came back with yet a better version. Unapplied. and turn the lights out http://xrl.us/biu97 =head2 Solaris build warnings Jerry D. Hedden found some warnings when building blead on Solaris. Andy Dougherty traced this to arrival of the C typedef and proposed a minimal patch that cast things together correctly. Or at least silently. Unapplied. http://xrl.us/biu99 =head2 Revising F Leon Brocard updated the documentation to C to take into account the changes to F, and some notes on using C. Applied after a resend. http://xrl.us/bivab =head2 Do not use C to prevent cleaning of C and C As part of his ongoing Kurila experiment (a fork of the perl5 codebase), Gerard Goossen traced down some problems that exist in the Perl array implementation. Nicholas Clark used the information to provoke an assertion failure when running a C. He applied Gerard's change, and suggested that there are still some things that need to be sorted out. http://xrl.us/bivad =head1 New and old bugs from RT =head2 C double free with threads (#36653) Steve Peters took another look at this problem from 2005, and discovered that while 5.8.8 ran without error, blead panicked with a free from wrong pool. ungood http://xrl.us/bivaf =head2 Segfault on C<@ISA> push after symbol table delete (#52074) Peter Scott posted a one-liner to make blead dump core. Nicholas Clark noted that since 5.8.8 is immune, it must be a problem in the new MRO code. nice self-contained task http://xrl.us/bivah =head2 C generates a segfault with Cyrillic characters when the utf8 flag is turned on (#52104) Frédéric Buclin filed a ticket that was turned arose in the development of Bugzilla (heh). Nicholas reduced it to a simple matter of a regexp using C inside a substitution, and tracing back, realised that the bug had been lying in wait, ever since it checked in, back in 2000. It was then a simple matter to fix it in change #33580. As a bonus, this should make it into 5.8.9-to-be. Frédéric wondered what he could do in the meantime. Nicholas suggested one approach and Robin Barker another. Aristotle Pagaltzis, who wrote the current implementation of C (and built it for speed), suggested downgrading to a previous version. that wraps it up http://xrl.us/bivaj =head2 C hangs on C<%Z> under cygwin (#52126) Eric Roode reported a bug in 5.8.8 that had previously been reported, and fixed, with change #29350. Nicholas Clark announced that said change was included in 5.8.9. Steve Peters showed how changing the final argument to C prevented the process from hanging in the meantime. tis a matter of time http://xrl.us/bivam =head2 Build error on AIX (#52188) Shanthi Muthu Srinivasan was unable to build 5.8.8 on AIX, the process blowing up when trying to link C. Dominic Dunlop suggested that it could be due to running out of disk space, and that Activestate have an Activeperl distribution for AIX that may be worth a try. H.Merijn Brand suggested a special incantation for 64-bit AIX. No further information was forthcoming. http://xrl.us/bivao =head2 XS error in C (#52216) Ed Sanman traced down a problem of console misbehaviour to what is probably a case of bad cut'n'paste. Not confirmed. watch your stack http://xrl.us/bivaq =head2 Perl5 Bug Summary 294 new + 1509 open = 1803 (+8) http://xrl.us/bivas http://rt.perl.org/rt3/NoAuth/perl5/Overview.html =head1 New Core Modules =over 4 =item DB_File 1.817 Paul Marquess synchronised blead and CPAN. http://xrl.us/bivau =back =head1 This is the BBC =over 4 =item Regexp-Optimizer 0.15 Andreas König discovered, somewhat belatedly, that change #28868 broke Dan Kogai's C package. http://xrl.us/bivaw =back =head1 In Brief Nicholas Clark applied Dominic Dunlop's patches to tidy up B. http://xrl.us/bivay Vincent Pit spotted an B> and offered a patch, so Rafael applied it. wild cut'n'paste http://xrl.us/biva2 Niko Tyni spotted a nasty B> where a hash key was named "upd" instead of "udp", and also offered a patch. H.Merijn applied the patch. I wonder if we could have tested for that. nice catch http://xrl.us/biva4 chromatic tweaked the usage B>. Applied. being consistent http://xrl.us/biva6 Gerard Goossen also rejigged the B, thus fixing a pile of tests that used to fail when run madly. http://xrl.us/bivbc Yitzchak Scott-Thoennes thinks that B in the core> would be a marvellous idea. http://xrl.us/bivbe Nicholas Clark wrote some code to B test goofs> and H.Merijn Brand folded it into the configuration infrastructure. http://xrl.us/bivbg David Cantrell hopes that Dave Mitchell's B includes Jarkko Hietaniemi's patch for C. 20 houses down from the beast http://xrl.us/bivbi The B thread attracted more discussion this week. http://xrl.us/bivbk Sérgio Durigan Júnior pinged the list about his B. http://xrl.us/bivbn Jim Cromie had B to do, something about separate debug info. didn't set the world on fire http://xrl.us/bivbp Lincoln Stein absorbed a B typo difference between blead and CPAN>. http://xrl.us/bivbr Peter Scott took a bash at B, offering a patch to reset the iterator in certain circumstances. Yitzchak showed how such a change would lead to even harder to debug problems. an oldie but a goodie http://xrl.us/bivbt It would appear that change #26980, regarding an improvement to C, would be the reason for B. http://xrl.us/bivbv =head1 TODO of the week A task that need a little C knowledge =head2 Weed out needless PERL_UNUSED_ARG The C code uses the macro C to stop compilers warning about unused arguments. Often the arguments can't be removed, as there is an external constraint that determines the prototype of the function, so this approach is valid. However, there are some cases where C could be removed. Specifically =over 4 =item * The prototypes of (nearly all) static functions can be changed =item * Unused arguments generated by short cut macros are wasteful - the short cut macro used can be changed. =back =head2 Last week's summary Actually, two weeks ago. Sam Vilain explained how one could go about cherry-picking patches with git and promised to create a new version of the repository in UTF-8, so that people with non-Latin-1 names may be represented faithfully. (Hi Slaven!) In mail to the list, I had complained about "foo" being rendered as ``foo'' in the summaries. It turns out that this is because at some point I switched my POD-to-HTML conversion from blead's C to that of maint. It turns out that lots of bugfixes went into the 5.10 release of C, but as the module is not dual-lifed, it is difficult to upgrade older perls. So I volunteered to take care of dual-lifing it. Look for 1.09_01 on a CPAN mirror near you soon. This Week on perl5-porters - 9-15 March 2008 http://xrl.us/bik5f This Week on perl5-porters - 16-22 March 2008 http://xrl.us/bivbx =head2 About this summary This summary was written by David Landgren. Weekly summaries are published on F and posted on a mailing list, (subscription: F). The archive is at F. Corrections and comments are welcome. If you found this summary useful, please consider contributing to the Perl Foundation to help support the development of Perl.