summary++ # new week.
Chip Salzenberg notices some binary incompatibility issues between perl
5.8.0 and perl 5.8.1 : some XS modules built under 5.8.0 don't run
properly with 5.8.1 without being recompiled. This is due to the new hash
randomization feature. Running perl 5.8.1 with the environment variable
PERL_HASH_SEED=0
fixes it. Chip suggests a more general fix --
basically to move the hash seed to a global variable instead of a function
argument -- and says that 5.8.2 should be released quickly. His idea is
further discussed.
http://xrl.us/wuu
Michael J.Pomraning reports (bug #24138) that the value returned by File::Glob::GLOB_ERROR() does not seem to be isolated between differents threads. Rafael tries to trace the bug up to ExtUtils::Constant, with no success.
http://xrl.us/wuv
Slaven Rezic reports that explicitely loading the UNIVERSAL module
breaks things, because UNIVERSAL.pm defines an import()
method (aliased
to Exporter::import()), which is thus inherited by all classes whenever
UNIVERSAL.pm has been use
'd. Michael G Schwern provides a patch,
ensuring that UNIVERSAL::import() does nothing when invoked on anything
else than the UNIVERSAL package.
http://xrl.us/wuw
set*uid
calls broken on Mac OS XBug report #24122 details how the C library calls setruid
, setrgid
,
setreuid
, and setregid
are broken on Mac OS X, and how they affect,
consequently, perl's $<
and $(
variables, for scripts that want
to drop privileges. Slaven Rezic suggested that they should be disabled
at configuration time.
http://xrl.us/wux
Ton Hospel reported (bug #24127) that filetest operators don't follow the rule that applies to other named unary operators, if it looks like a function it's a function. Rafael Garcia-Suarez documented this fact more clearly in the perlop manpage.
http://xrl.us/wuy
Following his internal stream of consciousness, Rafael then submitted a
patch to allow to stack filetest operators, i.e. to write
-f -w -x $file
instead of
-x $file && -w _ && -f _
although he doesn't think that allowing -fwx $file
in Perl 5 would be a
good idea.
http://xrl.us/wuz
defined()
and exists()
syntaxRoy Johnson posted some insteresting ideas about possible extensions to
defined()
and exists().
http://xrl.us/wu2
Daisuke Maki found out that attribute handlers are not invoked when defined in a file sourced at run-time. That's because they're by default run at CHECK-time, and CHECK blocks are only invoked once during the lifetime of the perl interpreter : just after the global compilation phase.
http://xrl.us/wu3
goto +foo
Juerd reported (bug #24108) that you can't goto +foo
to go to the label
whose name is returned by the function foo(), because perl actually tries
to go to SCALAR(0xDEADBEEF), the stringified form of the reference to the
return value of foo(). xmath proposed a fix, that got applied.
http://xrl.us/wu4
ref($foo) == 0
Abigail remarked that Perl's documentation says that ref
returns a true
value if its argument is a reference, and false otherwise, and that this
statement is not entirely true, since it's possible to bless a reference
into a class named 0
. This edge case was sufficient to give birth to a
long thread.
http://xrl.us/wu5
James FitzGibbon notices that pure-perl modules are installed later in the
@INC path than XS modules. Consequently, if an XS module on CPAN is
replaced by a pure-perl version, it won't be seen by the users who will
upgrade it, hidden by the earlier version, still on the hard disk. Nick
Ing-Simmons proposes a solution : that this module still insists to be
installed in the architecture-dependent directory. Michael G Schwern also
points out that the prudent user can issue a make install UNINST=1
,
that searches @ISA for other versions of the same files and remove them.
http://xrl.us/wu6
Ismail Donmez reported (bug #24121) that perl's Configure
script can't
be run under a Turkish locale, because it actually tests for the uppercase
form of the letter 'i', which is not 'I' in Turkish (it actually
corresponds to Unicode character U+0130, also known as "\N{LATIN CAPITAL
LETTER I WITH DOT ABOVE}"
).
http://xrl.us/wu7
Hugo van der Sanden is planning to release the first development version after the 5.8 branch, i.e. perl 5.9.0, during next week.
Jos Boumans reports as bug #24182 that objects seem to loose their overload magic during destruction (except when the DESTROY method is called explicitely).
Gisle Aas, by (ab)using an undocumented feature (not unrelated to source filters and @INC hooks), made perl dump core; later, he provided a fix.
Nick Ing-Simmons compared MANIFEST files to mitochondrial DNA.
This week's summary was written by your regular summarizer, Rafael Garcia-Suarez. Summaries are published weekly on http://use.perl.org/ and on a mailing list, which subscription address is perl5-summary-subscribe@perl.org . Corrections and comments are welcome.