On 7/25/09 1:52 AM, Dave Mitchell wrote:
In general we try strongly to avoid making code that works suddenly start
emitting warnings under later releases of the same maintenance branch.
However, I don't understand what the particular issue of using v-strings
to initialize version objects is?
use version;
$v1 = version->new(v1.2.3); # silent
$v2 = version->new(2.3.4); # warn(v-string without leading 'v'
deprecated for version object)
For bleadperl, I believe Nicolas would like this to be the case:
$any1 = v34.23.45; # silent
$any2 = 45.32.57; # warn(v-string without leading 'v' deprecated)
But whatever, I really don't want a new warning for 5.10.1 at this very
late stage in the game.
None of the third-party modules in the core changed their warning
profile between 5.10.0 and 5.10.1-to-be? I fully support not making the
bare v-string code warn except in blead and hence for 5.12.0. I'd
really rather keep the warning in version.pm just the same.
However, it is your call completely - I just added the warning to
bleadperl (but didn't update any tests). Outside of the version.pm
tests, there was only a single warning from t/pod/diag.t and a couple of
warnings seen from the Module::Build tests (which would also have to be
adjusted since it depends on version.pm and expectations have changed).
I'm traveling today, so I can do whatever needs doing when I get home
tonight. I'd prefer to apply this change:
diff --git a/util.c b/util.c
index 0d524e9..f088e73 100644
--- a/util.c
+++ b/util.c
@@ -4260,8 +4260,12 @@ Perl_scan_version(pTHX_ const char *s, SV *rv,
bool qv)
if ( alpha && saw_period && width == 0 )
Perl_croak(aTHX_ "Invalid version format (misplaced _ in number)");
- if ( saw_period > 1 )
+ if ( saw_period > 1 && qv == 0) {
qv = 1; /* force quoted version processing */
+ if(ckWARN(WARN_SYNTAX))
+ Perl_warner(aTHX_ packWARN(WARN_SYNTAX),
+ "v-string without leading 'v' deprecated for version objects");
+ }
last = pos;
pos = s;
plus the test fixups to blead and then have that go into maint. If you
aren't comfortable with that, I'll just update just the POD and you can
pull that. I'm inclined to make an immediate CPAN release after 0.77
(to match what is in 5.10.1) to include that warning, however, because I
agree with David Golden that the clarity it provides is valuable...
John