Dipterix Wang
2023-Jul-06 06:37 UTC
[Rd] numeric_version doesn't like numeric versions anymore?
Dear R devs, I installed the recent devel R to test a package error when I intercept this warning when loading packages: ``` Warning in .make_numeric_version(x, strict, .standard_regexps()$valid_numeric_version) : invalid non-character version specification 'x' (type: double) ``` After a long debugging, I realize that `numeric_version` in base does not support numerical input x by default now. A reproducible example: R 4.4 ```> numeric_version(1.5)Warning in .make_numeric_version(x, strict, .standard_regexps()$valid_numeric_version) : invalid non-character version specification 'x' (type: double) [1] ?1.5? ``` R 4.3.1 ```> numeric_version(1.5)[1] ?1.5? ``` According to help document, `strict=TRUE` should result in errors, then the 4.3 behavior was actually incorrect. According to pkgload maintainer, Kurt has sent him an email to fix this, suggesting this on-going change is intentional. May I ask is there any benefit of changing the behavior? Thanks, - D [[alternative HTML version deleted]]
Sebastian Meyer
2023-Jul-06 07:52 UTC
[Rd] numeric_version doesn't like numeric versions anymore?
Please see <https://bugs.r-project.org/show_bug.cgi?id=18548> for the
background. The documentation has always said that the input needs to be
a character vector. Implicit conversion of numeric input to character is
affected by R options (OutDec and scipen), but it is also error-prone in
this context:
R> package_version("1.3") > 1.20
[1] TRUE
This now warns for a good reason in my opinion.
Best regards,
Sebastian Meyer
Am 06.07.23 um 08:37 schrieb Dipterix Wang:> Dear R devs,
>
> I installed the recent devel R to test a package error when I intercept
this warning when loading packages:
>
> ```
> Warning in .make_numeric_version(x, strict,
.standard_regexps()$valid_numeric_version) :
> invalid non-character version specification 'x' (type: double)
> ```
>
> After a long debugging, I realize that `numeric_version` in base does not
support numerical input x by default now.
>
> A reproducible example:
>
> R 4.4
>
> ```
>> numeric_version(1.5)
> Warning in .make_numeric_version(x, strict,
.standard_regexps()$valid_numeric_version) :
> invalid non-character version specification 'x' (type: double)
> [1] ?1.5?
> ```
>
>
> R 4.3.1
>
> ```
>> numeric_version(1.5)
> [1] ?1.5?
> ```
>
> According to help document, `strict=TRUE` should result in errors, then the
4.3 behavior was actually incorrect. According to pkgload maintainer, Kurt has
sent him an email to fix this, suggesting this on-going change is intentional.
>
> May I ask is there any benefit of changing the behavior?
>
> Thanks,
> - D
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
Seemingly Similar Threads
- Question regarding .make_numeric_version with non-character input
- Question regarding .make_numeric_version with non-character input
- max on numeric_version with long components
- Question regarding .make_numeric_version with non-character input
- max on numeric_version with long components