This Week on perl5-porters (2-8 June 2003)
[email protected] (Rafael Garcia-Suarez) Mon, 9 Jun 2003 23:28:39 +0200
| Newsgroups | perl.perl5.porters,perl.perl5.summary |
|---|---|
| Message-ID | <[email protected]> |
This Week on perl5-porters (2-8 June 2003)
What happened this week ? Interesting bugs were found, and solutions
proposed ; new areas explored, technical points raised, and patches
applied.
Multiline regexp flag buggy
Ton Hospel reported bug #22354, about the use of the multiline flag /m
in regular expressions : when a function is called from the right side
of a substitution that uses /m, and when this function uses a second
regular expression, this second regexp has implicitly and incorrectly
/m turned on.
Rafael Garcia-Suarez explained what happens behind the scenes : setting
/m on a match or on a substitution is equivalent to setting the global
special variable $* to 1 (locally). Thus, it will influence the
behaviour of all regexps that haven't /m or /s set in that scope.
As $* is deprecated (and discouraged due to its action-at-distance
semantics), Rafael proposes to purely and simply remove it. That will
solve the bug. He asks : when removing a deprecated feature, should the
deprecation warning be removed as well ?
http://xrl.us/jb3
http://xrl.us/jb4
Lexical warnings from XS
Steve Hays asked how to do the equivalent of warnings::warnif() from XS
code (conditionally warn, depending on whether a custom warning category
is in use.) Paul Marquess gives some hints, but says that there is no
general solution at the moment.
http://xrl.us/jb5
Temp files
Should the internal function PerlIO_tempfile() call the core module
File::Temp ? Jarkko Hietaniemi proposed this. This would avoid code
duplication and ensure that the core works at the same safety level as
File::Temp. Gurusamy Sarathy says, however, that this method is bloated
and should be avoided, especially on Windows, where File::Temp is
sub-optimal. He proposed an implementation based on the native Win32
API. Jarkko reverted his changes.
http://xrl.us/jb6
Fat comma auto-quoting
William R Ward noticed that the fat comma "=>" no longer auto-quotes
compound barewords (that contain "::".) Thus, something like
%h = (Foo::Bar => 1);
is now refused when "strict 'subs'" is in effect. In fact, only perl
5.6.1 accepted this last construct without complaining. This is
potentially dangerous, because if Foo::Bar is a function here, it's not
turned into a literal string. Rafael and Michael Schwern explored a bit
more this change, and this ended in a documentation patch, to clarify
the current behaviour.
http://xrl.us/jb7
In brief
Uri Guttman asks about safe signal callbacks -- more precisely, when can
be a signal callback be invoked, under the new safe signal
implementation. Nick Ing-Simmons says that perl dispatches signals when
it gets its next operation. However, the IO system may also dispatch
them when it gets an "interrupted function call" error (EINTR).
Dan Kogai proposes that on Mac OS X perl should not be built as a shared
library by default, to resolve prebinding woes. (Moreover that's the
default on most other platforms.) Chris Nandor wonders about whether it
would be useful to use prebinding for XS. Dan doesn't think it's a good
idea.
Michael Schwern asked for clarifications about how the "used only once"
typo warning works, and why it works that way. Rafael explains that it's
issued only at compile-time, and not for variables defined in modules
pulled in by "use".
http://xrl.us/jb8
Ton Hospel came up with a new bug gem : #22614, "the array length of @-
and @+ is not properly localized during backtracking", which leads to
the presence of spurious undefined values in those arrays.
Steve Hay released Win32::UTCFileTime on CPAN, a module intended to
provide alternative versions of the built-in functions stat(), lstat()
and utime() on Win32 systems, to handle correctly UTC file times.
http://xrl.us/jb9
Jarkko released a new maintperl snapshot.
About this summary
This summary was brought to you by your usual summarizer, Rafael
Garcia-Suarez. Weekly summaries are available on http://use.perl.org/
and/or via a mailing list, which subscription address is
[email protected]. Comments, corrections, additions, and
suggestions are welcome.