Re: [Rd] lapply and vapply Primitive Documentation
> Cole Miller > on Thu, 9 Jul 2020 20:38:10 -0400 writes: > The documentation of ?lapply includes: >> lapply and vapply are primitive functions. > However, both evaluate to FALSE in `is.primitive()`: > is.primitive(vapply) #FALSE > is.primitive(lapply) #FALSE > It appears that they are not primitives and that the > documentation might be outdated. Thank you for your time > and work. Thank you, Cole. Indeed, they were primitive originally (but e.g. lapply() seems to have become .Internal with r7885 | ripley | 2000-01-31 08:58:59 +0100 i.e. about 4 weeks *before* release of R 1.0.0 Changes made to both 'R-devel' and 'R-patched'. Martin > Cole Miller > P.S. During research, my favorite `help()` is > `?.Internal()`: "Only true R wizards should even consider > using this function..." Thanks again! ;-) __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] lapply and vapply Primitive Documentation
Was hoping for an almost record old bug fix (older than some R users!), but apparently the documentation bug is only a decade old (maybe only older than some precious R users) https://github.com/wch/r-source/blame/2118f1d0ff70c1ebd06148b6cb7659efe5ff4d99/src/library/base/man/lapply.Rd#L116 (I don't see lapply / vapply referenced as primitive in the original text changed by the commit). Martin Morgan On 7/10/20, 3:52 AM, "R-devel on behalf of Martin Maechler" wrote: > Cole Miller > on Thu, 9 Jul 2020 20:38:10 -0400 writes: > The documentation of ?lapply includes: >> lapply and vapply are primitive functions. > However, both evaluate to FALSE in `is.primitive()`: > is.primitive(vapply) #FALSE > is.primitive(lapply) #FALSE > It appears that they are not primitives and that the > documentation might be outdated. Thank you for your time > and work. Thank you, Cole. Indeed, they were primitive originally (but e.g. lapply() seems to have become .Internal with r7885 | ripley | 2000-01-31 08:58:59 +0100 i.e. about 4 weeks *before* release of R 1.0.0 Changes made to both 'R-devel' and 'R-patched'. Martin > Cole Miller > P.S. During research, my favorite `help()` is > `?.Internal()`: "Only true R wizards should even consider > using this function..." Thanks again! ;-) __ 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
[Rd] Strange behaviour of methods::slot() when returning a tibble
I have an S4 object class defined in a Bioconductor package which contains multiple slots, some of which are tibbles, whilst others are vectors. If I call slot(object, name) where 'name' is an slot that contains a vector, everything works as expected. However, when I call slot(object, name) where 'name' is an slot that contains a tibble I get the following warning: Warning message: `...` is not empty. We detected these problematic arguments: * `needs_dots` These dots only exist to allow future extensions and should be empty. Did you misspecify an argument? Making 'packages.html' ... done Wrapping the call in suppressWarnings() doesn't stop this, and this warning is printed every time the resultant object is called, e.g. df <- slot(object, name); df, would not print the error on the first call, but would print the warning every time df is printed. For an MWE setClass("track", slots = c(x="numeric", y="data.frame")) myTrack <- new("track", x = -4:4, y = tibble(y = 1)) myTrack df <- slot(myTrack, "y") df The package passes R CMD check even though this warning is produced in most examples. Changing to a generic S3 data.frame also doesn't produce this error. I'm running the following configuration: R version 4.0.2 (2020-06-22) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 18.04.4 LTS Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1 locale: [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C LC_TIME=en_AU.UTF-8 [4] LC_COLLATE=en_AU.UTF-8 LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] parallel stats graphics grDevices utils datasets methods base other attached packages: [1] ngsReports_1.5.3tibble_3.0.2ggplot2_3.3.2 BiocGenerics_0.34.0 Thanks in advance, Steve [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
Re: [Rd] Strange behaviour of methods::slot() when returning a tibble
I don't get any warning (but am using slightly different versions of everything than you are). You can find where that message is coming from by running options(warn=2) first, which will convert it to an error. Duncan Murdoch On 10/07/2020 11:54 a.m., Stephen Martin Pederson wrote: I have an S4 object class defined in a Bioconductor package which contains multiple slots, some of which are tibbles, whilst others are vectors. If I call slot(object, name) where 'name' is an slot that contains a vector, everything works as expected. However, when I call slot(object, name) where 'name' is an slot that contains a tibble I get the following warning: Warning message: `...` is not empty. We detected these problematic arguments: * `needs_dots` These dots only exist to allow future extensions and should be empty. Did you misspecify an argument? Making 'packages.html' ... done Wrapping the call in suppressWarnings() doesn't stop this, and this warning is printed every time the resultant object is called, e.g. df <- slot(object, name); df, would not print the error on the first call, but would print the warning every time df is printed. For an MWE setClass("track", slots = c(x="numeric", y="data.frame")) myTrack <- new("track", x = -4:4, y = tibble(y = 1)) myTrack df <- slot(myTrack, "y") df The package passes R CMD check even though this warning is produced in most examples. Changing to a generic S3 data.frame also doesn't produce this error. I'm running the following configuration: R version 4.0.2 (2020-06-22) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 18.04.4 LTS Matrix products: default BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1 locale: [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C LC_TIME=en_AU.UTF-8 [4] LC_COLLATE=en_AU.UTF-8 LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] parallel stats graphics grDevices utils datasets methods base other attached packages: [1] ngsReports_1.5.3tibble_3.0.2ggplot2_3.3.2 BiocGenerics_0.34.0 Thanks in advance, Steve [[alternative HTML version deleted]] __ 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
Re: [Rd] Strange behaviour of methods::slot() when returning a tibble
Thanks Duncan. Much appreciated & I can now see it's ellipsis::check_dots_empty() causing the trouble. I'll take the question to the github issues page for that package. All the best, Steve From: Duncan Murdoch Sent: Saturday, 11 July 2020 1:38 AM To: Stephen Martin Pederson ; r-devel@r-project.org Subject: Re: [Rd] Strange behaviour of methods::slot() when returning a tibble I don't get any warning (but am using slightly different versions of everything than you are). You can find where that message is coming from by running options(warn=2) first, which will convert it to an error. Duncan Murdoch On 10/07/2020 11:54 a.m., Stephen Martin Pederson wrote: > I have an S4 object class defined in a Bioconductor package which contains > multiple slots, some of which are tibbles, whilst others are vectors. If I > call > > slot(object, name) > > where 'name' is an slot that contains a vector, everything works as expected. > However, when I call slot(object, name) where 'name' is an slot that contains > a tibble I get the following warning: > > > Warning message: > `...` is not empty. > > We detected these problematic arguments: > * `needs_dots` > > These dots only exist to allow future extensions and should be empty. > Did you misspecify an argument? > Making 'packages.html' ... done > > Wrapping the call in suppressWarnings() doesn't stop this, and this warning > is printed every time the resultant object is called, e.g. df <- slot(object, > name); df, would not print the error on the first call, but would print the > warning every time df is printed. > > For an MWE > > > setClass("track", slots = c(x="numeric", y="data.frame")) > myTrack <- new("track", x = -4:4, y = tibble(y = 1)) > > myTrack > > df <- slot(myTrack, "y") > df > > The package passes R CMD check even though this warning is produced in most > examples. Changing to a generic S3 data.frame also doesn't produce this > error. I'm running the following configuration: > > > R version 4.0.2 (2020-06-22) > Platform: x86_64-pc-linux-gnu (64-bit) > Running under: Ubuntu 18.04.4 LTS > > Matrix products: default > BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.7.1 > LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.7.1 > > locale: > [1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C > LC_TIME=en_AU.UTF-8 > [4] LC_COLLATE=en_AU.UTF-8 LC_MONETARY=en_AU.UTF-8 > LC_MESSAGES=en_AU.UTF-8 > [7] LC_PAPER=en_AU.UTF-8 LC_NAME=C LC_ADDRESS=C > [10] LC_TELEPHONE=C LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] parallel stats graphics grDevices utils datasets methods base > > other attached packages: > [1] ngsReports_1.5.3tibble_3.0.2ggplot2_3.3.2 > BiocGenerics_0.34.0 > > Thanks in advance, > > Steve > >[[alternative HTML version deleted]] > > __ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > [[alternative HTML version deleted]] __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
[Rd] Compilation error for R 4.0.2
Hello, I experienced a compiler error when I tried to compile the latest version of R i.e. R4.0.2 making iosupport.d from iosupport.c making lapack.d from lapack.c making list.d from list.c making localecharset.d from localecharset.c grep.c(74): catastrophic error: cannot open source file "pcre2.h" # include (The pcre2.h header file is actually present!) I used the following compiler flags: # PCRE2: # - setenv CC gcc setenv CFLAGS " -O2 -fPIC " ./configure --prefix=/uufs/chpc.utah.edu/sys/installdir/pcre2/10.35 \ --enable-pcre2-16 --enable-pcre2-32 --with-pic module purge module load intel/2019.5.281 # USe a modern version of curl & pcre2 (The current one on Centos 7 is TOO old) setenv CURLDIR "/uufs/chpc.utah.edu/sys/installdir/curl/7.65.3" setenv PCRE2DIR "/uufs/chpc.utah.edu/sys/installdir/pcre2/10.35" setenv PATH ${PCRE2DIR}/bin:$PATH Setting Compiler & linker flags: setenv CC icc setenv CXX icpc setenv F77 ifort setenv FC ifort setenv CFLAGS " -axCORE-AVX512,CORE-AVX2,AVX,SSE4.2 -O3 -qopenmp -fp-model precise -fPIC -I${MKLROOT}/include -I${CURLDIR}/include -I${PCRE2DIR}/include " setenv CXXFLAGS " ${CFLAGS} " setenv FFLAGS " ${CFLAGS} " setenv FCFLAGS " ${CFLAGS} " setenv LDFLAGS " -Wl,-rpath=${MKLROOT}/lib/intel64_lin -L${MKLROOT}/lib/intel64_lin -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -Wl,-rpath=/uufs/ chpc.utah.edu/sys/installdir/intel/compilers_and_libraries_2019.5.281/linux/compiler/lib/intel64_lin -L/uufs/ chpc.utah.edu/sys/installdir/intel/compilers_and_libraries_2019.5.281/linux/compiler/lib/intel64_lin -liomp5 -lpthread -ldl -Wl,-rpath=${CURLDIR}/lib -L${CURLDIR}/lib -lcurl -Wl,-rpath=${PCRE2DIR}/lib -L${PCRE2DIR}/lib -lpcre2-8 -lpcre2-posix " ./configure --prefix=/uufs/chpc.utah.edu/sys/installdir/R/4.0.2i --enable-R-profiling --enable-R-shlib --enable-memory-profiling --enable-java --enable-shared=yes --with-blas="$LDFLAGS" --with-readline --with-cairo --with-tcltk --with-libpng --with-jpeglib --with-libtiff --with-ICU --with-pic --with-x --with-lapack --with-pcre2 I also appended the corresponding config.log: Thank you, Wim __ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel