Open martin-g opened 1 year ago
The package is still failing on Linux ARM64.
@HenrikBengtsson Would you mind taking a look? Thanks
I'm sorry, I have no time and I don't have access to macOS or M1/M2 machines. @kasperdanielhansen?
Hi!
We have written two articles about how to test a Bioc package on Linux ARM64 via emulation:
I hope they are useful to you!
I'd be happy to test any patches/fixes on real ARM64 hardware too!
I've added macOS-14 checks to GitHub Actions in the develop
branch;
The 'macOS-14' builder runs exclusively on M1, cf. https://github.blog/changelog/2024-01-30-github-actions-macos-14-sonoma-is-now-available/.
I was hoping this would reproduce the problem, but it turns out that affxparser passes R CMD check
on this set up too:
* checking for file ‘.../DESCRIPTION’ ... OK
* preparing ‘affxparser’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* running ‘cleanup’
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
* building ‘affxparser_1.75.0.tar.gz’
── R CMD check ─────────────────────
* using log directory ‘/Users/runner/work/affxparser/affxparser/check/affxparser.Rcheck’
* using R Under development (unstable) (2024-02-02 r85855)
* using platform: aarch64-apple-darwin20
* R was compiled by
Apple clang version 14.0.0 (clang-1400.0.29.202)
GNU Fortran (GCC) 12.2.0
* running under: macOS Sonoma 14.2.1
* using session charset: UTF-8
* using options ‘--no-manual --as-cran’
* checking for file ‘affxparser/DESCRIPTION’ ... OK
* this is package ‘affxparser’ version ‘1.75.0’
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for executable files ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking serialization versions ... OK
* checking whether package ‘affxparser’ can be installed ... [40s/41s] WARNING
Found the following significant warnings:
fusion/calvin_files/utils/src/AffymetrixGuid.cpp:106:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
fusion/util/AffxConv.cpp:122:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
fusion/util/AffxConv.cpp:124:8: warning: self-comparison always evaluates to false [-Wtautological-compare]
fusion/util/AffxConv.cpp:178:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
fusion/util/AffxConv.cpp:200:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
fusion/util/AffxConv.cpp:224:2: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
R_affx_cdf_parser.cpp:1098:11: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
R_affx_cdf_parser.cpp:1099:17: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
R_affx_cdf_parser.cpp:1356:11: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
R_affx_cdf_parser.cpp:1357:17: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
R_affx_cdf_parser.cpp:1729:11: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations]
R_affx_cdf_parser.cpp:1730:17: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
R_affx_clf_pgf_parser.cpp:261:25: warning: flag ''' results in undefined behavior with 's' conversion specifier [-Wformat]
R_affx_clf_pgf_parser.cpp:261:26: warning: flag ' ' results in undefined behavior with 's' conversion specifier [-Wformat]
R_affx_clf_pgf_parser.cpp:306:25: warning: flag ''' results in undefined behavior with 's' conversion specifier [-Wformat]
R_affx_clf_pgf_parser.cpp:306:26: warning: flag ' ' results in undefined behavior with 's' conversion specifier [-Wformat]
R_affx_chp_parser.cpp:145:6: warning: format specifies type 'char *' but the argument has type 'SEXP' (aka 'SEXPREC *') [-Wformat]
See ‘/Users/runner/work/affxparser/affxparser/check/affxparser.Rcheck/00install.out’ for details.
* used C compiler: ‘Apple clang version 15.0.0 (clang-1500.0.40.1)’
* used C++ compiler: ‘Apple clang version 15.0.0 (clang-1500.0.40.1)’
* used SDK: ‘MacOSX14.2.sdk’
* checking installed package size ... NOTE
installed size is 6.1Mb
sub-directories of 1Mb or more:
libs 5.3Mb
* checking package directory ... OK
* checking for future file timestamps ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking loading without being on the library search path ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... NOTE
checkRd: (-1) applyCdfGroups.Rd:37-46: Lost braces in \itemize; meant \describe ?
checkRd: (-1) applyCdfGroups.Rd:47-59: Lost braces in \itemize; meant \describe ?
* checking Rd metadata ... OK
* checking Rd line widths ... OK
* checking Rd cross-references ... NOTE
Package unavailable to check Rd xrefs: ‘affy’
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... NOTE
Documented arguments not in \usage in Rd file 'cdfSetDimension.Rd':
‘groups’ ‘which’
Documented arguments not in \usage in Rd file 'readCdf.Rd':
‘readExpos’
Documented arguments not in \usage in Rd file 'writeCelHeader.Rd':
‘outputFormat’
Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
The \usage entries must correspond to syntactically valid R code.
See chapter ‘Writing R documentation files’ in the ‘Writing R
Extensions’ manual.
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking line endings in shell scripts ... OK
* checking line endings in C/C++/Fortran sources/headers ... OK
* checking line endings in Makefiles ... OK
* checking compilation flags in Makevars ... OK
* checking for GNU extensions in Makefiles ... OK
* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
* checking use of PKG_*FLAGS in Makefiles ... OK
* checking use of SHLIB_OPENMP_*FLAGS in Makefiles ... OK
* checking pragmas in C/C++ headers and code ... OK
* checking compilation flags used ... WARNING
Warning: Compilation used the following non-portable flag(s):
‘-Wno-sign-compare’
including flag(s) suppressing warnings
* checking compiled code ... WARNING
Warning: File ‘affxparser/libs/affxparser.so’:
Found ‘___stdoutp’, possibly from ‘stdout’ (C)
Object: ‘fusion/util/Util.o’
Found ‘__ZNSt3__14cerrE’, possibly from ‘std::cerr’ (C++)
Object: ‘fusion/util/Verbose.o’
Found ‘__ZNSt3__14coutE’, possibly from ‘std::cout’ (C++)
Objects: ‘fusion/file/TsvFile/TsvFile.o’, ‘fusion/util/Err.o’
Found ‘_exit’, possibly from ‘exit’ (C)
Objects: ‘fusion/util/Err.o’, ‘R_affx_clf_pgf_parser.o’
Found ‘_printf’, possibly from ‘printf’ (C)
Object: ‘fusion/file/TsvFile/TsvFile.o’
Found ‘_rand’, possibly from ‘rand’ (C)
Objects: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’,
‘fusion/util/Verbose.o’
Found ‘_sprintf’, possibly from ‘sprintf’ (C)
Objects: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’,
‘fusion/util/AffxConv.o’, ‘R_affx_cdf_parser.o’
Found ‘_srand’, possibly from ‘srand’ (C)
Object: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’
Compiled code should not call entry points which might terminate R nor
write to stdout/stderr instead of to the console, nor use Fortran I/O
nor system RNGs nor [v]sprintf.
See ‘Writing portable packages’ in the ‘Writing R Extensions’ manual.
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
Running ‘convertCel.R’
Running ‘readCdfDataFrame.R’
Running ‘readCdfQc.R’
Running ‘readCdfUnits_etal.R’
Running ‘readCdfUnitsWriteMap.R’
Running ‘readCel.R’
Running ‘readCelIntensities.R’
Running ‘readCelRectangle.R’
Running ‘readCelUnits.R’
Running ‘readPgf.R’
Running ‘testWriteAndReadEmptyCdf.R’
Running ‘testWriteAndReadEmptyC
el.R’
OK
* checking for non-standard things in the check directory ... OK
* checking for detritus in the temp directory ... OK
* DONE
Status: 3 WARNINGs, 4 NOTEs
See
‘/Users/runner/work/affxparser/affxparser/check/affxparser.Rcheck/00check.log’
Let me re-test on Linux ARM64!
Still the same error:
biocbuild@kunpeng2 ~/git> R CMD build affxparser
* checking for file ‘affxparser/DESCRIPTION’ ... OK
* preparing ‘affxparser’:
* checking DESCRIPTION meta-information ... OK
* cleaning src
* running ‘cleanup’
* checking for LF line-endings in source and make files and shell scripts
* checking for empty or unneeded directories
* building ‘affxparser_1.75.0.tar.gz’
biocbuild@kunpeng2 ~/git> R CMD check affxparser_1.75.0.tar.gz
* using log directory ‘/home/biocbuild/git/affxparser.Rcheck’
* using R Under development (unstable) (2024-01-16 r85812)
* using platform: aarch64-unknown-linux-gnu
* R was compiled by
gcc (GCC) 10.3.1
GNU Fortran (GCC) 10.3.1
* running under: openEuler 22.03 (LTS-SP1)
* using session charset: UTF-8
* checking for file ‘affxparser/DESCRIPTION’ ... OK
* this is package ‘affxparser’ version ‘1.75.0’
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking whether package ‘affxparser’ can be installed ... WARNING
Found the following significant warnings:
fusion/file/CELFileData.cpp:2409:27: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2414:27: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2419:28: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2445:37: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2451:37: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2457:38: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2506:23: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2509:23: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2512:24: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2551:24: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:2554:24: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:3194:16: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:3199:16: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:3204:17: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:3251:17: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:3255:16: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/CELFileData.cpp:3294:28: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member]
fusion/file/TsvFile/TsvFile.cpp:4921:20: warning: catching polymorphic type ‘class std::exception’ by value [-Wcatch-value=]
fusion/file/TsvFile/TsvFile.cpp:4970:20: warning: catching polymorphic type ‘class std::exception’ by value [-Wcatch-value=]
fusion/util/AffxConv.cpp:124:8: warning: self-comparison always evaluates to false [-Wtautological-compare]
R_affx_clf_pgf_parser.cpp:261:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=]
R_affx_clf_pgf_parser.cpp:261:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=]
R_affx_clf_pgf_parser.cpp:306:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=]
R_affx_clf_pgf_parser.cpp:306:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=]
R_affx_chp_parser.cpp:144:46: warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘SEXP’ {aka ‘SEXPREC*’} [-Wformat=]
See ‘/home/biocbuild/git/affxparser.Rcheck/00install.out’ for details.
* used C compiler: ‘gcc (GCC) 10.3.1’
* used C++ compiler: ‘g++ (GCC) 10.3.1’
* checking installed package size ... NOTE
installed size is 18.8Mb
sub-directories of 1Mb or more:
libs 18.2Mb
* checking package directory ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking loading without being on the library search path ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... NOTE
Documented arguments not in \usage in Rd file 'cdfSetDimension.Rd':
‘groups’ ‘which’
Documented arguments not in \usage in Rd file 'readCdf.Rd':
‘readExpos’
Documented arguments not in \usage in Rd file 'writeCelHeader.Rd':
‘outputFormat’
Functions with \usage entries need to have the appropriate \alias
entries, and all their arguments documented.
The \usage entries must correspond to syntactically valid R code.
See chapter ‘Writing R documentation files’ in the ‘Writing R
Extensions’ manual.
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking line endings in shell scripts ... OK
* checking line endings in C/C++/Fortran sources/headers ... OK
* checking line endings in Makefiles ... OK
* checking compilation flags in Makevars ... OK
* checking for GNU extensions in Makefiles ... OK
* checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
* checking use of PKG_*FLAGS in Makefiles ... OK
* checking compiled code ... WARNING
File ‘affxparser/libs/affxparser.so’:
Found ‘_ZSt4cerr’, possibly from ‘std::cerr’ (C++)
Object: ‘fusion/util/Verbose.o’
Found ‘_ZSt4cout’, possibly from ‘std::cout’ (C++)
Objects: ‘fusion/file/TsvFile/TsvFile.o’, ‘fusion/util/Err.o’
Found ‘abort’, possibly from ‘abort’ (C)
Objects: ‘fusion/calvin_files/fusion/src/FusionCHPData.o’,
‘fusion/calvin_files/fusion/src/GCOSAdapter/GCOSCHPDataAdapter.o’,
‘fusion/calvin_files/parameter/src/ParameterNameValueType.o’,
‘fusion/file/BPMAPFileWriter.o’
Found ‘exit’, possibly from ‘exit’ (C)
Objects: ‘fusion/util/Err.o’, ‘R_affx_clf_pgf_parser.o’
Found ‘printf’, possibly from ‘printf’ (C)
Object: ‘fusion/file/TsvFile/TsvFile.o’
Found ‘putchar’, possibly from ‘putchar’ (C)
Object: ‘fusion/file/TsvFile/TsvFile.o’
Found ‘puts’, possibly from ‘printf’ (C), ‘puts’ (C)
Object: ‘fusion/file/TsvFile/TsvFile.o’
Found ‘rand’, possibly from ‘rand’ (C)
Objects: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’,
‘fusion/util/Verbose.o’
Found ‘sprintf’, possibly from ‘sprintf’ (C)
Objects: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’,
‘fusion/util/AffxConv.o’, ‘R_affx_cdf_parser.o’
Found ‘srand’, possibly from ‘srand’ (C)
Object: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’
Found ‘stdout’, possibly from ‘stdout’ (C)
Object: ‘fusion/util/Util.o’
Compiled code should not call entry points which might terminate R nor
write to stdout/stderr instead of to the console, nor use Fortran I/O
nor system RNGs nor [v]sprintf.
See ‘Writing portable packages’ in the ‘Writing R Extensions’ manual.
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
Running ‘convertCel.R’
Running ‘readCdfDataFrame.R’
Running ‘readCdfQc.R’
Running ‘readCdfUnitsWriteMap.R’
Running ‘readCdfUnits_etal.R’
Running ‘readCel.R’
Running ‘readCelIntensities.R’
Running ‘readCelRectangle.R’
Running ‘readCelUnits.R’
Running ‘readPgf.R’
ERROR
Running the tests in ‘tests/readPgf.R’ failed.
Last 13 lines of output:
+ n <- sample(Jall, size=1L)
+ idxs <- sort(sample(1:Jall, size=n, replace=FALSE))
+ data <- readPgf(pgf, indices=idxs)
+ dataS <- subsetPgf(data0, indices=idxs)
+ for (ff in c("probesetStartAtom", "atomExonPosition"))
+ data[[ff]] <- dataS[[ff]] <- NULL
+ stopifnot(all.equal(data, dataS))
+ }
+ } # if (require("AffymetrixDataTestFiles"))
Loading required package: AffymetrixDataTestFiles
Error in readPgfEnv(file, readBody = TRUE, indices = indices) :
FATAL ERROR:fusion/file/TsvFile/TsvFile.cpp:953: Conversion error
TSVERROR: '/home/biocbuild/R/R-devel_2024-01-16_r85812/site-library/AffymetrixDataTestFiles/annotationData/chipTypes/HuGene-1_0-st-v1/HuGene-1_0-st-v1.r4,10_probesets.pgf':90: Conversion of required field 'probeset_id' to int of '�' failed!
Calls: readPgf -> as.list -> readPgfEnv
Execution halted
* checking PDF version of manual ... OK
* DONE
Status: 1 ERROR, 2 WARNINGs, 2 NOTEs
See
‘/home/biocbuild/git/affxparser.Rcheck/00check.log’
for details.
Looking at Martin's output (thanks), we have a couple of notes that we can/should get fixed.
Most of the warnings from the C++ code are about files which originates from the Fusion SDK we bundle and that we don't want to touch.
However, we get the following from "our" files
R_affx_clf_pgf_parser.cpp:261:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:261:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:306:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:306:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_chp_parser.cpp:144:46: warning: format ‘%s’ expects argument of type ‘char’, but argument 2 has type ‘SEXP’ {aka ‘SEXPREC’} [-Wformat=] See ‘/home/biocbuild/git/affxparser.Rcheck/00install.out’ for details.
and these are the only references to the PGF format in the C++ warnings. Given that the ERROR is in the example for PGF (I think), it seems like this is where we should start.
Best, Kasper
On Mon, Feb 5, 2024 at 5:32 AM Martin Grigorov @.***> wrote:
Still the same error:
@.*** ~/git> R CMD build affxparser
- checking for file ‘affxparser/DESCRIPTION’ ... OK
- preparing ‘affxparser’:
- checking DESCRIPTION meta-information ... OK
- cleaning src
- running ‘cleanup’
- checking for LF line-endings in source and make files and shell scripts
- checking for empty or unneeded directories
- building ‘affxparser_1.75.0.tar.gz’
@.*** ~/git> R CMD check affxparser_1.75.0.tar.gz
- using log directory ‘/home/biocbuild/git/affxparser.Rcheck’
- using R Under development (unstable) (2024-01-16 r85812)
- using platform: aarch64-unknown-linux-gnu
- R was compiled by gcc (GCC) 10.3.1 GNU Fortran (GCC) 10.3.1
- running under: openEuler 22.03 (LTS-SP1)
- using session charset: UTF-8
- checking for file ‘affxparser/DESCRIPTION’ ... OK
- this is package ‘affxparser’ version ‘1.75.0’
- checking package namespace information ... OK
- checking package dependencies ... OK
- checking if this is a source package ... OK
- checking if there is a namespace ... OK
- checking for hidden files and directories ... OK
- checking for portable file names ... OK
- checking for sufficient/correct file permissions ... OK
- checking whether package ‘affxparser’ can be installed ... WARNING Found the following significant warnings: fusion/file/CELFileData.cpp:2409:27: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2414:27: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2419:28: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2445:37: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2451:37: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2457:38: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2506:23: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2509:23: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2512:24: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2551:24: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:2554:24: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:3194:16: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:3199:16: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:3204:17: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:3251:17: warning: taking address of packed member of ‘affxcel::_CELFileTranscriptomeEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:3255:16: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/CELFileData.cpp:3294:28: warning: taking address of packed member of ‘affxcel::_CELFileEntryType’ may result in an unaligned pointer value [-Waddress-of-packed-member] fusion/file/TsvFile/TsvFile.cpp:4921:20: warning: catching polymorphic type ‘class std::exception’ by value [-Wcatch-value=] fusion/file/TsvFile/TsvFile.cpp:4970:20: warning: catching polymorphic type ‘class std::exception’ by value [-Wcatch-value=] fusion/util/AffxConv.cpp:124:8: warning: self-comparison always evaluates to false [-Wtautological-compare] R_affx_clf_pgf_parser.cpp:261:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:261:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:306:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:306:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_chp_parser.cpp:144:46: warning: format ‘%s’ expects argument of type ‘char’, but argument 2 has type ‘SEXP’ {aka ‘SEXPREC’} [-Wformat=] See ‘/home/biocbuild/git/affxparser.Rcheck/00install.out’ for details.
- used C compiler: ‘gcc (GCC) 10.3.1’
- used C++ compiler: ‘g++ (GCC) 10.3.1’
- checking installed package size ... NOTE installed size is 18.8Mb sub-directories of 1Mb or more: libs 18.2Mb
- checking package directory ... OK
- checking DESCRIPTION meta-information ... OK
- checking top-level files ... OK
- checking for left-over files ... OK
- checking index information ... OK
- checking package subdirectories ... OK
- checking R files for non-ASCII characters ... OK
- checking R files for syntax errors ... OK
- checking whether the package can be loaded ... OK
- checking whether the package can be loaded with stated dependencies ... OK
- checking whether the package can be unloaded cleanly ... OK
- checking whether the namespace can be loaded with stated dependencies ... OK
- checking whether the namespace can be unloaded cleanly ... OK
- checking loading without being on the library search path ... OK
- checking dependencies in R code ... OK
- checking S3 generic/method consistency ... OK
- checking replacement functions ... OK
- checking foreign function calls ... OK
- checking R code for possible problems ... OK
- checking Rd files ... OK
- checking Rd metadata ... OK
- checking Rd cross-references ... OK
- checking for missing documentation entries ... OK
- checking for code/documentation mismatches ... OK
- checking Rd \usage sections ... NOTE Documented arguments not in \usage in Rd file 'cdfSetDimension.Rd': ‘groups’ ‘which’
Documented arguments not in \usage in Rd file 'readCdf.Rd': ‘readExpos’
Documented arguments not in \usage in Rd file 'writeCelHeader.Rd': ‘outputFormat’
Functions with \usage entries need to have the appropriate \alias entries, and all their arguments documented. The \usage entries must correspond to syntactically valid R code. See chapter ‘Writing R documentation files’ in the ‘Writing R Extensions’ manual.
- checking Rd contents ... OK
- checking for unstated dependencies in examples ... OK
- checking line endings in shell scripts ... OK
- checking line endings in C/C++/Fortran sources/headers ... OK
- checking line endings in Makefiles ... OK
- checking compilation flags in Makevars ... OK
- checking for GNU extensions in Makefiles ... OK
- checking for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) ... OK
- checking use of PKG_*FLAGS in Makefiles ... OK
- checking compiled code ... WARNING File ‘affxparser/libs/affxparser.so’: Found ‘_ZSt4cerr’, possibly from ‘std::cerr’ (C++) Object: ‘fusion/util/Verbose.o’ Found ‘_ZSt4cout’, possibly from ‘std::cout’ (C++) Objects: ‘fusion/file/TsvFile/TsvFile.o’, ‘fusion/util/Err.o’ Found ‘abort’, possibly from ‘abort’ (C) Objects: ‘fusion/calvin_files/fusion/src/FusionCHPData.o’, ‘fusion/calvin_files/fusion/src/GCOSAdapter/GCOSCHPDataAdapter.o’, ‘fusion/calvin_files/parameter/src/ParameterNameValueType.o’, ‘fusion/file/BPMAPFileWriter.o’ Found ‘exit’, possibly from ‘exit’ (C) Objects: ‘fusion/util/Err.o’, ‘R_affx_clf_pgf_parser.o’ Found ‘printf’, possibly from ‘printf’ (C) Object: ‘fusion/file/TsvFile/TsvFile.o’ Found ‘putchar’, possibly from ‘putchar’ (C) Object: ‘fusion/file/TsvFile/TsvFile.o’ Found ‘puts’, possibly from ‘printf’ (C), ‘puts’ (C) Object: ‘fusion/file/TsvFile/TsvFile.o’ Found ‘rand’, possibly from ‘rand’ (C) Objects: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’, ‘fusion/util/Verbose.o’ Found ‘sprintf’, possibly from ‘sprintf’ (C) Objects: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’, ‘fusion/util/AffxConv.o’, ‘R_affx_cdf_parser.o’ Found ‘srand’, possibly from ‘srand’ (C) Object: ‘fusion/calvin_files/utils/src/AffymetrixGuid.o’ Found ‘stdout’, possibly from ‘stdout’ (C) Object: ‘fusion/util/Util.o’
Compiled code should not call entry points which might terminate R nor write to stdout/stderr instead of to the console, nor use Fortran I/O nor system RNGs nor [v]sprintf.
See ‘Writing portable packages’ in the ‘Writing R Extensions’ manual.
- checking examples ... OK
- checking for unstated dependencies in ‘tests’ ... OK
- checking tests ... Running ‘convertCel.R’ Running ‘readCdfDataFrame.R’ Running ‘readCdfQc.R’ Running ‘readCdfUnitsWriteMap.R’ Running ‘readCdfUnits_etal.R’ Running ‘readCel.R’ Running ‘readCelIntensities.R’ Running ‘readCelRectangle.R’ Running ‘readCelUnits.R’ Running ‘readPgf.R’ ERROR Running the tests in ‘tests/readPgf.R’ failed. Last 13 lines of output:
- n <- sample(Jall, size=1L)
- idxs <- sort(sample(1:Jall, size=n, replace=FALSE))
- data <- readPgf(pgf, indices=idxs)
- dataS <- subsetPgf(data0, indices=idxs)
- for (ff in c("probesetStartAtom", "atomExonPosition"))
- data[[ff]] <- dataS[[ff]] <- NULL
- stopifnot(all.equal(data, dataS))
- }
- } # if (require("AffymetrixDataTestFiles")) Loading required package: AffymetrixDataTestFiles Error in readPgfEnv(file, readBody = TRUE, indices = indices) : FATAL ERROR:fusion/file/TsvFile/TsvFile.cpp:953: Conversion error TSVERROR: '/home/biocbuild/R/R-devel_2024-01-16_r85812/site-library/AffymetrixDataTestFiles/annotationData/chipTypes/HuGene-1_0-st-v1/HuGene-1_0-st-v1.r4,10_probesets.pgf':90: Conversion of required field 'probeset_id' to int of '�' failed! Calls: readPgf -> as.list -> readPgfEnv Execution halted
- checking PDF version of manual ... OK
- DONE
Status: 1 ERROR, 2 WARNINGs, 2 NOTEs See ‘/home/biocbuild/git/affxparser.Rcheck/00check.log’ for details.
— Reply to this email directly, view it on GitHub https://github.com/HenrikBengtsson/affxparser/issues/46#issuecomment-1926671345, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABF2DH3U3SIHA5U5LHUFNJDYSCYK3AVCNFSM6AAAAAAWIZFFVGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRWGY3TCMZUGU . You are receiving this because you were mentioned.Message ID: @.***>
-- Best, Kasper
FWIW, affxparser passes R CMD check
also on https://mac.r-project.org/macbuilder/submit.html (devtools::check_mac_release()
).
"Build system: r-release-macosx-arm64|4.3.0|macosx|macOS 13.3.1 (22E261)|Mac mini|Apple M1||en_US.UTF-8|macOS 11.3|clang-1403.0.22.14.1|GNU Fortran (GCC) 12.2.0"
Yeah, so I am hypothesizing that the compiler flags problematic code, but it only triggers an error on certain platforms.
Also, Henrik, we do have build reports on Apple Silicon on Bioconductor, but they are located in a weird place. You can only find them from https://bioconductor.org/checkResults/ You may know this, but I didnt know it until recently.
On Mon, Feb 5, 2024 at 10:20 AM Henrik Bengtsson @.***> wrote:
FWIW, affxparser passes R CMD check also on https://mac.r-project.org/macbuilder/submit.html ( devtools::check_mac_release()).
— Reply to this email directly, view it on GitHub https://github.com/HenrikBengtsson/affxparser/issues/46#issuecomment-1927241982, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABF2DH5JENPN2NFBCAQTUVTYSD2ELAVCNFSM6AAAAAAWIZFFVGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMRXGI2DCOJYGI . You are receiving this because you were mentioned.Message ID: @.***>
-- Best, Kasper
@HenrikBengtsson Just to clarify, the error Martin reported is on Linux ARM64, not on Mac Silicon.
affxparser passes R CMD check
on our Mac silicon builders as you can see here:
However, on Linux ARM64 (kunpeng2 machine), some unit tests are failing. See https://bioconductor.org/checkResults/3.19/bioc-LATEST/affxparser/ for the details.
However, we get the following from "our" files R_affx_clf_pgf_parser.cpp:261:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:261:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:306:27: warning: ''' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_clf_pgf_parser.cpp:306:27: warning: ' ' flag used with ‘%s’ gnu_printf format [-Wformat=] R_affx_chp_parser.cpp:144:46: warning: format ‘%s’ expects argument of type ‘char’, but argument 2 has type ‘SEXP’ {aka ‘SEXPREC’} [-Wformat=]
I've fixed these in the master
branch and pushed to bioc/devel
.
FWIW, the unit test error:
Error in readPgfEnv(file, readBody = TRUE, indices = indices) :
FATAL ERROR:fusion/file/TsvFile/TsvFile.cpp:953: Conversion error
TSVERROR: '/home/biocbuild/bbs-3.17-bioc/R-devel_2023-03-12_r83975-bin/lib/R/library/AffymetrixDataTestFiles/annotationData/chipTypes/HuGene-1_0-st-v1/HuGene-1_0-st-v1.r4,10_probesets.pgf':90: Conversion of required field 'probeset_id' to int of 'ÿ' failed!
Calls: readPgf -> as.list -> readPgfEnv
is produced by:
If you want me to try some changes then please send me a .patch file I will test it!
As far as I understand the problem is at https://github.com/HenrikBengtsson/affxparser/blob/e22e22733810419b6864154fa2ccf7240776a615/src/fusion/file/TsvFile/TsvFile.cpp#L554-L559
The pointers say that the value must be an int
but the conversion fails for some reason.
I tried this changes:
diff --git a/src/fusion/file/TsvFile/TsvFile.cpp b/src/fusion/file/TsvFile/TsvFile.cpp
index 5018efd..ab52671 100644
--- a/src/fusion/file/TsvFile/TsvFile.cpp
+++ b/src/fusion/file/TsvFile/TsvFile.cpp
@@ -555,6 +555,11 @@ affx::TsvFileField::get(int* val)
// If m_ptr_end is not NULL then there was an invalid character.
// If m_ptr_end == m_ptr_start then it was the null string. ("")
if ((*ptr_end!=0)||(ptr_end==ptr_start)) {
+ cerr << "======= m_value_int : '" << m_value_int << "'\n";
+ cerr << "======= ptr_end : '" << ptr_end << "'\n";
+ cerr << "======= *ptr_end!=0 : '" << (*ptr_end!=0) << "'\n";
+ cerr << "======= ptr_start : '" << ptr_start << "'\n";
+ cerr << "======= ptr_start==ptr_end : '" << (ptr_start==ptr_end) << "'\n";
m_value_int=-1; // fill in with something off the end
m_value_int_rv=TSV_ERR_CONVERSION; // signal an error
}
@@ -949,7 +954,7 @@ affx::TsvFileField::linkedvars_assign(affx::TsvFile* tsvfile)
errmsg+="TSVERROR: '"+tsvfile->m_fileName+"':"+ToStr(tsvfile->lineNumber()+1)+": ";
errmsg+="Conversion of required field '"+m_cname+"'"+
" to "+var->get_type_str()+
- " of '"+m_buffer+"' failed!\n";
+ " of '"+m_buffer.c_str()+"' failed!\n";
TSV_ERR_ABORT(errmsg);
}
}
and the debug output is:
Running the tests in ‘tests/readPgf.R’ failed.
Last 13 lines of output:
+ data[[ff]] <- dataS[[ff]] <- NULL
+ stopifnot(all.equal(data, dataS))
+ }
+ } # if (require("AffymetrixDataTestFiles"))
Loading required package: AffymetrixDataTestFiles
======= m_value_int : '0'
======= ptr_end : '�'
======= *ptr_end!=0 : '1'
======= ptr_start : '�'
======= ptr_start==ptr_end : '1'
Error in readPgfEnv(file, readBody = TRUE, indices = indices) :
FATAL ERROR:fusion/file/TsvFile/TsvFile.cpp:958: Conversion error
TSVERROR: '/home/biocbuild/R/R-devel_2024-01-16_r85812/site-library/AffymetrixDataTestFiles/annotationData/chipTypes/HuGene-1_0-st-v1/HuGene-1_0-st-v1.r4,10_probesets.pgf':90: Conversion of required field 'probeset_id' to int of '�' failed!
Calls: readPgf -> as.list -> readPgfEnv
Execution halted
It seems m_buffer
contains invalid character(s) but I cannot tell why.
Hello,
There is an initiative to add Linux ARM64 support to Bioconductor. Probably for 3.18.
The
CMD build
of affxparser passes just fine! ButCMD check
fails with:Any idea what could be the problem ?