David Nicol: Does pushing all exceptions to @@ whenever $@ gets assigned to break anything?
Abigail: In theory, it could, as @@ is a "normal" array that can be used as such. But I doubt anything serious will break. I'd say anyone that uses a punctuation variable that currently has no special meaning does so at his/her own risk, and doesn't have the right to complain if it does get special meaning.
-- Abigail, suggesting that a little backwards compatibility breakage from time to time can be good for the soul.
Craig Berry sorted out the changes for Module::Build
that had
made it to blead but not to the M::B
repository, and tidied
them up so that Ken Williams could apply them with a minimum of
fuss.
http://xrl.us/gpjvm
John E. Malmberg, at a loss as to how to entertain himself, tried to configure Perl using the GNV/bash subsystem on VMS. After examining dozens of problems, he concluded that "it looks like a bit of work before VMS can run the UNIX configure script".
One fundamental problem is that the test programs are there to test for C routines, but if Configure fails to spot the required header file in the first place, it will skip the test altogether, even though VMS compilers have ways of finding header files in all sorts of VMS-specific ways.
Peter Prymmer suggested that a hints/vms.sh might allow a sane GNV environment to be set up, which could improve Configure's chances of success.
Paul Green, paramount wrangler of Perl on Stratus VOS suggested that
it was unlikely that pushing changes back to the autoconf
authors was a viable approach. He did that five years ago, and he's
still waiting for the changes to propagate out to various projects
that use it. He advised John to tweak the VMS to work with the
existing framework.
http://xrl.us/gpjvu
Alberto Simões ran into trouble with the changes that Ton added
in 5.10 to make pack
/unpack
self consistent. He wasn't sure
what technique should be used to ensure the same behaviour on
both versions of Perl; Nicholas Clark suggested side-stepping the
problem altogether.
the clark gambit http://xrl.us/gpjv2
Alfie accidentally trod in a thread from last month concerning
the use of qr/$var/
when $var
is empty, thus reusing the
previous pattern used for matching.
This attracted a considerable amount of discussion, with Yitzchak Scott-Thoennes contributing the following gem:
my $x = qr//; ok("foo" =~ /foo/ && "bar" =~ /$x$x/); ok("foo" =~ /foo/ && "bar" =~ /$x/);
in which the first test succeeds, and the second test fails. Nicholas Clark wanted to know if there was a TODO for this (Yitzchak thought probably not), and which behaviour was the most desirable.
http://xrl.us/gpjv8
Sean O'Rourke was trying to inspect symbol tables, and noticed that
*FOO{SCALAR}
was always defined, and wondered if that was because
he was prodding too hard. Ben Morrow confirmed that he was seeing
the expected behaviour, although Yitzchak Scott-Thoennes pointed
out that PERL_DONT_CREATE_GVSV
changes the picture somewhat.
http://xrl.us/gpjwe
Steven Adkins mentioned the project (at this stage not much more than a wish) to get Perl supported as a language for Google's App Engine.
Not much came out of the discussion, apart from Ævar Arnfjörð Bjarmason who asked if there was a precise description of the sandbox environment the hosted applications would run in (such as no XS modules or system calls).
http://xrl.us/gpjwk
Yuval Kogman managed to fool the new "variable name reported in uninitialized value" warnings with a simple code snippet. Dave Mitchell fixed the problem a few hours later.
This inspired Nicholas Clark to go looking, and find a more devious case that remained broken. Dave went looking and found a few more, and theoretically nailed them all with an additional patch.
desperately seeking PUSHs(&PL_sv_undef) http://xrl.us/gpjwr
A task that will get your name mentioned in the description of the "Highlights of 5.12".
Fix Perl_sv_dup, et al so that threads can return objects.
(hint: you have more than one week to achieve this).
Florian Ragwitz began to update .gitignore files all over the codebase until Rafaël Garcia-Suarez gently explained that the files didn't exist in the repository yet, given that the porters had not yet switched over to git.
Sam Vilain, owner and manager of the git mirror of the Perforce repository, outlined a mechanism he intended to put into place to allow people to start using git now, while not interfering with Perforce. Rafaël gave the approach the thumbs up.
http://xrl.us/gpjwx
At the same time, Sam added a little script to parse perforce change numbers, and return the git revision ID when captured, or 'git-log' output otherwise. Unapplied.
http://xrl.us/gpjw5
Reini dusted off the old TODO test from the CPAN report and tidied it up to suit blead. Applied by Rafaël.
http://xrl.us/gpjxb
gethostbyaddr
H.Merijn Brand asked for help to figure out what was the best way
for dealing with an HP-UX bug, since gethostbyaddr
will
use a DNS resolver whenever it finds one, regardless of what
/etc/resolv.conf says.
routing around brain damage http://xrl.us/gpjxd
In the process of tracking down that problem, H.Merijn discovered that HP-UX's C compiler has a warnings dial that goes up to 11. So he cranked it up and posted the results to the list, to see if anyone was inspired to adjust the code to reduce the quantity.
nope http://xrl.us/gpjxh
Configure
- d_sprintf_returns_strlen
Jerry D. Hedden noticed that if the test program used to detect the
setting for d_sprintf_returns_strlen
failed to compile, no-one
would have been any the wiser. Unapplied.
now you would know http://xrl.us/gpjxj
Socket::unpack_sockaddr_un
(#2052) Renée Bäcker noticed that one of the oldest still-open bugs in the database was no more.
seems to be fixed http://xrl.us/gpjxo
As does "Lexical objects not destroyed at end of scope" (#3308)
http://xrl.us/gpjxs
Mike Guy originally pointed out that foreach (@h{a, b}) { }
autovivifies
$h{a}
and $h{b}
, when it would have been nice not to. Renée didn't
see why it should, but since it's been known about and relied upon for so
long, it may no longer be fixed.
Bo Lindbergh showed how a do
block could be used as a work-around.
EWONTFIX http://xrl.us/gpjxy
Renée also added another datapoint to this problem, narrowing the effect
to one implicating @-
.
http://xrl.us/gpjx6
win32_select()
(PATCH included) (#46309) Risto Kankkunen had identified this, and proposed a patch, back in October 2007. Rafaël applied it to blead this week.
http://xrl.us/gpjyc
Rafael also applied Slaven Rezic's patch that fixes this problem.
http://xrl.us/gpjyg
as well as a a patch to stat.t from John P. Linderman, thus resolving bug #47746.
http://xrl.us/gpjyk
John Gardiner Myers had identified a problem with pattern matches being performed slowly in threads, since a character class optimisation was skipped. Dave Mitchell grovelled through the source and discovered why the optimisation was suppressed, and why it wasn't be re-enabled. Unfortunately Dave isn't familiar with this part of the code and didn't want to hazard a fix.
http://xrl.us/gpjyp
Jesse Vincent consolidated the various patches to perlbug
from
last week. Paul Johnson stopped by to comment that he hated the
linguistic drift that has made "issue" become synonymous with "bug",
"problem" or "question". (note to self: guilty as charged).
On a completely different note, Paul also thought that autodie
(the name, not the concept) is awful.
a pity the alternatives are worse http://xrl.us/gpjyt
h2xs
does not handle properly enum constants (#55896) Domi@hp reported an issue, no, problem, with XS bindings to interface
C code that uses enum
s, and a pointer to a blog that provides
additional commentary.
Steve Peters thought that all the problems that were known at the time
the blog entry was written had been addressed, so he wasn't sure if it
was still relevant. But he did want to find out more about the specific
problem being encountered, in case there was more enum
work that
needed doing.
http://xrl.us/gpjyz
Jonathon Sailor wondered why hash keys were always iterated in the
same order, regardless of how PERL_HASH_SEED
is set. Turns out the
documentation was wrong.
http://xrl.us/gpjy7
Someone at Sony filed a report about failing to build on Solaris. Andy Dougherty made a few educated guesses about what the problem was, and suggested a recipe that might work, and/or a copy of config.sh to figure what the problem was.
http://xrl.us/gpjzb
Shanthi M Srinivasan had a problem with libraries on a 64-bit Linux box not being picked up. Andy explained that the problem was resolved in 5.10 (which was released six months (!) ago). For people stuck with 5.8, the fix is simple, just requiring /lib64 and /usr/lib64 to be specified during configuration.
http://xrl.us/gpjzh
return return
(#56150) Nicholas Clark wondered why this wasn't a syntax error. Rafaël Garcia-Suarez showed him why it was a feature.
The thread then expanded into a very long discussion about the
(f)utility of using an explicit return
statement.
obviously you've never tried to return a reference to a hash http://xrl.us/gpjzq
(((??{1 + $^N})))
behaves differently in 5.10.0 than in blead (#56194) While researching whether bug #27603 had been fixed, Bram discovered
that 123 =~ /^(\d)(((??{1+$^N})))+$/ ? 1 : 0
return 0 or 1,
depending on whether one uses 5.10.0 or 5.11.0 (or any suitable
blead) to run the code. No replies, but it's obviously some sort of
regression that wasn't nailed down by a test.
of course, it didn't work at all in 5.8 http://xrl.us/gpjzu
Mike Capella reported a problem with an enormous list of qr/.../o
patterns producing some interesting emergent behaviour. Bram
suggested he get rid of the /o
modifiers. Mike wanted to know the
reason but no-one clued him in. In the meantime, Mike came up with a
work-around, but since the appearance of the error seemed to be
dependent on the number of patterns used, he thought it indicated
some sort of overflow situation, should someone with the necessary
internals skills feel like looking into it.
not today http://xrl.us/gpjz2
Hmm, four more this week than last week.
271 new + 1275 open = 1546 (+12 -8) http://xrl.us/gpjz6 http://rt.perl.org/rt3/NoAuth/perl5/Overview.html
threads::shared
Version 1.23 is alive and kicking, thanks to Jerry D. Hedden. The change is an attempt to stamp out timing errors that cause spurious failures in the test suite.
http://xrl.us/gpj2a
Paul Fenwick asked about accessing caller's %^H at runtime in
5.8.x, as part of his ongoing autodie
adventure. Sartak
suggested he look at chocolateboy's Devel::Hints::Lexical
for
inspiration. Paul admitted having spoken to chocolateboy at length
about that very module, and explained that it didn't really go as
far as he needed.
http://xrl.us/gpj2e
Paul then shared a monologue with us regarding accessing caller's $^H in 5.8 and 5.10.
they all lived happily ever after http://xrl.us/gpj2k
Crawford Curry mentioned the incomplete documentation of
CGI::charset
(in cpan #36817).
paging mr. stein http://xrl.us/gpj2r
In a followup to the changes in m//m
in 5.10 thread, Eric
Brine suggested that the documentation in perlop
needed
updating.
http://xrl.us/gpj2x
Niko Tyni reported that the Debian project had discovered that the latest
File::Path::rmtree
makes symlink targets world-writable.
something else for my copious spare time http://xrl.us/gpj25
Jan Dubois picked up on last week's summary of why IPC::Run
is preferable
to system
, explaining that on Win32 it is rather inefficient as it depends
on additional helper processes to get the job done. As a result, the variable
$^X
(the name of the current copy of Perl) doesn't contain what one might
expect.
An additional complication is that the exit status counter on Win32 is a 32-bit
quantity and thus does not even fit in $?
. One solution would be to borrow
from VMS, and implement a sane ${^CHILD_ERROR_NATIVE}
variable.
Worse, if a child process returns -1... In certain circumstances, the parent runs the child a second time.
And then they started talking about losing $@
from an eval
all over
again. Mark Mielke nailed the problem when he said that the problem is
that $@
is a global, but eval
is inherently recursive.
This Week on perl5-porters - 1-6 June 2008 http://xrl.us/et7yb
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.