This Week on perl5-porters - 1-10 September 2006

  "Most version control systems have flexible commit hooks to
  automatically perform actions" -- Michael G Schwern

  "Obi Wan Perforce: This isn't the version control system you were
  looking for. Move along, move along..." -- John Peacock

Topics of Interest

CPAN-ification of core modules - dual life modules

  Gabor Szabo wanted to know if the dual-lifing of core modules on CPAN
  was still on the agenda, and if so, was there a list of suitable
  candidates, and/or modules that should never become dual-lifed. Rafael
  Garcia-Suarez said that the process was done on an as-needed basis.

  Dual-lifing is when a module is bundled with the core distribution,
  but also available separately on CPAN. For instance, "Time::HiRes", a
  module that for a long time was only available on CPAN, went into core
  for 5.8.

  It stood at version 1.48 when 5.8.0 was released, 1.66 when 5.8.3 was
  released, and the current version on CPAN is around 1.90. If it wasn't
  dual-lifed, you would have to wait until a new version of Perl came
  out to get the upgrade. As it is, any of those versions of perl can be
  upgraded to use the current version of Time::HiRes from CPAN, with all
  the attendant bug fixes and improvements that the maintainer has made
  to it over the past four years.

  Dual-lifing the core modules, then, is simply giving this same
  flexibility to modules that *only* come with the perl distribution,
  and do not have a distinct distribution on CPAN.

  Michael Schwern explained a couple of the tricks needed to test core
  modules, said that back-porting the module to earlier perls would be a
  bonus, and suggested "Exporter" and "Class::Struct" as two possible
  immediate candidates.

    Moving out today
    http://xrl.us/rqwb

Dual life for "Exporter"

  So Adriano Ferreira took Schwern's suggestion seriously and set about
  dual-lifing the venerable "Exporter" module. Andy Lester noticed this,
  and wondered what scratch it itched.

  Michael explained that he thought cleaning up cruftiness was a good
  enough reason. Giving people the chance of upgrading just "Exporter"
  in order to take advantage of some new feature was a Good Thing,
  especially if this would otherwise mean upgrading to the latest
  version of Perl.

  After this was explained to Andy, he wholeheartedly agreed, and
  suggested that Adriano hook up with Ricardo Signes, who apparently has
  a number of ideas on the subject.

  Following that, H.Merijn Brand played devil's advocate and explained
  what was bad about the idea. The porters decided that the current
  method of doing things should be able to handle the points H.Merijn
  raised.

    Exporting Exporter
    http://xrl.us/rqwc

Boolean Operator Evil

  David Wheeler was writing a mini-language in Perl, but discovered that
  the lazy evaluation semantics of "or" makes life complicated when you
  try and overload it. Fergal Daly mentioned Tangram's trick of
  co-opting "&" and "|", which works for most people most of the time.

  Joshua ben Jore thought that this approach would be less pain than
  grovelling around in "B::" space to deparse the op-tree (which David
  had mooted as a possible approach).

  chromatic mentioned that it is within the realms of the feasible (and
  a little XS code) to override any op in the op-tree. Mark-Jason
  Dominus suggested David get in touch with Audrey Tang, who does this
  sort of mind-bending syntax overloading all the time.

    Covert operations
    http://xrl.us/rqwd

Trimming OPs

  Jim Cromie posted a 90KB patch to combine the "op_next" and
  "op_sibling" fields into a union, which could shave up to a fifth of
  the size off the the total of a full op-tree. This might provide a
  benefit to "mod_perl"-like environments (and hey! it might improve L2
  cache behaviour).

  As things stand, it nearly all works, and Jim asked for clarification
  on a couple of points. After three days of deafening silence, Leon
  Brocard wondered out loud whether the added complexity was worth it.

    Now with less fat
    http://xrl.us/rqwe

Patches of Interest

Use direct object constructor calls

  chromatic landed a rather large documentation patch. The idea was to
  replace all indirect constructor calls ("my $f = new Foo") by direct
  calls ("my $f = Foo->new"), the reason being that the documentation
  should encourage unambiguous and reliable programming practices.

  Surprisingly enough, the patch elicited next to no comment (chromatic
  and I discussed this at YAPC::Europe last week, imagining that it
  would cause a meltdown on the list). Rafael applied it.

    http://xrl.us/rqwf

  He then did the same in lib/*, but ran into problems with
  "IO::Compress" and "File::Temp" (at least), since they are both
  dual-lifed. This will require a lot more coordination with the various
  distribution maintainers and thus may fall within the realms of
  fiddling with the bloody grammar[tm].

    http://xrl.us/rqwg

Correction to POD for "FETCH_*_ATTRIBUTES"

  Jerry D. Hedden was astonished to find a glaring seven year old
  documentation error in attributes.pm. Which may mean that either
  no-one uses them or no-one reads documentation. Whatever the reason,
  Rafael applied Jerry's correction.

    http://xrl.us/rqwh

Trie jumping

  After a false start last month, Yves Orton managed to beat his latest
  regular expression engine optimisation into submission.

  Now, "/foo[xy]+|bar[tu]*|baz+/" goes really fast. That is,
  fixed-string prefixes followed by metacharacters in alternations reap
  the benefit of Yves' earlier trie work, whereas before, only
  "/foo|bar|baz/" would have seen an improvement.

    Jumping out of tries
    http://xrl.us/rqwi

Unicode Character Database (UCD) 5.0.0 released

  Jarkko Hietaniemi urged all porters to fire up their clay tablets and
  drag out their styluses (ahem, *styli*), because the latest Unicode
  definitions now include... cuneiform.

  Think of the possibilities! And to bring those dreams to reality,
  Jarkko provided a patch to update Perl with this information.

    If it dumps core, will it shatter?
    http://xrl.us/rqwj

C++ status update

  Jarkko also phoned in with the latest reports about compiling the perl
  source with a C++ compiler. He had managed to get quite far with
  Tru64's C++ compiler, because it is reasonably lenient about array
  declarations and disambiguating "delete" as a keyword. Other compilers
  are more problematic.

  Dominic Dunlop took it for a spin on Mac OS X with g++ 4.0.1 but ran
  into problems right away with "Configure" getting a bit confused about
  compiler capabilities. He then delivered a patch that cleared up many
  of the issues.

    http://xrl.us/rqwk

New and old bugs from RT

5.005_62: "make distclean" problem (#1647)

  A bug opened in 1999 was fixed some time in the past seven years.

    http://xrl.us/rqwm

"PerlIO::scalar" doesn't know how to truncate (#40241)

  Bo Lindbergh and Nick Ing-Simmons continued to explore the issue of
  what file descriptor functionality needs to be implemented to make
  "PerlIO::Scalar" behave as much as possible like a file handle. "-s"
  (for file size) would be useful, and last-modified-time would probably
  have to be kluged in, but "chown" and "chmod" could probably be
  no-ops. And so forth.

    http://xrl.us/rqwn

"Math::BigInt" silently drops lib argument if not available (#40242)

  Tels and Andreas König continued to look at this problem, and finally
  agreed on the right approach to take. Now all that has to happen is
  for Tels to implement it.

    http://xrl.us/rqwo

"kill( 0, ... )" does not return alive status of child process (#40262)

  "M" noted a discrepancy between the documentation and reality of a
  "kill" call, to determine the status of a child. David Nicol came up
  with a suitable tweak to the documentation, which was applied by
  Rafael.

    http://xrl.us/rqwp

Bug with "bignum" (#40263)

  Leif Pedersen encountered a strange problem with "bignum", whereby
  "$char = ord($char) - ord('A') + 10" appeared to have no effect. Tels
  twisted the example slightly, and got it to produce a "Modification of
  a read-only value" error, which led him to conclude that it was an
  aliasing error.

    http://xrl.us/rqwq

"xsubpp" ignores "PREFIX" when wrapping function declared with INTERFACE (#40264)

  Salvador Fandiño uncovered a nasty interaction in "xsubpp" between
  "PREFIX" and "INTERFACE", and proposed a fix. Rafael agreed that the
  change was necessary, even if it was not backwards compatible. He
  suggested that the issue be raised with Ken Williams, who maintains
  "ExtUtils::ParseXS" (since "xsubpp" is merely a wrapper around that).

    http://xrl.us/rqwr

"PerlIO::scalar" doesn't respect readonly-ness (#40267)

  Bo Lindbergh uncovered another beauty in "PerlIO::scalar". Mike Guy
  hoped that a couple of variations on the theme would be also be fixed
  by whoever fixed it. Rafael fixed it with change #28798, so let's hope
  it all gets bedded down in the test suite.

    http://xrl.us/rqws

subroutine call with "&" in "perlop" example (#40272)

  Sebastian Schmidt suggested function call in an "s///e" operation
  should lose its "&" sigil. Rafael agreed, so now it doesn't.

    http://xrl.us/rqwt

Perl coredumps on nested "s///e" (#40274)

  Jean-Louis Leroy showed how perl goes all pear-shaped when one tries
  to nest "s///e" operations. In perl's defence, the code does look
  interestingly abstruse.

    http://xrl.us/rqwu

"Configure" problem (#40286)

  Howard Shubs had a problem configuring perl on a path containing a
  space. Andy Dougherty came up with a crude patch to backslash-escape
  spaces in paths, but suspected that a number of other places may need
  similar treatment. Kids, this is definitely something you can try at
  home.

    http://xrl.us/rqwv

Perl5 Bug Summary

    10 more thrown onto the pile, for a total of 1531.
    http://xrl.us/rqww

    Close one today!
    http://rt.perl.org/rt3/NoAuth/perl5/Overview.html

New Core Modules

  *   Michael G. Schwern rolled out "ExtUtils::MakeMaker" version
      6.30_02, as a release candidate for 6.31. Craig A. Berry reported
      all green lights on VMS.

        http://xrl.us/rqwx

  *   Michael also push "Test::Builder/More/Simple" version 0.64_01 out
      the door. Two important changes that people should be aware of:
      5.8.0 threaded builds are no longer supported (because the
      implementation at the time was too buggy) and the report output
      has changed. This later point will be of great importance to any
      module that scrapes test output.

        http://xrl.us/rqwy

In Brief

  One of the reasons it is worth pushing for C++-compilable sources, is
  that it gets us things like inlined functions, IEEE floats and other
  goodnesses. Things that probably exist in a current C++ compiler, but
  won't, if ever come to C compilers.

    http://xrl.us/rqwz

  Yves Orton responded to a problem of "^C" segfaulting on Win32 by
  pointing out that ^C is weird on Win32, as some of the implementation
  is in fact running in a separate thread.

    http://xrl.us/rqw2

  Ask Bjørn Hansen nixed the idea of "security@" address for the
  reporting of security vulnerabilities in perl, since past experience
  has shown its purpose to be little more than a spam magnet.

    http://xrl.us/rqw3

  chromatic added handy index numbering to the "caller()" documentation
  in "perlfunc". Useful stuff, applied.

    http://xrl.us/rqw4

  Nick Ing-Simmons gave further reasons why it was worth making the
  codebase compile with a C++ compiler.

    http://xrl.us/rqw5

About this summary

  This summary was written by David Landgren. Yes, this summary covers
  ten days worth of traffic. You lucky people.

  If you want a bookmarklet approach to viewing bugs and change reports,
  there are a couple of bookmarklets that you might find useful on my
  page of Perl stuff:

    http://www.landgren.net/perl/

  Weekly summaries are published on http://use.perl.org/ and posted on a
  mailing list, (subscription: [EMAIL PROTECTED]). The
  archive is at http://dev.perl.org/perl5/list-summaries/. Corrections
  and comments are welcome.

  If you found this summary useful, please consider contributing to the
  Perl Foundation to help support the development of Perl.
--
Much of the propaganda that passes for news in our own society is given to immobilising and pacifying people and diverting them from the idea that they can confront power. -- John Pilger


Reply via email to