This Week on perl5-porters (15-21 March 2004)

rafael on 2004-03-22T10:07:00

This week saw the arrival of spring in the northern hemisphere, and coincidentally the release of a new development version of bleadperl, which you can peruse for testing the new features, the new fixes, the new optimisations, and of course the new bugs. But of couse 5.9.1 is already outdated for the perl 5 porters, who like to live at the edge of the bleadperl. Read on for the latest news.

Perl 5.9.1

The latest development version of perl, numbered 5.9.1, was released. The annoucement can be found at

    http://groups.google.com/groups?selm=20040316221415.05eee295.rgarciasuarez%40fre e.fr 

and the perldelta document for this version can be found at

    http://search.cpan.org/user/rgarcia/perl-5.9.1/pod/perl591delta.pod 

can() is not defined()

Nicholas Clark remarked that after undefining a subroutine Foo::foo(), the expression Foo->can('foo') is still true. Rafael answered that Foo::foo() still exists(), even if it's not defined(). The rest of the thread gave lots of good reasons for this behaviour.

Brent Dax proposed to add a delete &foo syntax to completely delete subroutines, consistently with other uses of delete(). This sounds like a great idea.

    http://groups.google.com/groups?selm=20040316222340.GY701%40plum.flirble.org 

Optimisations

Elisabeth Mattijsen asked why the assignments to lexical variables in

    my $x = undef;
    my @x = ();
    my %x = ();

were not optimised away. As noone found a good reason, Rafael added the desired optimisation.

    http://groups.google.com/groups?selm=p05111b08bc7b9fc3e325%40[192.168.10.114] 

B::Concise enhancements

Jim Cromie proposed a patch to enhance the backend compiler module B::Concise, used to dump optrees. For example it can now produce output to any filehandle. Rafael suggests that this could be useful to test the non-regressions of some optree optimisations, like the one documented in the last paragraph.

    http://groups.google.com/groups?selm=4058BF4B.1000004%40divsol.com 

New warnings

Yitzchak Scott-Thoennes added a new warning against the correct but dubious syntax

    $x !=~ /foo/;

Dave Mitchell remarked that the bitwise complement ~ doesn't produce any Use of uninitialized value warning. He fixed it.

UTF-8, the sequel

Yitzchak Scott-Thoennes posted a summary of the things that should be done to address the current UTF-8 encoding issues without annoying too many people:

  • Fix the remaining in-place ugprades due to the proximity of UTF-8 data
  • Upgrades without locale should issue a warning (Autrijus Tang's encoding::warnings module already does this for perl 5.8.x), which will probably be a core warning in perl 5.10
  • Provide an API for XS writers who want to copy and upgrade character data to UTF-8.
    http://groups.google.com/groups?selm=20040317044500.GA3720%40efn.org 

Sadahiro Tomoyuki is working on this last point.

    http://groups.google.com/groups?selm=20040316132246.2972.4%40llama.elixent.com 

In Brief

Jan Dubois sent a patch to add the Win32 module from Gurusamy Sarathy's libwin32 to bleadperl.

Sadahiro Tomoyuki identified several places where some perl built-ins don't cope with overloaded objects correctly regarding UTF-8 encoding. (bug #27658.)

    http://groups.google.com/groups?selm=rt-3.0.8-27658-82032.6.02101148715519%40per l.org 

About this summary

This summary was written by Rafael Garcia-Suarez, from Lyon, France, and it's likely to be the last one that I'll be writing in Lyon. Weekly summaries are published on http://use.perl.org/ and posted on a mailing list, which subscription address is perl5-summary-subscribe@perl.org . Comments and corrections are welcome.