This week, you'll read in this summary more about the uninitialized warning plans for 5.8.($n+1), some XS tricks, intriguing bugs, and the different types of UIDs.
Nicholas Clark thinks about a way to backport in maintperl the enhanced bleadperl warning,
Use of uninitialized value $foo at....
they're not 'stable' enough to be enable the extra information by default.
He lists a couple of solutions (add a class of warnings,
or a new pragma,
or a global flag.) Rafael favors a global flag,
for example a (version-specific) PERL_5_10_ISH environment variable,
while Nicholas envisions some idiom
use more 'future'.
Stas Bekman asks about a wrong XS idiom, namely testing the definedness of an SV by comparing its address with
&PL_sv_undef; this works when the undef() literal value is passed to the XS code, but not when a random undefined scalar is used. Gisle Aas points out that SvOK() should be used instead; Stas produces a documentation patch.
Alan Burlison finds that
FileCache (a little-known core module, meant to cache a large number of open filehandles) resets some signal handlers when reopening some files which have been closed in the mean time (to avoid exceeding the limit on the allowed amount of filehandles on the system.) Jerrad Pierce answers that this is by design, for the case the filehandle to be reopened is a pipe to a command. Alan disagrees with this approach (and finds that using
FileCache with a pipe is a weird idea anyway) and suggests to remove the %SIG assignments.
Stas Bekman filed bug #29841, about utf8::decode() not working under
-T. Dave Mitchell diagnoses the symptoms, but doesn't know what is the right fix.
Paul Fenwick announces that he's working on a module (
Proc::UID) to manipulate Unix user ids: the famous real and effective UIDs, which have their own Perl variable counterparts, as well as the saved UID and the filesystem UID. But since perl caches the results of getuid()/getgid() in internal interpreter variables, the contents of the perl variables $<, $>, $( and $) cannot be always believed (they might have been set via an XS module). Thus Paul asks whether this cache is really a wise implementation.
Paul also wonders why saved UIDs aren't accessible natively from perl like real and effective UIDs. Rafael gives some ideas about adding an API for them.
Nicholas released a maintenance snapshot of perl 5.8.x, and adds: The plan is for 5.8.5 code freeze at midnight (GMT) on 30th June, with RC1 soon after.
Sam Vilain finds a macro in the glibc (makedev()) that isn't correctly processed by h2xs (bug #29969). This was fixed by Wolfgang Laun.
Lionel Cons finds an incompatibility between the innards of
Carp and the
Safe module (bug #29851). Rafael proposed a patch.
Andy Lauder reported that in some cases, perl seems to perform a seek() before a close() (bug #29883). This is in fact a behaviour of Solaris that is reproducible with a C program, so perl isn't at fault; Alan Burlison gives a rule of thumb: you shouldn't use exit() in a child process that doesn't exec(), you should use _exit().
threads::shared prevents the profiler
Devel::DProf from working (bug #29939).
autouse bug (#29708) reported last week was fixed by Dave Mitchell.
Encode 2.01 was released.
This summary was written by Rafael Garcia-Suarez. Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, which subscription address is firstname.lastname@example.org. Comments and corrections welcome.