This Week on perl5-porters (28 June / 4 July 2004)
  This was a week rich in discussion. Read about programming with threads,
  UTF-8 crashes and leaks (and fixes), parsing, globbing, deparsing, and
  other things.

Destructors and ithreads
  Eric Garland shares his thoughts about how destructors work with
  ithreads. Destructors are mostly used to free some external resources
  (managed by a library) and thus should be run in most cases at
  application exit time (and not at thread destruction time). Thus, with
  the current implementation of desctructors (where objects are cloned
  among threads and destroyed when the thread ends), destructors should
  refcount external resources by hand and free them only at appropriately
  late times.

  Elizabeth Mattijsen submits a pure perl solution, that uses CLONE() (and
  says that it's probably too late to change the meaning of destructors in
  perl.) Eric proposes to make variables selectively cloneable. Dave
  Mitchell points out that it would be impractical.

      http://groups.google.com/groups?selm=40E31208.5020506%40ericgarland.com

  Stas Bekman wishes that, in addition of being a class method, CLONE()
  could be also called on each object that can() CLONE() at thread
  creation time. This would be easier than maintaining by hand a list of
  weak references to each object created. Nicholas Clark proposes to call
  the class method CLONE() with all objects into @_, which could be
  cumbersome if there are lots of objects. Dave wonders about the
  potential problems that would be caused by inheritance.

      http://groups.google.com/groups?selm=40E5A3BE.30302%40stason.org

B::Deparse and postponed for() scoping
  Torsten Hofmann reports that the following construct is not handled
  correctly by B::Deparse, due to the scoping of the lexicals : (bug
  #30504)

      do_something() for my ($foo, $bar, $baz);

  Stephen McCamant sent a proof-of-concept patch. Yves Orton asked about
  the deparsing of "my $foo if 0", to which Rafael answered that
  B::Deparse had no easy way to reconstruct the original code -- which
  corresponds to a deprecated construct anyway.

      
http://groups.google.com/groups?selm=rt-3.0.11-30504-91514.16.8566653002298%40perl.org

Memory leak with "eq" and UTF-8
  Bug #30509, about the string comparison operator "eq" leaking memory
  with UTF-8 strings in a function defined before the encoding module is
  loaded, was promptly fixed by Dave Mitchell.

UTF8 stack crash in Safe compartments
  Dave also fixed bug #30258, which was reported a couple of weeks ago:
  perl panics when one tries to use split() on an UTF-8 string from an
  Safe compartment.

      http://groups.google.com/groups?selm=20040702022315.GD1941%40iabyn.com

Parser corruption
  Andrew Pimlott produced a malformed program that causes memory
  corruption in the parser. This doesn't happen in bleadperl, since byacc
  has been replaced by bison in it. (Bug #30518.)

More parsing
  Peter Dintelmann finds out that "keys %!" produces a warning, "Use of
  "keys" without parentheses is ambiguous". Rafael says that this kind of
  warning is implemented by heuristics that only try to be accurate in
  most cases. Nicholas finds that the "%" is optional for the argument of
  keys().

      
http://groups.google.com/groups?selm=8FD9B6A658383E468B55D364D1A99516018571F1%40ffz00zm6.ffz00e.mail.dresdner.net

File::Glob and shell idioms
  Jaap Karssenberg reports (bug #30553) some oddities about the behavior
  of File::Glob regarding brace expansion (th{is,at}), existing files,
  and options; notably when there is only one item between the braces.
  Rafael points out that the underlying implementation conforms to BSD
  standards (in fact it's ripped from OpenBSD) and that he's not very
  surprised by the current behaviour (see the mails for details.)

      
http://groups.google.com/groups?selm=rt-3.0.11-30553-91751.1.29752801968813%40perl.org

Magic and lvalues
  Bug #30582 demonstrates that you can't return an hash element from an
  lvalue subroutine when the hash has magic attached to it.

      
http://groups.google.com/groups?selm=rt-3.0.11-30582-91886.18.5112021131844%40perl.org

Splicing oneself
  Glenn Linderman provided an example of splice() that doesn't produce the
  intuitive result (bug #30568) :

      @stk = ( 1, 2, 3 ); splice @stk, -2, 2, $stk[ -2 ];

  Dave Mitchell explains what happens behind the scenes. Ton Hospel
  comments that it maybe hasn't to be fixed, "since strictly speaking it's
  like using $i + $i++". Wolfgang Laun tweaks the above code so that it
  produces a segfault.

      
http://groups.google.com/groups?selm=rt-3.0.11-30568-91811.14.57126175291%40perl.org

Dup'ing PerlIO handles between different layers
  Stas Bekman says that he's "unable to convert an existing perlio handle
  into one that is handled by a different perlio layer which requires
  extra arguments to open." More precisely,

      open my $fh2, "<&:crlf", $fh or die $!;

  works, whereas

      open my $fh2, "<&:APR", $fh, $p;

  doesn't (note the extra argument.) Nick Ing-Simmons suggests another way
  to do it, more correct regarding the language, but this other way is yet
  to be implemented.

      http://groups.google.com/groups?selm=40E4A33A.3010406%40stason.org

Stabilisation
  Nicholas Clark posted a first draft of the perldelta for perl 5.8.5.

  Rafael uploaded a new version of Safe to the CPAN, incorporating the
  latest fixes in bleadperl.

  Marcus Holland-Moritz glanced at microperl.

      http://groups.google.com/groups?selm=20040702052538.7286dd33%40r2d2

  Uri Azoulay is trying to build perl on some more or less exotic systems
  (HP-UX 11.00, AIX, OSF).

About this summary
  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 [EMAIL PROTECTED] Comments and
  corrections welcome.

Reply via email to