>>>>> Hervé Pagès writes: > Hi Kurt, > Is it intended that numeric_version() returns an error by default on > non-character input in R 4.4.0?
Dear Herve, yes, that's the intention. > It seems that I can turn this into a warning by setting > _R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_=false but I don't > seem to be able to find any of this mentioned in the NEWS file. That's what I added for smoothing the transition: it will be removed from the trunk shortly. Best -k > Thanks, > H. > On 4/1/24 05:28, Kurt Hornik wrote: > Andrea Gilardi via R-devel writes: > Thanks: should be fixed now in the trunk. > Best > -k > Thank you very much Dirk for your kind words and for confirming the > bug. > Next week I will open a new issue on Bugzilla adding the related > patch. > Kind regards > Andrea > On 29/03/2024 20:14, Dirk Eddelbuettel wrote: > On 29 March 2024 at 17:56, Andrea Gilardi via R-devel wrote: > | Dear all, > | > | I have a question regarding the R-devel version of > .make_numeric_version() function. As far as I can understand, the current > code > (https://github.com/wch/r-source/blob/66b91578dfc85140968f07dd4e72d8cb8a54f4c6/src/library/base/R/version.R#L50-L56) > runs the following steps in case of non-character input: > | > | 1. It creates a message named msg using gettextf. > | 2. Such object is then passed to stop(msg) or warning(msg) > according to the following condition > | > | > tolower(Sys.getenv("_R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_") != > "false") > | > | However, I don't understand the previous code since the output > of Sys.getenv("_R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_") != "false" > is just a boolean value and tolower() will just return "true" or "false". > Maybe the intended code is > tolower(Sys.getenv("_R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_")) != > "false" ? Or am I missing something? > Yes, agreed -- good catch. In full, the code is (removing leading > whitespace, and putting it back onto single lines) > msg <- gettextf("invalid non-character version specification 'x' > (type: %s)", typeof(x)) > > if(tolower(Sys.getenv("_R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_") != > "false")) > stop(msg, domain = NA) > else > warning(msg, domain = NA, immediate. = TRUE) > where msg is constant (but reflecting language settings via > standard i18n) > and as you not the parentheses appear wrong. What was intended > is likely > msg <- gettextf("invalid non-character version specification 'x' > (type: %s)", typeof(x)) > > if(tolower(Sys.getenv("_R_CHECK_STOP_ON_INVALID_NUMERIC_VERSION_INPUTS_")) != > "false") > stop(msg, domain = NA) > else > warning(msg, domain = NA, immediate. = TRUE) > If you use bugzilla before and have a handle, maybe file a bug > report with > this as patch at https://bugs.r-project.org/ > Dirk > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- > Hervé Pagès > Bioconductor Core Team > hpages.on.git...@gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel