use Perl Log In
This Week on perl5-porters - 16-22 March 2008
"I suspect that by now the Parrot code base has moved on sufficiently that it's faster and cleaner to start from scratch than to try to merge over that code. I might be wrong, but I'd suggest keeping "redo from start" as an option." -- Nicholas Clark, not wishing to flog a dead horse.
We now return you to last week's discussion about
a warning become a fatal error that halts execution) and how Paul
Fenwick has begun work to make the effect lexical (that is, scoped
to the current code block).
First off, it appears that
use lethal has lost out to
autodie, which doesn't seem like an improvement, but it has the
As the code was more or less ready to be pulled into the code base,
the question was what to do about dual-lifing the module, since
lexical pragmas aren't available in 5.8 and below. Nonetheless,
it would be nice to get rid of the AUTOLOAD craziness on 5.8 and
5.6. Further backwards compatibility would not be required as it
is doubtful that anyone stuck on such ancient versions would be
Fatal in the first place.
Aristotle Pagaltzis thought it would be useful to have shorthand import lists to make warnings from all core functions dealing with, for instance, I/O, to invoke the Fatal machinery. He was also a little doubtful about wedging the pragma into the Fatal namespace. It would be better to have Fatal and the autodie pragma be APIs into the same underlying code.
There was a certain amount of discussion about what happens when
Fatal is used at the package level, and then a
pragma is invoked in a scope. Paul hinted that he'd be happy to
implement whatever the concensus turned out to be, but while there
wasn't exactly disagreement over anything, some of the corner
cases had some pretty horrible choices.
The messages that
Fatal produces when it does its stuff also
came under fire. Paul said he'd look cleaning that up. Aristotle
even volunteered to chip in with the task if needed.
one thread http://xrl.us/bh4fn
and another http://xrl.us/bik25
Nicholas Clark was a bit sad that the idea of learning about how to hack on perl's internals attracted so little interest. He concluded that it would not be worth the effort to write up a conference talk on the matter if it was likely that no new people became interested in hacking on perl.
Rick Delaney disagreed and said he that thought the self-contained task idea was worth pursuing. All that is needed is to find another task, and set up a mentor.
rewrite the peep-hole optimiser http://xrl.us/bik27
Nicholas Clark released another snapshot that is asymptotically
approaching 5.8.9. At this point the
haven't quite settled down on Windows (but subsequent patches to
the list indicate that this is close to being fixed).
Improvements in this snapshot include the quashing of intermittent threads failures and that it builds out of the box on Stratus VOS.
Steve Hay mentioned that there a couple of his patches that ought to go in as they quieten a number of compiler warnings on Windows.
Tels noticed (in bug #33530) that
Devel::Size was no longer buildable
under bleadperl, mainly due to the promotion of regexps to first-class
REGEXP datatypes. Reini Urban fixed it up as best he could and added an
error message that pleased Paul Johnson's sense of whimsy.
It all started out with the simple wish of Gabor Szabo to hoist the information about Perl ports from cpan.org out onto the Perl5 wiki in order to allow many hands keep it up to date.
The thread then developed into a long discussion about how distributors of operating systems (such as Debian) go about including Perl in their distribution. There was much talk about the relative merits of strategies for dealing with architecture-dependant (read: XS) components, dual-life modules, and fitting in the distribution packaging schemes.
Rafael Garcia-Suarez hinted that he wanted to take a fresh approach to these issues in 5.12.
One of the main problems, articulated by Michael G. Schwern, is the
persistent (literally) difficulty in modifying
without resorting to sub-optimal hacks like sitecustomize.pl.
In the final analysis, we need to allow Perl to allow itself to be driven by the host packaging system whilst retaining the ability for a local site to include a fresh new Perl module of which the packaging system has not yet caught up with.
Joshau Hoblitt wondered if there was any interest in exposing the
posix_fallocate function to Perl, which allows one to ask the
host for enough contiguous space in which to write out really huge
files, the idea being to minimise fragmentation as far as possible.
Craig A. Berry replied that any serious patch would be seriously considered.
Jim Cromie spotted a quick way to chop around 150 lines from dump.c. Reini Urban noted that part of the code in question was duplicated in various B and Op modules, so it would be nice to expose the underlying code via an API, which would simplify the task of keeping these ancillary modules in sync.
Nicholas Clark wondered if we could have faster safe signals by pushing the safe signal check down out of the core runloop into a small number of suitably hot opcodes.
Tim Bunce wondered if adding branch prediction hints in suitable places might not produce an even greater performance boost.
All of the experiments tended to produce results whose differences were lost in the noise.
Dave Mitchell asked what was needed in order to release 5.10.1, such
as outright breakages from 5.8.x and fixes for new things in 5.10.0,
such as some of the quirky edges in
when, where it is
important to nail them down quickly before too many people get used
to them the way they are now.
Michael G. Schwern mentioned the
@_ slowdown (which is no more),
ExtUtils::Install, making sure things build out
of the box on Vista and a list of issues that have arisen with smart
Yuval Kogman described a scenario in which
local $@ doesn't do
the right thing. It boils down to the latter day
interfering with the orderly behaviour of unwinding exceptions and
transferring information via
After a long discussion as to whether it would be possible to fix
the current behaviour, short of introducing a putative
David Nicol suggested a documentation improvement to describe
exactly how things are now, and that's what made it in.
RT sucks. Bugzilla rulez.
(based on a suggestion by Nicholas Clark in private correspondence).
Here's your chance to get your name in lights, or at least in the following section of "This Week on perl5-porters". Take a TODO item, and... do it! Each week, a random TODO will be featured. To start the ball rolling, we have:
There are some common subroutines and a common
BEGIN block in
installperl and installman. These should probably be merged. It
would also be good to check for duplication in all the utility
scripts supplied in the source tarball. It might be good to move
them all to a subdirectory, but this would require careful checking
to find all places that call them, and change those correctly.
Steve Hay thought he had the patch to end all patches to get
POSIX::access working sensibly on Cygwin using all the compilers
he could get his hands on. No-one commented on it, apart from
Yves Orton via IRC, so Nicholas Clark committed it.
Michael Fowler (of the Debian Project) identified a problem with
PERL_NO_SHORT_NAMES which results in undefined symbols occurring
at link time. No answers as yet.
Himanshu G. tripped over the 3-arg open and
Ronald J. Kimball asked how the documentation could be improved
to clarify the situation.
Zsban Ambrus uncovered a deparsing problem in 5.10 (but not 5.8)
/$xy/, which is definitely
Chris Hall opened a ticket to say that the Encode distribution's
encode routines only recognise
U+FFFF as a
non-character, but 65 others, such as
U+10FFFF and waved through as being valid characters.
Even more scary stuff about Unicode non-characters and 13-byte extended sequences that fairly had my head spinning.
Pancho found a very silly typo in a code fragment in the documentation, so Rafael fixed it.
a patch to remove one character http://xrl.us/bik36
Michael G. Schwern was annoyed at the way perlxs waffles on about these variables without ever really getting around to explaining what they are. Michael promised that is someone could explain them to him then he would make improvements to the documentation.
John Gardiner Myers offered a patch (but no tests) to convert an
attempt to call
exit into a warning. This is a highly desirable
feature to have in a multi-threaded environment where a single
exit can really ruin your day (especially when the
hidden in something downloaded from CPAN)...
The patch makes a Perl stack trace available to a
so that the offending code can be tracked down.
Sérgio Durigan Júnior had a few questions about compiling a 64-bit Perl in a 32-bit system following on from his problems with failed tests on PPC64. H.Merijn Brand set him straight.
64 bits for all http://xrl.us/bik4e
Sérgio also asked about make distclean and config.arch but received no answers.
But feedback from H.Merijn on how to solve his problem in a better way led to the resurrection of the rarely used config.over technique for overwriting Configure behaviour.
As well as some problems when setting the libraries' installation path.
Having pulled the rug up over things long since swept away and
forgotten about, Sérgio added some smarts to
remove config.arch. H.Merijn applied the concept, if not the
patch itself, to Makefile.SH.
Paul Green reported that a smoke of perl@33536 on Stratus VOS issued a number of errors that were all due to Stratus VOS's own take on reality, and not (or nearly never) Perl's fault. He thus lifted Stratus's option to stall the release of 5.8.9.
98.68% ok http://xrl.us/bik4p
Jim Cromie wrote a patch to improve IS_NUM_COMPARE by coalescing all the opcode numbers involved to be contiguous. He was a bit peeved that it didn't reduce the resulting assembly code, but figured that at least it renders the code less sensitive to the ability of the C compiler to perform sophisticated optimisations.
Thanks in large part to Eric Wilhelm's tireless efforts, Perl is again a participant in Google's Summer of Code (at least as far as the northern hemisphere is concerned).
it's official http://xrl.us/bik4t
And regarding the GSoC, there is a list of Things To Do.
Reini Urban uploaded his Mperl compiler and optree debugger. No-one commented.
Robin Barker added some optional verbosity to regen.pl and friends. Unapplied.
Gerard Goossen stripped out some unnecessarily complex code when dealing with MAD. Unapplied.
As tweaked the keys for sub and var attributes to avoid clashes with arrow operators.
Michael G. Schwern reported that the patent for "Software Package Verification" was nothing to worry about. There had been some concern in the past that Perl's test infrastructure could have been covered by its scope.
H.Merijn Brand reported that perl's Configure script had been
Vincent Pit went looking for double warnings for single errors,
and found two.
perl -we '\&$x' used to spit out the same
error twice (along with four others).
perl -we 'my $a; substr $a, 0, 10, "foo"' did much the
same, so he arranged things to have
$a silently upgraded to
an empty string beforehand. Both patches applied.
This Week on perl5-porters - 9-15 March 2008 http://xrl.us/bik5f
This summary was written by David Landgren. It is hopelessly late; I crave the indulgence of my readers. It was my birthday this week, or at least the attendant celebrations, and on top of that, a supermarket chain obsessed more with profit motives than the well-being of its clients sold my family beef well past its due date, and, well, I'll spare you the details...
Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, (subscription: firstname.lastname@example.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 to help support the development of Perl.