"PS: Hi, guys. Been a while. How you been?" -- Chip Salzenberg, back on the chain gang.
David Golden made good on his promise to write a better synopsis for version.pm to help steer people out of trouble when dealing with version numbers and their comparisons.
Michael G. Schwern pointed out a couple of places where things weren't locked down, but said that he thought David's take was much clearer. But as usual in matters of versioning, counter examples popped up to muddy the waters.
http://xrl.us/oxqwy
[:upper:]
match title case? Karl Williamson read the documentation and saw that [:upper:]
should
match title case, except that it doesn't, and an undocumented \p{IsTitle}
does. What to do?
Tom Christiansen noted that there is still a lot of POSIXy stuff that Perl doesn't do, but that part of the reason for that is that it's full of subtlety and traps for the unwary. He would really like to see a decent collation infrastructure in Perl, but Jarkko Hietaniemi said that the issues are insanely difficult to resolve.
http://xrl.us/oxqw2
Rainer Tammer sent in the information he had gleaned from building what will be 5.8.9 on AIX 5.3. He wondered whether it was worth the effort to continue to deal with 5.1 since it is no longer supported. H.Merijn Brand explained that the porters have a long traditional of continuing to support Perl on orphaned architectures; all that's really needed is shell access.
H.Merijn and Andy Dougherty offered some suggestions and insights to help Rainer move forward.
http://xrl.us/oxqw4
In a 64-bit build, Rainer had exactly one failure in lib/ExtUtils/t/Embed.t.
http://xrl.us/oxqw6
$Config{archname}
on AMD64 Windows Sisyphus had trouble keeping track of the differences between 32-bit and 64-bit builds on his Vista box. Jan Dubois and Steve Hay provided the vital clues to help him figure out what he should be doing.
http://xrl.us/oxqw8
Nicholas Clark added a paragraph to perl589delta explaining that this release (perl 5.8.9) was likely to be the last of the 5.8 series.
Jan Dubois pointed out that 5.10.0 has a "testing" feel to it, to which Dave Mitchell stated that his plan was to have 5.10.1 out by the end of the year as well.
Matt S. Trout mentioned that he had found that users of DBIx::Class
do pay attention to EXPERIMENTAL labels, and don't mind as much when
things break. But he'd love to figure out how to get them to take development
snapshots for a spin on a regular basis.
this is the end my friend http://xrl.us/oxqxa
PREFIX
to INSTALL_BASE
in perlfaq8 and perlmodinstall Michael G. Schwern noticed a dead meme still doing the round, on stackoverflow.com.
So went through the documentation and excised PREFIX
and replaced it with
INSTALL_BASE
, which is the officially anointed new way of installing modules.
http://xrl.us/oxqxc
That reminded John Siracusa about the problem of sequestered perl installs.
http://xrl.us/oxqxe
Erwan Lemonnier asked for some general syntax advice on implementing
Python-style function decorators to Perl. Michael G. Schwern pointed
him at Method::Signatures
and subroutine attributes.
Matt S. Trout mentioned a secret IRC channel and mailing list where meddling with syntax takes place.
http://xrl.us/oxqxg
The recent tweaks to constant/mutable SV pointers caused Tk to fail (Tk being the poster child for unexpected consequences from low-level changes). Marcus Holland-Moritz tweaked thing around to get Tk passing again.
http://xrl.us/oxqxi
Karl Williamson had some very detailed, precise questions to ask regarding regcomp.c, from which we can conclude that Karl already knows more about the regular expression than 94% of all Perl 5 Porters. Yves Orton provided the answers and saw that there was a bug that he needed to fix.
http://xrl.us/oxqxk
Marcus Holland-Moritz uncovered a smoke failure regarding the recent bug fixes for leaks in PerlIO layers.
Steve Peters confirmed the failure and reverted the change. For Goro, it's back to the drawing board.
http://xrl.us/oxqxn
Hugo van der Sanden picked up the gauntlet thrown down by Michael G. Schwern regarding the weird results with printf formats, traced it down through a dense thicket of #ifdefs, and proposed a patch to tidy it up.
A long discussion about printf format specifiers and error messages ensued.
http://xrl.us/oxqxp
Yves Orton kicked of a request for comments regarding the rewrite/revamp of character classes and the breakage that has crept in since Unicode. He received many comments.
http://xrl.us/oxqxr
Dave Mitchell wanted to gauge the interest in adding some metadata for dual-lifed modules, to track whether changes to blead should be pushed upstream to the maintainer first, or whether they were happy to fold changes back at their own speed. Those who replied were in favour.
Steffen Müller patched all that was necessary in order to implement the idea.
http://xrl.us/oxqxt
Michael G. Schwern reported a failure with Clone
, that Marcus
explained was due to the slightly naughty use of an lvalue macro.
But he fixed things anyway.
http://xrl.us/oxqxv
Here's a biggie for the bored. This task needs C knowledge, and knowledge of how the interpreter works, or a willingness to learn.
Tail-calls present an opportunity for broadly applicable optimization;
anywhere that return foo(...)
is called, the outer return can
be replaced by a goto, and foo will return directly to the outer
caller, saving (conservatively) 25% of perl's call&return cost, which
is relatively higher than in C. The scheme language is known to do
this heavily. B::Concise provides good insight into where this
optimization is possible, ie anywhere entersub,leavesub op-sequence
occurs.
perl -MO=Concise,-exec,a,b,-main -e 'sub a{ 1 }; sub b {a()}; b(2)'
Bottom line on this is probably a new pp_tailcall function which combines the code in pp_entersub, pp_leavesub. This should probably be done 1st in XS, and using B::Generate to patch the new OP into the optrees.
pod2text
without a package or object Jari Aalto had a problem using pod2text
in 5.10 and offered a patch
to reinstate the previous behaviour.
Michael G. Schwern had a closer look at what was going on and concluded
that the real problem was the fact that Pod::Text
was using
Pod::Simple
incorrectly. He also pointed out that pod2text
as a
function has been deprecated for nearly half of Perl 5's lifetime.
http://xrl.us/oxqxx
Marcus Holland-Moritz offered a couple of patches to sort out the problems that have been observed recently with respect to determining the availability of NDBM. He and H.Merijn Brand had everything settled down by the end of the week.
http://xrl.us/oxqxz
Nicholas Clark is busy wrapping up 5.8.9, and he noted the fact that
5.8.8 shipped with threads
1.07, but 5.8.9 will ship with 1.71.
An amazing amount of work was done, mostly by Jerry D. Hedden, and
Nicholas wanted to know if it was possible to summarise the main
changes in three or fours points.
Jerry responded with a patch that contained what he thought were the most important improvements, which Nicholas applied with thanks.
http://xrl.us/oxqx3
B::Xref
seems to be broken (#18306) Steve Peters applied a patch from Renée Bäcker, thus closing the oldest bug closed this week.
ding dong the bug is dead http://xrl.us/oxqx5
Cwd::cwd
(#38628) Steve was able to close this ticket as well, since Jerry D. Hedden confirmed that its patches have been applied to blead, 5.10 and 5.8.
second verse same as the first http://xrl.us/oxqx7
Steve said this bug was resolved as well, but Mark Overmeer thought that documenting sub-optimal behaviour was not the same improving the behaviour.
http://xrl.us/oxqx9
Marcus Holland-Moritz suggests that this has been fixed by change #34776 and that bug #48004 is something else altogether (a question of maps within maps not freeing intermediate temporaries and thus consuming 300Mb when 9Mb should suffice).
http://xrl.us/oxqyb
Steve Peters cleared up the question of not all parts of a patch being applied.
http://xrl.us/oxqyd
Back in June, Steve Peters said that he thought fixes applied to h2xs
in the meantime should have resolved the problems encountered in the bug
report. Jeremy Ratcliffe replied this week, saying that only one bug
had been fixed in 5.10, all the others remained.
http://blogs.sun.com/akolb/entry/pitfals_of_the_perl_xs http://xrl.us/oxqyf
Renée Bäcker suggested a change to how strings with a leading minus character are interpreted in the presence of a unary minus.
but the patch has whitespace issues http://xrl.us/oxqyh
On FreeBSD (and possibly other Unix variants), you cannot build Perl if the directory containing your home directory does not have the read bit set (in order to prevent you from snooping the names of the other accounts in a shared environment -- which seems pretty dumb if /etc/passwd is readable, but who am I to argue with an ISP?)
http://xrl.us/oxqyj
PerlIO::via
leaks memory at a high rate (#59268) Marcus Holland-Moritz resolved this problem to his satisfaction. If it
summons no black smoke, then a CPAN release of PerlIO::via
will fix
older Perls as well.
http://xrl.us/oxqym
\N{U+...}
doesn't match for ... > 256 (#59328) Karl Williamson dashed off a quick patch for this, and Yves Orton applied it.
http://xrl.us/oxqyo
Rafaël Garcia-Suarez replied to Yves Orton's comment from last week where he suggested that octal escapes in regular expression be outlawed. He agreed that they should be put on board the deprecation train, but could be retained inside character classes. He also noted some marvellous inconsistencies in error messages.
Glenn Linderman suggested stealing Python's OoNNN octal notation.
It will take considerable effort on the part of the porters to convince
Tom Christiansen of the need to deprecate octal in regular expressions.
His main argument is that today, the \g
escape can be used to
disambiguate backreferences from octal. Chip Salzenberg waltzed in to
say that he threw his lot in with Tom.
Undaunted, Glenn replied that there is a definite problem in that
certain octal numbers may not be expressed in a pattern, depending
on the number of backreferences. And when patterns are created by
qr//
composition, which was Yves Orton's point, this may not
even be evident by casual inspection).
Tom subsequently posed to Andrew Hume, one of the original authors along with Ken Thompson and Dennis Ritchie, of C, Unix and regular expression, the question of how they dealt with the octal notation backreference ambiguity at the very beginning. And provided a whole pile of links for people who want to know more about the history of the matter.
http://xrl.us/oxqyq
Andreas König reported on a number of 64-bit perls out in the wild that consider some ferociously large numbers that end in 89.2 being larger than the same number ending in 90. Appending a .0 to the latter makes things work, but is considered distasteful.
http://xrl.us/oxqys
Shlomi Fish showed how an s///
expression containing a particular
UTF-8 character could fall into an endless loop.
http://xrl.us/oxqyu http://xrl.us/oxqyw
Someone named Adam reported a bug that was introduced at around the time that Dave Mitchell derecursified the regular expression engine. Yves Orton took a crack at fixing it and Dave thought his solution was fine.
http://xrl.us/oxqyy
local $SIG{FOO} = sub {...}
sets signal handler to SIG_DFL (#60360) Ian Goodacre posted a problem about localising signal handlers, and the fact that the default handler is loaded transiently in the switch from the old handler to the new.
Chip Salzenberg brought the house down with an awesome patch to solve the problem, which he thought would probably fix up some sub-optimal behaviour that has probably been around ever since 5.000.
Amid the general applause, Marcus Holland-Moritz expressed concern Chip's patch alters the signature of a public API. Chip took Marcus's concerns on board and wanted to know what the current policy was regarding the modification of a public call.
In a side note, Chip noted why companies like IBM et al invest on Linux but not FreeBSD, in a sub-thread relating to how difficult it is to get companies interested in supporting Perl.
Chip came back afterwards with a second iteration of the patch that Marcus applied with a minor tweak or two.
http://xrl.us/oxqy2
-Dusethreads
(#60374) Alex Hunsaker filed a bug regarding a problem with custom sort routines in a Safe compartment on a threaded perl. He mentioned that Andrew Gierth had tracked the problem down to a difference in the implementation of stashes. In a non-threaded perl, a cop points to the stash, but in a threaded-perl a level of indirection is introduced and it points to the name of the stash.
http://xrl.us/oxqy4
pos()
does not get stored for tainted variables (#60378) Renée Bäcker, who appears to have memorised the entire set of unresolved bugs in the RT queue, was quick to point out that the person submitting this bug submitted the same bug about four years ago as bug #27344.
but it's still a bug http://xrl.us/oxqy6
1332 (+7 -20) http://xrl.us/oxqy8 http://rt.perl.org/rt3/NoAuth/perl5/Overview.html
Tom Christiansen wondered about strange permissions
on files, such
as executable bits of files that would never be executed.
http://xrl.us/oxqze
He'd also like to see a useful ctags
target in Makefile , which
would probably require some Configure probes.
http://xrl.us/oxqzg
Joshua Hobbit wondered whether replacing Time::Local
by Time::Y2038
(that is, a notorious bug) was particularly wise in terms of names.
http://xrl.us/oxqzi
Jerry D. Hedden saw that change #34653 breaks DBM functionality, but Marcus was quick to make a change that he thought would repair it.
http://xrl.us/oxqzk
Yves Orton added some files to .gitignore .
http://xrl.us/oxqzn
PerlIO resource leaks on open()
and then :pop in :unix and :stdio
(bug #56644). Leaks no longer, thanks to GFUJI's patches, applied
by Steve Peters.
http://xrl.us/oxqzp
And another: ungetc()
to :scalar might cause problems (bug #57322).
I suspect Steve went through Renée Bäcker's list of bug reports
containing patches.
http://xrl.us/oxqzr
John E. Malmberg began to get POSIX exit mode working/tested on VMS. Applied by Craig A. Berry.
http://xrl.us/oxqzt
Karl Williamson wanted to use charnames in Test::More
like
tests, and was told to use qr//
to minimise the pain.
http://xrl.us/oxqzv
And File::Find
(bug #57926)
http://xrl.us/oxqzx
This Week on perl5-porters - 20-26 October 2008 http://xrl.us/oxqzz
This summary was written by David Landgren.
Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, (subscription: perl5-summary-subscribe@perl.org ). The archive is at http://dev.perl.org/perl5/list-summaries/ . Corrections and comments are welcome.
If you found this summary useful, please consider contributing to the Perl Foundation or attending a YAPC to help support the development of Perl.
... working on the chain ga-eee-ang