develooper Front page | perl.perl5.porters | Postings from February 2011

Re: [rt.cpan.org #65284] Module broken with 5.13.x development perl versions

Thread Previous | Thread Next
From:
Eric Brine
Date:
February 1, 2011 15:33
Subject:
Re: [rt.cpan.org #65284] Module broken with 5.13.x development perl versions
Message ID:
AANLkTin0SuqD+kCfpzkqMJWN45a+oxfv71UvTchUwoQG@mail.gmail.com
On Tue, Feb 1, 2011 at 2:57 PM, Jesse Vincent <jesse@fsck.com> wrote:

> Before we continue to argue about which fix is the least harmful, let's
> characterize the problem.
>

The problem is probably only affecting some debugging tools, and has been
doing so since 5.12.0 (dev versions aside).

A backwards incompatible change in ->VERSION (the addition of validation in
5.12, the addition of the possibility of throwing exceptions) is causing
some introspection tools to die (e.g. Devel::TraceUse) on the version set
the base.pm in some situations (which it has been doing for "ages").

There's some fault at both ends.

   - ->VERSION changed.

I don't know what problem that addresses. What is gained by having ->VERSION
validate $VERSION if ->VERSION doesn't return a version object? It result
must first be converted into a version object before any comparisons can be
made, and that will do validation.

   - base.pm sets $VERSION to something which isn't a version.

But it used to be treated as valid practically all the time.

Possible fixes:

   - Devel::TraceUse (and the like) should use $VERSION directly.

Argument: Don't ask for the version if you want $VERSION.

   - Devel::TraceUse (and the like) should catch exceptions from ->VERSION.

Argument: New sources of errors are a fact of life.

   - ->VERSION shouldn't validate.

Argument: It's a convenient way of getting $VERSION.

   - ->VERSION should return undef on error (as if $VERSION wasn't set).

Argument: The change to ->VERSION was too major.

   - ->VERSION should accept the string from base.pm.

Argument: The change to ->VERSION didn't reflect current practices.

   - base.pm should stop using an invalid version string.

Argument: Should have known better, GIGO.

Does anyone ever check if $VERSION is set to "-1, ..."?

- Eric

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About