CRAN Package Check Results for Package inline

Last updated on 2024-12-22 08:50:05 CET.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 0.3.20 2.56 47.80 50.36 OK
r-devel-linux-x86_64-debian-gcc 0.3.20 1.99 33.21 35.20 OK
r-devel-linux-x86_64-fedora-clang 0.3.20 78.40 OK
r-devel-linux-x86_64-fedora-gcc 0.3.20 77.20 OK
r-devel-windows-x86_64 0.3.20 3.00 106.00 109.00 OK
r-patched-linux-x86_64 0.3.20 2.18 41.14 43.32 ERROR
r-release-linux-x86_64 0.3.20 2.21 40.95 43.16 ERROR
r-release-macos-arm64 0.3.20 45.00 OK
r-release-macos-x86_64 0.3.20 76.00 OK
r-release-windows-x86_64 0.3.20 5.00 130.00 135.00 OK
r-oldrel-macos-arm64 0.3.20 45.00 OK
r-oldrel-macos-x86_64 0.3.20 79.00 OK
r-oldrel-windows-x86_64 0.3.20 6.00 99.00 105.00 OK

Check Details

Version: 0.3.20
Check: examples
Result: ERROR Running examples in ‘inline-Ex.R’ failed The error most likely occurred in: > base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: cfunction > ### Title: Inline C, C++, Fortran function calls from R > ### Aliases: cfunction setCMethod > ### Keywords: file > > ### ** Examples > > > x <- as.numeric(1:10) > n <- as.integer(10) > > ## Not run: > ##D ## A simple Fortran example - n and x: assumed-size vector > ##D code <- " > ##D integer i > ##D do 1 i=1, n(1) > ##D 1 x(i) = x(i)**3 > ##D " > ##D cubefn <- cfunction(signature(n="integer", x="numeric"), code, convention=".Fortran") > ##D print(cubefn) > ##D > ##D cubefn(n, x)$x > ##D > ##D ## Same Fortran example - now n is one number > ##D code2 <- " > ##D integer i > ##D do 1 i=1, n > ##D 1 x(i) = x(i)**3 > ##D " > ##D cubefn2 <- cfunction(signature(n="integer", x="numeric"), implicit = "none", > ##D dim = c("", "(*)"), code2, convention=".Fortran") > ##D > ##D cubefn2(n, x)$x > ##D > ##D ## Same in F95, now x is fixed-size vector (length = n) > ##D code3 <- "x = x*x*x" > ##D cubefn3 <- cfunction(sig = signature(n="integer", x="numeric"), implicit = "none", > ##D dim = c("", "(n)"), code3, language="F95") > ##D cubefn3(20, 1:20) > ##D print(cubefn3) > ##D > ##D ## Same example in C > ##D code4 <- " > ##D int i; > ##D for (i = 0; i < *n; i++) > ##D x[i] = x[i]*x[i]*x[i]; > ##D " > ##D cubefn4 <- cfunction(signature(n="integer", x="numeric"), code4, language = "C", convention = ".C") > ##D cubefn4(20, 1:20) > ##D > ##D ## Give the function in the source code a name > ##D cubefn5 <- cfunction(signature(n="integer", x="numeric"), code4, language = "C", convention = ".C", > ##D name = "cubefn") > ##D code(cubefn5) > ## End(Not run) > > ## use of a module in F95 > modct <- "module modcts + double precision, parameter :: pi = 3.14159265358979 + double precision, parameter :: e = 2.71828182845905 + end" > > getconstants <- "x(1) = pi + x(2) = e" > > cgetcts <- cfunction(getconstants, module = "modcts", implicit = "none", + includes = modct, sig = c(x = "double"), dim = c("(2)"), language = "F95") > > cgetcts(x = 1:2) $x [1] 3.141593 2.718282 > print(cgetcts) An object of class 'CFunc' function (x) .Primitive(".Fortran")(<pointer: 0x7f06d6d48100>, x = as.double(x)) <environment: 0x564231f491f8> code: 1: module modcts 2: double precision, parameter :: pi = 3.14159265358979 3: double precision, parameter :: e = 2.71828182845905 4: end 5: SUBROUTINE file22b9751e5eec40 ( x ) 6: USE modcts 7: IMPLICIT none 8: DOUBLE PRECISION x(2) 9: x(1) = pi 10: x(2) = e 11: RETURN 12: END 13: > > ## Use of .C convention with C code > ## Defining two functions, one of which calls the other > sigSq <- signature(n="integer", x="numeric") > codeSq <- " + for (int i=0; i < *n; i++) { + x[i] = x[i]*x[i]; + }" > sigQd <- signature(n="integer", x="numeric") > codeQd <- " + squarefn(n, x); + squarefn(n, x); + " > > fns <- cfunction( list(squarefn=sigSq, quadfn=sigQd), + list(codeSq, codeQd), + convention=".C") > > squarefn <- fns[["squarefn"]] > quadfn <- fns[["quadfn"]] > > squarefn(n, x)$x [1] 1 4 9 16 25 36 49 64 81 100 > quadfn(n, x)$x [1] 1 16 81 256 625 1296 2401 4096 6561 10000 > > ## Alternative declaration using 'setCMethod' > setCMethod(c("squarefn", "quadfn"), list(sigSq, sigQd), + list(codeSq, codeQd), convention=".C") > > squarefn(n, x)$x [1] 1 4 9 16 25 36 49 64 81 100 > quadfn(n, x)$x [1] 1 16 81 256 625 1296 2401 4096 6561 10000 > > ## Use of .Call convention with C code > ## Multyplying each image in a stack with a 2D Gaussian at a given position > code <- " + SEXP res; + int nprotect = 0, nx, ny, nz, x, y; + PROTECT(res = Rf_duplicate(a)); nprotect++; + nx = INTEGER(GET_DIM(a))[0]; + ny = INTEGER(GET_DIM(a))[1]; + nz = INTEGER(GET_DIM(a))[2]; + double sigma2 = REAL(s)[0] * REAL(s)[0], d2 ; + double cx = REAL(centre)[0], cy = REAL(centre)[1], *data, *rdata; + for (int im = 0; im < nz; im++) { + data = &(REAL(a)[im*nx*ny]); rdata = &(REAL(res)[im*nx*ny]); + for (x = 0; x < nx; x++) + for (y = 0; y < ny; y++) { + d2 = (x-cx)*(x-cx) + (y-cy)*(y-cy); + rdata[x + y*nx] = data[x + y*nx] * exp(-d2/sigma2); + } + } + UNPROTECT(nprotect); + return res; + " > funx <- cfunction(signature(a="array", s="numeric", centre="numeric"), code) ERROR(s) during compilation: source code errors or compiler configuration errors! make cmd is make -f '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/etc/Makeconf' -f '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/share/make/shlib.mk' -f '/home/hornik/.R/Makevars-gcc' SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB='file22b9752e0d99da.so' CXX_DEFS=-DR_NO_REMAP OBJECTS='file22b9752e0d99da.o' make would use make[1]: Entering directory '/home/hornik/tmp/scratch/RtmpZ4r1jj' g++-14 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/include" -DNDEBUG -I/usr/local/include -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -DR_NO_REMAP -c file22b9752e0d99da.cpp -o file22b9752e0d99da.o if test "zfile22b9752e0d99da.o" != "z"; then \ echo g++-14 -std=gnu++17 -shared -L"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/lib" -Wl,-O1 -o file22b9752e0d99da.so file22b9752e0d99da.o -L"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/lib" -lR; \ g++-14 -std=gnu++17 -shared -L"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/lib" -Wl,-O1 -o file22b9752e0d99da.so file22b9752e0d99da.o -L"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/lib" -lR; \ fi make[1]: Leaving directory '/home/hornik/tmp/scratch/RtmpZ4r1jj' Program source: 1: #include <R.h> 2: #include <Rdefines.h> 3: #include <R_ext/Error.h> 4: 5: 6: extern "C" { 7: SEXP file22b9752e0d99da ( SEXP a, SEXP s, SEXP centre ); 8: } 9: 10: SEXP file22b9752e0d99da ( SEXP a, SEXP s, SEXP centre ) { 11: 12: SEXP res; 13: int nprotect = 0, nx, ny, nz, x, y; 14: PROTECT(res = Rf_duplicate(a)); nprotect++; 15: nx = INTEGER(GET_DIM(a))[0]; 16: ny = INTEGER(GET_DIM(a))[1]; 17: nz = INTEGER(GET_DIM(a))[2]; 18: double sigma2 = REAL(s)[0] * REAL(s)[0], d2 ; 19: double cx = REAL(centre)[0], cy = REAL(centre)[1], *data, *rdata; 20: for (int im = 0; im < nz; im++) { 21: data = &(REAL(a)[im*nx*ny]); rdata = &(REAL(res)[im*nx*ny]); 22: for (x = 0; x < nx; x++) 23: for (y = 0; y < ny; y++) { 24: d2 = (x-cx)*(x-cx) + (y-cy)*(y-cy); 25: rdata[x + y*nx] = data[x + y*nx] * exp(-d2/sigma2); 26: } 27: } 28: UNPROTECT(nprotect); 29: return res; 30: 31: warning("your C program does not return anything!"); 32: return R_NilValue; 33: } Compilation ERROR, function(s)/method(s) not created! Error in compileCode(f, code, language, verbose) : using C++ compiler: ‘g++-14 (Debian 14.2.0-8) 14.2.0’ file22b9752e0d99da.cpp: In function ‘SEXPREC* file22b9752e0d99da(SEXP, SEXP, SEXP)’: file22b9752e0d99da.cpp:31:3: error: ‘warning’ was not declared in this scope; did you mean ‘Rf_warning’? 31 | warning("your C program does not return anything!"); | ^~~~~~~ | Rf_warning make[1]: *** [/home/hornik/tmp/R.check/r-patched-gcc/Work/build/etc/Makeconf:202: file22b9752e0d99da.o] Error 1 Calls: cfunction -> compileCode Execution halted Flavor: r-patched-linux-x86_64

Version: 0.3.20
Check: examples
Result: ERROR Running examples in ‘inline-Ex.R’ failed The error most likely occurred in: > base::assign(".ptime", proc.time(), pos = "CheckExEnv") > ### Name: cfunction > ### Title: Inline C, C++, Fortran function calls from R > ### Aliases: cfunction setCMethod > ### Keywords: file > > ### ** Examples > > > x <- as.numeric(1:10) > n <- as.integer(10) > > ## Not run: > ##D ## A simple Fortran example - n and x: assumed-size vector > ##D code <- " > ##D integer i > ##D do 1 i=1, n(1) > ##D 1 x(i) = x(i)**3 > ##D " > ##D cubefn <- cfunction(signature(n="integer", x="numeric"), code, convention=".Fortran") > ##D print(cubefn) > ##D > ##D cubefn(n, x)$x > ##D > ##D ## Same Fortran example - now n is one number > ##D code2 <- " > ##D integer i > ##D do 1 i=1, n > ##D 1 x(i) = x(i)**3 > ##D " > ##D cubefn2 <- cfunction(signature(n="integer", x="numeric"), implicit = "none", > ##D dim = c("", "(*)"), code2, convention=".Fortran") > ##D > ##D cubefn2(n, x)$x > ##D > ##D ## Same in F95, now x is fixed-size vector (length = n) > ##D code3 <- "x = x*x*x" > ##D cubefn3 <- cfunction(sig = signature(n="integer", x="numeric"), implicit = "none", > ##D dim = c("", "(n)"), code3, language="F95") > ##D cubefn3(20, 1:20) > ##D print(cubefn3) > ##D > ##D ## Same example in C > ##D code4 <- " > ##D int i; > ##D for (i = 0; i < *n; i++) > ##D x[i] = x[i]*x[i]*x[i]; > ##D " > ##D cubefn4 <- cfunction(signature(n="integer", x="numeric"), code4, language = "C", convention = ".C") > ##D cubefn4(20, 1:20) > ##D > ##D ## Give the function in the source code a name > ##D cubefn5 <- cfunction(signature(n="integer", x="numeric"), code4, language = "C", convention = ".C", > ##D name = "cubefn") > ##D code(cubefn5) > ## End(Not run) > > ## use of a module in F95 > modct <- "module modcts + double precision, parameter :: pi = 3.14159265358979 + double precision, parameter :: e = 2.71828182845905 + end" > > getconstants <- "x(1) = pi + x(2) = e" > > cgetcts <- cfunction(getconstants, module = "modcts", implicit = "none", + includes = modct, sig = c(x = "double"), dim = c("(2)"), language = "F95") > > cgetcts(x = 1:2) $x [1] 3.141593 2.718282 > print(cgetcts) An object of class 'CFunc' function (x) .Primitive(".Fortran")(<pointer: 0x7f7f61145100>, x = as.double(x)) <environment: 0x55d895bc75b0> code: 1: module modcts 2: double precision, parameter :: pi = 3.14159265358979 3: double precision, parameter :: e = 2.71828182845905 4: end 5: SUBROUTINE file1df94a32722840 ( x ) 6: USE modcts 7: IMPLICIT none 8: DOUBLE PRECISION x(2) 9: x(1) = pi 10: x(2) = e 11: RETURN 12: END 13: > > ## Use of .C convention with C code > ## Defining two functions, one of which calls the other > sigSq <- signature(n="integer", x="numeric") > codeSq <- " + for (int i=0; i < *n; i++) { + x[i] = x[i]*x[i]; + }" > sigQd <- signature(n="integer", x="numeric") > codeQd <- " + squarefn(n, x); + squarefn(n, x); + " > > fns <- cfunction( list(squarefn=sigSq, quadfn=sigQd), + list(codeSq, codeQd), + convention=".C") > > squarefn <- fns[["squarefn"]] > quadfn <- fns[["quadfn"]] > > squarefn(n, x)$x [1] 1 4 9 16 25 36 49 64 81 100 > quadfn(n, x)$x [1] 1 16 81 256 625 1296 2401 4096 6561 10000 > > ## Alternative declaration using 'setCMethod' > setCMethod(c("squarefn", "quadfn"), list(sigSq, sigQd), + list(codeSq, codeQd), convention=".C") > > squarefn(n, x)$x [1] 1 4 9 16 25 36 49 64 81 100 > quadfn(n, x)$x [1] 1 16 81 256 625 1296 2401 4096 6561 10000 > > ## Use of .Call convention with C code > ## Multyplying each image in a stack with a 2D Gaussian at a given position > code <- " + SEXP res; + int nprotect = 0, nx, ny, nz, x, y; + PROTECT(res = Rf_duplicate(a)); nprotect++; + nx = INTEGER(GET_DIM(a))[0]; + ny = INTEGER(GET_DIM(a))[1]; + nz = INTEGER(GET_DIM(a))[2]; + double sigma2 = REAL(s)[0] * REAL(s)[0], d2 ; + double cx = REAL(centre)[0], cy = REAL(centre)[1], *data, *rdata; + for (int im = 0; im < nz; im++) { + data = &(REAL(a)[im*nx*ny]); rdata = &(REAL(res)[im*nx*ny]); + for (x = 0; x < nx; x++) + for (y = 0; y < ny; y++) { + d2 = (x-cx)*(x-cx) + (y-cy)*(y-cy); + rdata[x + y*nx] = data[x + y*nx] * exp(-d2/sigma2); + } + } + UNPROTECT(nprotect); + return res; + " > funx <- cfunction(signature(a="array", s="numeric", centre="numeric"), code) ERROR(s) during compilation: source code errors or compiler configuration errors! make cmd is make -f '/home/hornik/tmp/R.check/r-release-gcc/Work/build/etc/Makeconf' -f '/home/hornik/tmp/R.check/r-release-gcc/Work/build/share/make/shlib.mk' -f '/home/hornik/.R/Makevars-gcc' SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB='file1df94a1db4f949.so' CXX_DEFS=-DR_NO_REMAP OBJECTS='file1df94a1db4f949.o' make would use make[1]: Entering directory '/home/hornik/tmp/scratch/RtmpAVBfRj' g++-14 -std=gnu++17 -I"/home/hornik/tmp/R.check/r-release-gcc/Work/build/include" -DNDEBUG -I/usr/local/include -D_FORTIFY_SOURCE=3 -fpic -g -O2 -Wall -pedantic -mtune=native -DR_NO_REMAP -c file1df94a1db4f949.cpp -o file1df94a1db4f949.o if test "zfile1df94a1db4f949.o" != "z"; then \ echo g++-14 -std=gnu++17 -shared -L"/home/hornik/tmp/R.check/r-release-gcc/Work/build/lib" -Wl,-O1 -o file1df94a1db4f949.so file1df94a1db4f949.o -L"/home/hornik/tmp/R.check/r-release-gcc/Work/build/lib" -lR; \ g++-14 -std=gnu++17 -shared -L"/home/hornik/tmp/R.check/r-release-gcc/Work/build/lib" -Wl,-O1 -o file1df94a1db4f949.so file1df94a1db4f949.o -L"/home/hornik/tmp/R.check/r-release-gcc/Work/build/lib" -lR; \ fi make[1]: Leaving directory '/home/hornik/tmp/scratch/RtmpAVBfRj' Program source: 1: #include <R.h> 2: #include <Rdefines.h> 3: #include <R_ext/Error.h> 4: 5: 6: extern "C" { 7: SEXP file1df94a1db4f949 ( SEXP a, SEXP s, SEXP centre ); 8: } 9: 10: SEXP file1df94a1db4f949 ( SEXP a, SEXP s, SEXP centre ) { 11: 12: SEXP res; 13: int nprotect = 0, nx, ny, nz, x, y; 14: PROTECT(res = Rf_duplicate(a)); nprotect++; 15: nx = INTEGER(GET_DIM(a))[0]; 16: ny = INTEGER(GET_DIM(a))[1]; 17: nz = INTEGER(GET_DIM(a))[2]; 18: double sigma2 = REAL(s)[0] * REAL(s)[0], d2 ; 19: double cx = REAL(centre)[0], cy = REAL(centre)[1], *data, *rdata; 20: for (int im = 0; im < nz; im++) { 21: data = &(REAL(a)[im*nx*ny]); rdata = &(REAL(res)[im*nx*ny]); 22: for (x = 0; x < nx; x++) 23: for (y = 0; y < ny; y++) { 24: d2 = (x-cx)*(x-cx) + (y-cy)*(y-cy); 25: rdata[x + y*nx] = data[x + y*nx] * exp(-d2/sigma2); 26: } 27: } 28: UNPROTECT(nprotect); 29: return res; 30: 31: warning("your C program does not return anything!"); 32: return R_NilValue; 33: } Compilation ERROR, function(s)/method(s) not created! Error in compileCode(f, code, language, verbose) : using C++ compiler: ‘g++-14 (Debian 14.2.0-8) 14.2.0’ file1df94a1db4f949.cpp: In function ‘SEXPREC* file1df94a1db4f949(SEXP, SEXP, SEXP)’: file1df94a1db4f949.cpp:31:3: error: ‘warning’ was not declared in this scope; did you mean ‘Rf_warning’? 31 | warning("your C program does not return anything!"); | ^~~~~~~ | Rf_warning make[1]: *** [/home/hornik/tmp/R.check/r-release-gcc/Work/build/etc/Makeconf:202: file1df94a1db4f949.o] Error 1 Calls: cfunction -> compileCode Execution halted Flavor: r-release-linux-x86_64

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.