Lightgbm: [R-Package] CRAN issues

Created on 16 Jun 2017  Β·  70Comments  Β·  Source: microsoft/LightGBM

Environment info

Operating System: Windows 8.1 Pro
CPU: i7-4600U
R version: 3.4

To make a release on CRAN, we will need first to fix all the errors / warnings / notes. Currently testing on Windows, but we will also need to test on Linux. If some of them cannot be fixed, we will need to have an explanation for each of those which will not be fixed by us. @guolinke

Maybe time to add some vignettes @coforfe if you want to work on them.

  • [x] Fix CRAN errors
  • [x] Fix CRAN warnings
  • [x] Fix CRAN notes
  • [x] Add vignettes
  • [x] Make examples runnable for tests
  • [x] Switch to MinGW by default on Windows (it falls to MinGW if VS fails to be found)
  • [x] Clean install everytime when not using precompiled dll/lib
  • [x] Pass CRAN checks on Windows
  • [x] Pass CRAN checks on Linux
  • [x] Make CRAN-valid portable installation configuration (#2960)
  • [x] Submit to CRAN
  • [ ] Get accepted on CRAN

00install.out:

* installing *source* package 'lightgbm' ...
** libs
installing via 'install.libs.R' to C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/lightgbm
Warning in file.copy("./../../include", "./", overwrite = TRUE, recursive = TRUE) :
  problem copying .\..\..\include to .\include: No such file or directory
Error in eval(ei, envir) : Cannot find folder LightGBM/include
* removing 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/lightgbm'

Windows (fake) CRAN log:

R version 3.4.0 (2017-04-21) -- "You Stupid Darkness"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(devtools)
> library(roxygen2) # devtools::install_github("klutometis/roxygen")
> setwd("C:/LightGBM/R-package")
> devtools::check()
Updating lightgbm documentation
Loading lightgbm
Re-compiling lightgbm
"C:/PROGRA~1/R/R-34~1.0/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL "C:\LightGBM\R-package"  \
  --library="C:\tmp\RtmpG2NQSv\devtools_install_19fa019043416" --no-R --no-data --no-help --no-demo --no-inst --no-docs --no-exec --no-multiarch  \
  --no-test-load --preclean 

* installing *source* package 'lightgbm' ...
** libs
installing via 'install.libs.R' to C:/tmp/RtmpG2NQSv/devtools_install_19fa019043416/lightgbm
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.11.25303.0
-- The CXX compiler identification is MSVC 19.11.25303.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Try OpenMP C flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: /openmp  
-- Configuring done
-- Generating done
-- Build files have been written to: C:/LightGBM/R-package/src/build
Microsoft (R) Build Engine version 15.3.118.39484
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 16/06/2017 07:00:42 PM.
Project "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" on node 1 (default targets).
Project "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" (1) is building "C:\LightGBM\R-package\src\build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
PrepareForBuild:
  Creating directory "x64\Release\ZERO_CHECK\".
  Creating directory "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\".
InitializeBuildStatus:
  Creating "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Checking Build System
  CMake does not need to re-run because C:/LightGBM/R-package/src/build/CMakeFiles/generate.stamp is up-to-date.
FinalizeBuildStatus:
  Deleting file "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
  Touching "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
Done Building Project "C:\LightGBM\R-package\src\build\ZERO_CHECK.vcxproj" (default targets).
PrepareForBuild:
  Creating directory "_lightgbm.dir\Release\".
  Creating directory "C:\LightGBM\R-package\src\Release\".
  Creating directory "_lightgbm.dir\Release\_lightgbm.tlog\".
InitializeBuildStatus:
  Creating "_lightgbm.dir\Release\_lightgbm.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
CustomBuild:
  Building Custom Rule C:/LightGBM/R-package/src/CMakeLists.txt
  CMake does not need to re-run because C:/LightGBM/R-package/src/build/CMakeFiles/generate.stamp is up-to-date.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Tools\MSVC\14.11.25301\bin\HostX86\x64\CL.exe /c /I"C:\LightGBM\R-package\src\include" /nologo /W4 /WX- /diagnostics:classic /O2 /Ob2 /Oi /Ot /Oy /GL /D WIN32 /D _WINDOWS /D NDEBUG /D USE_SOCKET /D "CMAKE_INTDIR=\"Release\"" /D _lightgbm_EXPORTS /D _WINDLL /D _MBCS /UNDEBUG /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /openmp /Fo"_lightgbm.dir\Release\\" /Fd"_lightgbm.dir\Release\vc141.pdb" /Gd /TP /errorReport:queue   -pedantic -g -O0 "C:\LightGBM\R-package\src\src\c_api.cpp" "C:\LightGBM\R-package\src\src\lightgbm_R.cpp" "C:\LightGBM\R-package\src\src\application\application.cpp" "C:\LightGBM\R-package\src\src\boosting\boosting.cpp" "C:\LightGBM\R-package\src\src\boosting\gbdt.cpp" "C:\LightGBM\R-package\src\src\boosting\gbdt_prediction.cpp" "C:\LightGBM\R-package\src\src\boosting\prediction_early_stop.cpp" "C:\LightGBM\R-package\src\src\io\bin.cpp" "C:\LightGBM\R-package\src\src\io\config.cpp" "C:\LightGBM\R-package\src\src\io\dataset.cpp" "C:\LightGBM\R-package\src\src\io\dataset_loader.cpp" "C:\LightGBM\R-package\src\src\io\metadata.cpp" "C:\LightGBM\R-package\src\src\io\parser.cpp" "C:\LightGBM\R-package\src\src\io\tree.cpp" "C:\LightGBM\R-package\src\src\metric\dcg_calculator.cpp" "C:\LightGBM\R-package\src\src\metric\metric.cpp" "C:\LightGBM\R-package\src\src\objective\objective_function.cpp" "C:\LightGBM\R-package\src\src\network\linker_topo.cpp" "C:\LightGBM\R-package\src\src\network\linkers_mpi.cpp" "C:\LightGBM\R-package\src\src\network\linkers_socket.cpp" "C:\LightGBM\R-package\src\src\network\network.cpp" "C:\LightGBM\R-package\src\src\treelearner\data_parallel_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\feature_parallel_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\gpu_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\serial_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\voting_parallel_tree_learner.cpp"
cl : Command line warning D9025: overriding '/DNDEBUG' with '/UNDEBUG' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
  c_api.cpp
cl : Command line warning D9002: ignoring unknown option '-pedantic' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
cl : Command line warning D9002: ignoring unknown option '-g' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
cl : Command line warning D9002: ignoring unknown option '-O0' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
  lightgbm_R.cpp
  application.cpp
  boosting.cpp
  gbdt.cpp
  gbdt_prediction.cpp
  prediction_early_stop.cpp
  bin.cpp
  config.cpp
  dataset.cpp
  dataset_loader.cpp
  metadata.cpp
  parser.cpp
  tree.cpp
  dcg_calculator.cpp
  metric.cpp
  objective_function.cpp
  linker_topo.cpp
  linkers_mpi.cpp
  linkers_socket.cpp
  Compiling...
  network.cpp
  data_parallel_tree_learner.cpp
  feature_parallel_tree_learner.cpp
  gpu_tree_learner.cpp
  serial_tree_learner.cpp
  tree_learner.cpp
  voting_parallel_tree_learner.cpp
Link:
  C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Tools\MSVC\14.11.25301\bin\HostX86\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\LightGBM\R-package\src\Release\lib_lightgbm.dll" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"C:/LightGBM/R-package/src/Release/lib_lightgbm.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/LightGBM/R-package/src/Release/lib_lightgbm.lib" /MACHINE:X64   /machine:x64 /DLL _lightgbm.dir\Release\c_api.obj
  _lightgbm.dir\Release\lightgbm_R.obj
  _lightgbm.dir\Release\application.obj
  _lightgbm.dir\Release\boosting.obj
  _lightgbm.dir\Release\gbdt.obj
  _lightgbm.dir\Release\gbdt_prediction.obj
  _lightgbm.dir\Release\prediction_early_stop.obj
  _lightgbm.dir\Release\bin.obj
  _lightgbm.dir\Release\config.obj
  _lightgbm.dir\Release\dataset.obj
  _lightgbm.dir\Release\dataset_loader.obj
  _lightgbm.dir\Release\metadata.obj
  _lightgbm.dir\Release\parser.obj
  _lightgbm.dir\Release\tree.obj
  _lightgbm.dir\Release\dcg_calculator.obj
  _lightgbm.dir\Release\metric.obj
  _lightgbm.dir\Release\objective_function.obj
  _lightgbm.dir\Release\linker_topo.obj
  _lightgbm.dir\Release\linkers_mpi.obj
  _lightgbm.dir\Release\linkers_socket.obj
  _lightgbm.dir\Release\network.obj
  _lightgbm.dir\Release\data_parallel_tree_learner.obj
  _lightgbm.dir\Release\feature_parallel_tree_learner.obj
  _lightgbm.dir\Release\gpu_tree_learner.obj
  _lightgbm.dir\Release\serial_tree_learner.obj
  _lightgbm.dir\Release\tree_learner.obj
  _lightgbm.dir\Release\voting_parallel_tree_learner.obj
  c_api.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
     Creating library C:/LightGBM/R-package/src/Release/lib_lightgbm.lib and object C:/LightGBM/R-package/src/Release/lib_lightgbm.exp
  Generating code
  Finished generating code
  _lightgbm.vcxproj -> C:\LightGBM\R-package\src\Release\lib_lightgbm.dll
FinalizeBuildStatus:
  Deleting file "_lightgbm.dir\Release\_lightgbm.tlog\unsuccessfulbuild".
  Touching "_lightgbm.dir\Release\_lightgbm.tlog\_lightgbm.lastbuildstate".
Done Building Project "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" (default targets).

Build succeeded.

"C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" (default target) (1) ->
(ClCompile target) -> 
  cl : Command line warning D9025: overriding '/DNDEBUG' with '/UNDEBUG' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
  cl : Command line warning D9002: ignoring unknown option '-pedantic' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
  cl : Command line warning D9002: ignoring unknown option '-g' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
  cl : Command line warning D9002: ignoring unknown option '-O0' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]

    4 Warning(s)
    0 Error(s)

Time Elapsed 00:00:44.73
Found library file: C:/LightGBM/R-package/src/Release/lib_lightgbm.dll to move to C:/tmp/RtmpG2NQSv/devtools_install_19fa019043416/lightgbm/libs/x64* DONE (lightgbm)
Loading required package: R6
Writing NAMESPACE
Writing predict.lgb.Booster.Rd
Setting env vars -------------------------------------------------------------------------------------------------------------------------------------------
CFLAGS  : -Wall -pedantic
CXXFLAGS: -Wall -pedantic
Building lightgbm ------------------------------------------------------------------------------------------------------------------------------------------
"C:/PROGRA~1/R/R-34~1.0/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD build "C:\LightGBM\R-package" --no-resave-data  \
  --no-manual 

* checking for file 'C:\LightGBM\R-package/DESCRIPTION' ... OK
* preparing 'lightgbm':
* checking DESCRIPTION meta-information ... OK
* cleaning src
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
Removed empty directory 'lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdC/tmp'
Removed empty directory 'lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/tmp'
Removed empty directory 'lightgbm/src/build/CMakeFiles/CMakeTmp'
* looking to see if a 'data/datalist' file should be added
* building 'lightgbm_0.2.tar.gz'
Warning in utils::tar(filepath, pkgname, compression = "gzip", compression_level = 9L,  :
  storing paths of more than 100 bytes is not portable:
  'lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate'

Setting env vars -------------------------------------------------------------------------------------------------------------------------------------------
_R_CHECK_CRAN_INCOMING_ : FALSE
_R_CHECK_FORCE_SUGGESTS_: FALSE
Checking lightgbm ------------------------------------------------------------------------------------------------------------------------------------------
"C:/PROGRA~1/R/R-34~1.0/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD check "C:\tmp\RtmpG2NQSv/lightgbm_0.2.tar.gz" --as-cran  \
  --timings --no-manual 

* using log directory 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck'
* using R version 3.4.0 (2017-04-21)
* using platform: x86_64-w64-mingw32 (64-bit)
* using session charset: ISO8859-1
* using options '--no-manual --as-cran'
* checking for file 'lightgbm/DESCRIPTION' ... OK
* checking extension type ... Package
* this is package 'lightgbm' version '0.2'
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... WARNING
Subdirectory 'src' contains:
  CMakeLists.txt
These are unlikely file names for src files.

In addition to the above warning(s), found the following notes:

Found the following apparent object files/libraries:
  src/Release/lib_lightgbm.dll
  src/build/CMakeFiles/3.8.0/CompilerIdC/Debug/CMakeCCompilerId.obj
  src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj
  src/build/_lightgbm.dir/Release/application.obj
  src/build/_lightgbm.dir/Release/bin.obj
  src/build/_lightgbm.dir/Release/boosting.obj
  src/build/_lightgbm.dir/Release/c_api.obj
  src/build/_lightgbm.dir/Release/config.obj
  src/build/_lightgbm.dir/Release/data_parallel_tree_learner.obj
  src/build/_lightgbm.dir/Release/dataset.obj
  src/build/_lightgbm.dir/Release/dataset_loader.obj
  src/build/_lightgbm.dir/Release/dcg_calculator.obj
  src/build/_lightgbm.dir/Release/feature_parallel_tree_learner.obj
  src/build/_lightgbm.dir/Release/gbdt.obj
  src/build/_lightgbm.dir/Release/gbdt_prediction.obj
  src/build/_lightgbm.dir/Release/gpu_tree_learner.obj
  src/build/_lightgbm.dir/Release/lightgbm_R.obj
  src/build/_lightgbm.dir/Release/linker_topo.obj
  src/build/_lightgbm.dir/Release/linkers_mpi.obj
  src/build/_lightgbm.dir/Release/linkers_socket.obj
  src/build/_lightgbm.dir/Release/metadata.obj
  src/build/_lightgbm.dir/Release/metric.obj
  src/build/_lightgbm.dir/Release/network.obj
  src/build/_lightgbm.dir/Release/objective_function.obj
  src/build/_lightgbm.dir/Release/parser.obj
  src/build/_lightgbm.dir/Release/prediction_early_stop.obj
  src/build/_lightgbm.dir/Release/serial_tree_learner.obj
  src/build/_lightgbm.dir/Release/tree.obj
  src/build/_lightgbm.dir/Release/tree_learner.obj
  src/build/_lightgbm.dir/Release/voting_parallel_tree_learner.obj
Object files/libraries should not be included in a source package.
* checking if there is a namespace ... OK
* checking for executable files ... WARNING
Found the following executable files:
  src/Release/lib_lightgbm.dll
  src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_C.bin
  src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_CXX.bin
  src/build/CMakeFiles/3.8.0/CompilerIdC/CompilerIdC.exe
  src/build/CMakeFiles/3.8.0/CompilerIdCXX/CompilerIdCXX.exe
  src/build/CMakeFiles/FindOpenMP/ompver_C.bin
  src/build/CMakeFiles/FindOpenMP/ompver_CXX.bin
  src/build/CMakeFiles/feature_tests.bin
Source packages should not contain undeclared executable files.
See section 'Package structure' in the 'Writing R Extensions' manual.
* checking for hidden files and directories ... OK
* checking for portable file names ... NOTE
Found the following non-portable file path:
  lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate

Tarballs are only required to store paths of up to 100 bytes and cannot
store those of more than 256 bytes, with restrictions including to 100
bytes for the final component.
See section 'Package structure' in the 'Writing R Extensions' manual.
* checking whether package 'lightgbm' can be installed ...Warning: running command '"C:/PROGRA~1/R/R-34~1.0/bin/x64/Rcmd.exe" INSTALL -l "C:/tmp/RtmpG2NQSv/lightgbm.Rcheck" --no-html --no-multiarch "C:\tmp\RTMPG2~1\LIGHTG~1.RCH\00_PKG~1\lightgbm"' had status 1
 ERROR
Installation failed.
See 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/00install.out' for details.
* DONE

Status: 1 ERROR, 2 WARNINGs, 1 NOTE
See
  'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/00check.log'
for details.

R CMD check results
1 error  | 2 warnings | 1 note 
checking whether package 'lightgbm' can be installed ... ERROR
Installation failed.
See 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/00install.out' for details.

checking if this is a source package ... WARNING
Subdirectory 'src' contains:
  CMakeLists.txt
These are unlikely file names for src files.

In addition to the above warning(s), found the following notes:

Found the following apparent object files/libraries:
  src/Release/lib_lightgbm.dll
  src/build/CMakeFiles/3.8.0/CompilerIdC/Debug/CMakeCCompilerId.obj
... 19 lines ...
  src/build/_lightgbm.dir/Release/metadata.obj
  src/build/_lightgbm.dir/Release/metric.obj
  src/build/_lightgbm.dir/Release/network.obj
  src/build/_lightgbm.dir/Release/objective_function.obj
  src/build/_lightgbm.dir/Release/parser.obj
  src/build/_lightgbm.dir/Release/prediction_early_stop.obj
  src/build/_lightgbm.dir/Release/serial_tree_learner.obj
  src/build/_lightgbm.dir/Release/tree.obj
  src/build/_lightgbm.dir/Release/tree_learner.obj
  src/build/_lightgbm.dir/Release/voting_parallel_tree_learner.obj
Object files/libraries should not be included in a source package.

checking for executable files ... WARNING
Found the following executable files:
  src/Release/lib_lightgbm.dll
  src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_C.bin
  src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_CXX.bin
  src/build/CMakeFiles/3.8.0/CompilerIdC/CompilerIdC.exe
  src/build/CMakeFiles/3.8.0/CompilerIdCXX/CompilerIdCXX.exe
  src/build/CMakeFiles/FindOpenMP/ompver_C.bin
  src/build/CMakeFiles/FindOpenMP/ompver_CXX.bin
  src/build/CMakeFiles/feature_tests.bin
Source packages should not contain undeclared executable files.
See section 'Package structure' in the 'Writing R Extensions' manual.

checking for portable file names ... NOTE
Found the following non-portable file path:
  lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate

Tarballs are only required to store paths of up to 100 bytes and cannot
store those of more than 256 bytes, with restrictions including to 100
bytes for the final component.
See section 'Package structure' in the 'Writing R Extensions' manual.
feature request help wanted in progress r-package

Most helpful comment

I want to provide an update for anyone who is subscribed to this issue:

{lightgbm} was briefly accepted to CRAN a few weeks ago, but was then kicked off for a combination of failing checks with valgrind and, according to CRAN, too many failed submissions. We have been banned from re-submitting until November.

See https://github.com/microsoft/LightGBM/pull/3338#issuecomment-702756840 for a summary, and the full discussion in #3338 for lots of details on progress towards CRAN.

We're working on replicating and then fixing those failing checks (#3439, #3443), and will attempt another submission in November.

Thanks to all the LightGBM R users following this thread for your patience, contributions, bug reports and feature requests. πŸ˜€

All 70 comments

@Laurae2

  1. After execute the https://github.com/Microsoft/LightGBM/blob/master/R-package/build_package.R, the R-Package folder is a self-contained package, we can directly use it.
  2. Why need to go back to MinGW in Windows ?

@guolinke CRAN Windows machines do not have MSBuild or Runtimes for Visual Studio compiled code. They use MinGW 4.9 and Rtools to compile code and create packages.

If using precompiled stuff, we have to check with them about how we can get the package accepted on CRAN. CRAN usually compiles packages themselves in an automated fashion and there should be no error/warning/note when running the check on all platforms they have (unless we have a special reason for the check). The compiled package by CRAN is what is proposed to R users as direct download. As all CRAN / R users (who compile stuff like for Rcpp) have Rtools, they forcibly have MinGW 4.9 hence why the requirement to switch to MinGW as default: VS compiled code will not run nor load on CRAN machines (DLL error), leading to the package being rejected.

@Laurae2
It can run by copy vc runtime DLL to the same folder of lib_lightgbm.dll manually

@guolinke vc runtime DLL is MIT license? Everything in the R package must be MIT license if the R package is MIT in CRAN. There are no exception for this rule in CRAN.

This is the rule for using binary packages for Windows / Mac:

Binary packages

Policies for when a (Windows or OS X) binary package will be distributed:

  • all its package dependencies on CRAN are available for that platform. Dependencies from other repositories will be installed at CRAN’s discretion.
  • any external software needed can easily be installed on the build machine for all the sub-architectures: here β€œeasily” includes not depending on specific versions, nor should the installed binary depend on specific versions.
  • it passes R CMD check without error for all the available sub-architectures, or at CRAN’s discretion, for the most important sub-architecture(s).

Binary packages are not accepted from maintainers: CRAN will only host binary packages prepared by those responsible for the binary areas. Their packages are made automatically by batch jobs and can take a day or two to appear on the CRAN master site (maybe longer to reach CRAN mirrors).

Binary packages are built for the current version of R: they may also be built for the last version in the previous series (e.g. R 3.1.3 when R 3.2.x is current) or for R-devel.

Questions about binary packages should be addressed to those responsible for building them: Simon Urbanek (OS X) and Uwe Ligges (Windows); email addresses β€˜First.[email protected]’.

You can also check here online to try to pass a fake Windows CRAN check: https://win-builder.r-project.org/

@Laurae2

all its package dependencies on CRAN are available for that platform. Dependencies from other repositories will be installed at CRAN’s discretion.

So the dll of vc runtime is ok ?

Another solution: upload our dlls (include vc runtime) to another website (like nuget), and download it when install R-package ?

@guolinke We need to ask uwe.[email protected] to see if it is feasible or not to use Visual Studio DLL requiring VC runtime.

The whole installation and the DLL compilation must be done by Uwe Ligges.

Hello,
Good to see that you are close to release it to CRAN. Thanks for that!

I am going to start with the vignette.

Is there any point you want to highlight?.
And regarding the time frame for this, when should it be ready?.

Thanks!
Carlos.

@Laurae2 okay, can you help to ask Uwe Ligges ?

@guolinke yes, but I'm currently on a project so I don't have enough time anymore.

Perhaps @dselivanov can?

I doubt cran will accept anything which requires vc or something not open sourced. I'm out of context, could you point me why vc is used instead of mingw?

@dselivanov VS is used by default for performance. But now we have an automatic fallback to Rtools' MinGW, so it is fine.

@Laurae2 can we enable the test of R package in travis / appveyor?

@guolinke Yes, we also need to add more appropriate tests to testthat folder (it's very outdated, from 6 months ago).

https://github.com/Microsoft/LightGBM/tree/master/R-package/tests/testthat

how to install lightgbm in the R-language?

@Royhuiy read https://github.com/Microsoft/LightGBM/tree/master/R-package and open a new issue if you still are not managing to install the R package. If everything is setup correctly, then it requires only one line to install the R package.

@Laurae2 any updates or plans for CRAN ?

@guolinke no update yet, we would need to clean all the check errors/warnings/notes first

@Laurae2 any updates ?

@guolinke Currently not having enough time, perhaps @jameslamb can help us.

@Laurae2 @guolinke I have been traveling a lot recently, but back with my feet on the ground for a while and should have some time to help with this. Do you have a target date for CRAN release?

@Laurae2 I've fixed a few more of these today, will submit a PR in the next few days.

You can assign this issue to me if you'd like

I made a ton of progress on this yesterday. I have the R CMD CHECK stuff down to a single note that I don't know how to best tackle. Details coming in a PR tomorrow.

Can you explain more about these two other tasks?

  • Setup a LightGBM special version for CRAN (R-package must be root folder, not a child folder)
  • Make examples runnable for tests

For the first one, it is not a CRAN requirement that the package be at repo root in source control. feather, for example, has a really similar structure to LightGBM where they copy shared C code at build time into both Python and R code. CRAN

I don't understand what you mean by number 2.

@jameslamb Trying to assign you the issue, it seems I can't add you (GitHub bug?).

Make examples runnable for tests

Here is an example: https://github.com/Microsoft/LightGBM/blob/master/R-package/R/lgb.train.R#L38 (currently, all examples are dontrun)

Setup a LightGBM special version for CRAN (R-package must be root folder, not a child folder)

If this is not needed, then this requirement can be removed.

I made a ton of progress on this yesterday. I have the R CMD CHECK stuff down to a single note that I don't know how to best tackle. Details coming in a PR tomorrow.

Great! Waiting tomorrow to see it!

Do you have a target date for CRAN release?

ping @guolinke (I guess none currently?)

@Laurae2 @guolinke @randxie I just added #1499 πŸ˜€ . I expect there to be a lot of questions on it...looking forward to the discussion!

Yes let's remove the requirement about the "special version" repo. It's not required.

@randxie and I can tackle the examples dontrun thing at some point soon.

re: that final note left on #1499 , @ntdef pointed me to this: https://github.com/dmlc/xgboost/commit/1495a43cea05071e9451d008addffa598e4e7341

Apparently xgboost team had the same problem with CRAN and printf(). That gives me hope! Can address it in a follow-up PR

@Laurae2 can you update the checklist at the top of this? As of #1499 and given #1626 that I just created, I think it should look like this:

[not necessary] Setup a LightGBM special version for CRAN (R-package must be root folder, not a child folder)
[done] Fix CRAN errors
[done] Fix CRAN warnings
Fix CRAN notes
[done] Add vignettes
[done] Make examples runnable for tests
Switch to MinGW by default on Windows (it falls to MinGW if VS fails to be found)
[done] Clean install everytime when not using precompiled dll/lib
Pass CRAN checks on Windows
Pass CRAN checks on Linux
Submit to CRAN
Get accepted on CRAN

@jameslamb updated the checklist

thank you!

Any more recent updates regarding this? Is the checklist above up to date? Perhaps I can help get this package CRAN ready.

Hey @cdeterman apologies for the delay! We have one R CMD CHECK "NOTE" remaining on Linux distributions, building from source. That is the next highest-priority item on our road to CRAN.

I will write it up as a separate issue and link it here.

@cdeterman see the above, let me know if you have questions!

@Laurae2 @StrikerRUS I've created label r-package and am going to go through and tag outstanding R issues with it so others can see what is in the R backlog more easily than via text search on issue titles.

@guolinke @jameslamb Rinternals.h is LGPL v2.1 (or any later version) so we are free to hook onto it (with certain limitations, like not copy&pasting a whole block of Rinternals.h onto LightGBM) while keeping MIT license of LightGBM and LightGBM R-package.

https://github.com/wch/r-source/blob/tags/R-3-5-3/src/include/Rinternals.h#L7

@Laurae2 good investigation, that is exciting! I see it's the same for R.h (https://github.com/wch/r-source/blob/tags/R-3-5-3/src/include/R.h#L6) which we may also need. If we are ok to use these headers, than I think I know how to solve #1910 and I also think it would give us a path to solve #1909 .

I've assigned #1910 to myself as I already have a branch where I'd started working down this path. Will put up a PR when I can to address it.

@jameslamb Any updates?

Hey @StrikerRUS sorry for the (very long) delay answering here! For those following this issue, we have at least two lingering issues to address to get to CRAN:

  • #1910
  • #1909

I just introduced #2837 which is a step towards that. It adds the idea of R defining an option for cmake which says "hey you are compiling lig_lightgbm specifically for the R package". To finish #1910 and #1909 I think I'll need to replace our custom handling of the R-to-C interface (https://github.com/microsoft/LightGBM/blob/master/include/LightGBM/R_object_helper.h) with the headers that ship with R. I tried to just #include <R.h> to get e.g Rprintf(), but that led to a lot of name conflicts.

So I'm attacking this in the following order:

  1. proof-of-concept that we can compile a different lib_lightgbm specific to the R package (#2837)
  2. swap out our implementation for <R.h> and <Rinternals.h> to address #1909
  3. add registration to address #1910
  4. start testing installation from a source distribution (R CMD INSTALL lightgbm_*.tar.gz) on different operating systems
  5. submit to CRAN

@jameslamb Thanks for the heads-up!

I think one more step (related to n. 4 in your list) is to enable Windows R-package job (#2335) that can be done in the nearest future.

@jameslamb Thanks for the heads-up!

I think one more step (related to n. 4 in your list) is to enable Windows R-package job (#2335) that can be done in the nearest future.

great point! Yes I agree, that will help. I do have an old-ish Windows laptop. Maybe I'll spin that up and start developing on it πŸ˜€

@jameslamb

I do have an old-ish Windows laptop. Maybe I'll spin that up and start developing on it πŸ˜€

Appveyor has a great functionality that allows to connect to it via RDP: https://www.appveyor.com/docs/how-to/rdp-to-build-worker/. It helped me many times! You can use it to setup R package pipeline. Also, don't forget about https://github.com/RGF-team/rgf/blob/master/R-package/.R.appveyor.ps1 πŸ˜‰

I think we're getting pretty close! Made good progress this week.

  • #2901 + #2911 (work-in progress) produce a package that has 0 ERRORs, 0 WARNINGs, and 1 NOTE on R 3.6.1 on macOS Mojave, compiling with gcc/g++ 8.1.0
  • those two + #2908 + #2909 produce a package that has 0 ERRORs, 0 WARNINGs, and 1 NOTE on R 3.6.1 on Windows 10 64-bit, compiling with Visual Studio 16 2019 (I did this @StrikerRUS : https://github.com/microsoft/LightGBM/issues/629#issuecomment-592963136)

The 1 NOTE referenced above is actually not a problem. If you run R CMD CHECK on a package that is not on CRAN yet, it will throw up a note saying "hey this is a new package that hasn't been seen on CRAN before". So that one won't be a problem when we submit.

Next step after getting those 4 PRs reviewed and merged will be to add Windows CI (#2335) and (in parallel) to try running win-builder.

Wanted to provide an update for anyone watching this issue.

2901 , #2908 , and #2909 have been merged.

2911 is being reviewed. When it's merged, we'll have a package that is passing CRAN checks on macOS 10.14, Ubuntu 14.04, and Ubuntu 18.04, with both clang and gcc (https://github.com/microsoft/LightGBM/pull/2911#issuecomment-602964871).

2936 (adding Windows CI) is currently in review. I see two more Windows-specific R CMD CHECK NOTEs there which seem like they'll be straightforward to address.

The next thing we need to figure out is whether or not CRAN will accept a package that does not support 32-bit Windows. Notice that in #2936 I'm running R CMD check --as-cran --no-multiarch because otherwise when you run on 64-bitt Windows R will try to build and check the package for both architectures. We don't currently support 32-bit R.

I don't see anything specific about architecture requirements in https://cran.r-project.org/web/packages/policies.html#Source-packages. I don't see any 32-bit Windows environments in CRAN's standard set of checks but it's possible that they bold both architectures on a 64-bit system. We will see!

@jameslamb

I don't see any 32-bit Windows environments in CRAN's standard set of checks but it's possible that they bold both architectures on a 64-bit system.

I do see two mentiones of 32bit:

i686-posix-dwarf

i686-posix-dwarf

ah! I've never heard of i686 before. Ok, that might be a thing we have to figure out. We'll get there.

ah! I've never heard of i686 before. Ok, that might be a thing we have to figure out. We'll get there.

Maybe we just can wait for a while? πŸ˜„

Beginning with Windows 10, version 2004, all new Windows 10 systems will be required to use 64-bit builds and Microsoft will no longer release 32-bit builds for OEM distribution.
https://www.engadget.com/windows-10-32-bit-oem-173055990.html

Ok I took the current version of the R package on #3188 , since I think that PR will be merged soon, and built an R source package to check on R Hub.

How to run R Hub checks

from a terminal:

sh build-cran-package.sh

from R:

result <- rhub::check(
    path = "lightgbm_2.3.2.tar.gz"
    , email = "[email protected]"
    , check_args = "--as-cran"
    , platform = rhub::platforms()[["name"]]
    , env_vars = c(
        "R_COMPILE_AND_INSTALL_PACKAGES" = "always"
    )
)

Overview

R Hub is a free project that runs R CMD check on an R package on a bunch of platforms.

It doesn't respond fast enough to be part of our normal CI, and it is independent of CRAN so the environments there are slightly different, but it is a free way to test on a lot of setups, especially older Windows environments.

The results are below. I don't know how long the log links last, but I included those as well

Conclusions

Not all of the problems below are problems we will face on CRAN, and none of them should block #3188 . But a few are worth looking into, with more targeted uses of rhub::check().

Results

❌ Oracle Solaris 10, x86, 32 bit, R-release, Oracle Developer Studio 12.6

1 NOTE, 0 WARNINGS, 1 ERROR

logs

/opt/csw/bin/g++-5.5 -std=gnu++11 -I"/opt/csw/lib/R/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD  -I/opt/csw/include  -pthread -fPIC  -O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro  -c network/linkers_socket.cpp -o network/linkers_socket.o
In file included from network/linkers.h:22:0,
                 from network/linkers_socket.cpp:19:
network/socket_wrapper.hpp:30:21: fatal error: ifaddrs.h: No such file or directory
compilation terminated.
gmake: *** [/opt/csw/lib/R/etc/Makeconf:176: network/linkers_socket.o] Error 1
ERROR: compilation failed for package β€˜lightgbm’
* removing β€˜/export/home/X8LyD0f/R/lightgbm’
Warning message:
In i.p(...) :
  installation of package β€˜/export/home/X8LyD0f/Rtemp/RtmpMrj4mJ/file618843243bf5/lightgbm_2.3.2.tar.gz’ had non-zero exit status

❌ Oracle Solaris 10, x86, 32 bit, R-release

1 NOTE, 0 WARNINGS, 1 ERROR

logs

/opt/csw/bin/g++-5.5 -std=gnu++11 -I"/opt/csw/lib/R/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD  -I/opt/csw/include  -pthread -fPIC  -O2 -pipe -fno-omit-frame-pointer -m32 -march=pentiumpro  -c network/linkers_socket.cpp -o network/linkers_socket.o
In file included from network/linkers.h:22:0,
                 from network/linkers_socket.cpp:19:
network/socket_wrapper.hpp:30:21: fatal error: ifaddrs.h: No such file or directory
compilation terminated.
gmake: *** [/opt/csw/lib/R/etc/Makeconf:176: network/linkers_socket.o] Error 1
ERROR: compilation failed for package β€˜lightgbm’

βœ… macOS 10.13.6 High Sierra, R-release, CRAN's setup

1 NOTE, 2 WARNINGS, 0 ERRORs

logs

* checking whether package β€˜lightgbm’ can be installed ... WARNING
Found the following significant warnings:
  Warning: package β€˜R6’ was built under R version 4.0.2
See β€˜/Users/userllqNxUln/lightgbm.Rcheck/00install.out’ for details.

* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section β€˜Configure and cleanup’ in the β€˜Writing R Extensions’
manual.

βœ… macOS 10.13.6 High Sierra, R-release, brew

1 NOTE, 2 WARNINGS, 0 ERRORs

logs

* checking whether package β€˜lightgbm’ can be installed ... WARNING
Found the following significant warnings:
  Warning: package β€˜R6’ was built under R version 4.0.2
See β€˜/Users/userllqNxUln/lightgbm.Rcheck/00install.out’ for details.

* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section β€˜Configure and cleanup’ in the β€˜Writing R Extensions’
manual.

⚠️ Ubuntu Linux 16.04 LTS, R-release, GCC

3 NOTEs, 0 WARNINGS, 0 ERRORs

logs

* checking installed package size ... NOTE
  installed size is 35.7Mb
  sub-directories of 1Mb or more:
    libs  35.1Mb

* checking examples ... NOTE
Examples with CPU or elapsed time > 5s
                      user system elapsed
lgb.cv              22.910  0.197  70.190
lgb.model.dt.tree   13.948  0.141  41.967
lgb.importance       6.955  0.058  20.697
lgb.plot.importance  6.864  0.083  19.118
lgb.interprete       4.675  0.074  14.342
lgb.get.eval.result  4.336  0.049  12.555
lgb.unloader         4.261  0.005  12.519
lgb.train            4.200  0.025  13.718
predict.lgb.Booster  4.159  0.003  12.443

⚠️ Fedora Linux, R-devel, clang, gfortran

build timed out after 20 mins

logs

βœ… Windows Server 2008 R2 SP1, R-oldrel, 32/64 bit

1 NOTE, 0 WARNINGS, 0 ERRORs

logs

βœ… Windows Server 2008 R2 SP1, R-release, 32/64 bit

1 NOTE, 0 WARNINGs, 0 ERRORs

logs

βœ… Windows Server 2008 R2 SP1, R-patched, 32/64 bit

1 NOTEs, WARNINGS, ERRORs

logs

βœ… Windows Server 2008 R2 SP1, R-devel, 32/64 bit

1 NOTEs, WARNINGS, ERRORs

logs

βœ… Windows Server 2008 R2 SP1, R-release, 32/64 bit

1 NOTE, 0 WARNINGs, 0 ERRORs

logs

⚠️ Ubuntu Linux 16.04 LTS, R-devel, GCC

3 NOTEs, 1 WARNING, 0 ERRORs

logs

* checking installed package size ... NOTE
  installed size is 11.6Mb
  sub-directories of 1Mb or more:
    libs  11.0Mb

* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section β€˜Configure and cleanup’ in the β€˜Writing R Extensions’
manual.

* checking examples ... NOTE
Examples with CPU (user + system) or elapsed time > 5s
                      user system elapsed
lgb.cv              23.612  0.098  66.864
lgb.model.dt.tree   12.887  0.039  35.043
lgb.importance       7.528  0.051  19.835
lgb.plot.importance  7.190  0.028  20.008
lgb.interprete       5.828  0.031  16.085
lgb.get.eval.result  4.639  0.012  13.082
predict.lgb.Booster  4.547  0.038  12.532
lgb.unloader         4.558  0.017  12.948
lgb.train            4.512  0.049  12.857

⚠️ Debian Linux, R-devel, GCC, no long double

3 NOTEs, 1 WARNINGS, 0 ERRORs..build timed out

logs

* checking installed package size ... NOTE
  installed size is 11.1Mb
  sub-directories of 1Mb or more:
    libs  10.5Mb

* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section β€˜Configure and cleanup’ in the β€˜Writing R Extensions’
manual.

* checking examples ... NOTE
Examples with CPU (user + system) or elapsed time > 5s
                      user system elapsed
lgb.cv              22.500  0.259  64.849
lgb.model.dt.tree   12.275  0.155  43.373
lgb.plot.importance  7.729  0.074  28.011
lgb.importance       7.089  0.105  21.387
lgb.interprete       5.348  0.036  17.705
predict.lgb.Booster  4.418  0.021  17.406
lgb.get.eval.result  4.353  0.032  13.378
lgb.train            4.263  0.105  11.392
lgb.unloader         3.896  0.041  16.054

⚠️ Debian Linux, R-devel, clang, ISO-8859-15 locale

3 NOTEs, 1 WARNING, 0 ERRORs

logs

* checking installed package size ... NOTE
  installed size is 11.0Mb
  sub-directories of 1Mb or more:
    libs  10.4Mb

* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section 'Configure and cleanup' in the 'Writing R Extensions'
manual.

* checking examples ... NOTE
Examples with CPU (user + system) or elapsed time > 5s
                user system elapsed
lgb.cv         2.106  0.058   6.457
lgb.interprete 1.858  0.037   5.495

❌ Debian Linux, R-devel, GCC ASAN/UBSAN

failed before getting to R CMD CHECK

logs

many of these:

g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -I"/usr/local/lib/R/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD  -I/usr/local/include   -pthread -fpic  -g -O2 -Wall -pedantic -mtune=native -c application/application.cpp -o application/application.o
In file included from ./include/LightGBM/config.h:16:0,
                 from ./include/LightGBM/application.h:8,
                 from application/application.cpp:5:
./include/LightGBM/utils/common.h:775:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
 #pragma omp parallel for schedule(static, 1)

./include/LightGBM/utils/common.h:791:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
     #pragma omp parallel for schedule(static, 1)

In file included from ./include/LightGBM/dataset.h:9:0,
                 from application/application.cpp:8:
./include/LightGBM/feature_group.h:204:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
       #pragma omp parallel for schedule(guided)

In file included from application/application.cpp:8:0:
./include/LightGBM/dataset.h:321:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
 #pragma omp parallel for schedule(static)

application/application.cpp:221:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
     #pragma omp parallel for schedule(static)

In file included from ./include/LightGBM/utils/common.h:9:0,
                 from ./include/LightGBM/config.h:16,
                 from ./include/LightGBM/application.h:8,
                 from application/application.cpp:5:
./include/LightGBM/utils/openmp_wrapper.h:84:2: warning: extra β€˜;’ [-Wpedantic]
 };  // extern "C"
  ^
g++ -fsanitize=undefined,bounds-strict -fno-omit-frame-pointer -std=gnu++11 -I"/usr/local/lib/R/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD  -I/usr/local/include   -pthread -fpic  -g -O2 -Wall -pedantic -mtune=native -c boosting/boosting.cpp -o boosting/boosting.o
In file included from ./include/LightGBM/config.h:16:0,
                 from ./include/LightGBM/boosting.h:8,
                 from boosting/boosting.cpp:5:
./include/LightGBM/utils/common.h:775:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
 #pragma omp parallel for schedule(static, 1)

./include/LightGBM/utils/common.h:791:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
     #pragma omp parallel for schedule(static, 1)

and then some errors like this:

[LightGBM] [Info] Saving data to binary file /tmp/RtmpR4zZHQ/lgb.Dataset_b375cc1023c
io/dataset_loader.cpp:340:59: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const value_type', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/stl_vector.h:948:21: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const int', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/vector.tcc:415:28: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const type', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/move.h:74:36: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const int', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/alloc_traits.h:475:4: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const type', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/move.h:74:36: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const int', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/ext/new_allocator.h:136:46: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const type', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/move.h:74:36: runtime error: reference binding to misaligned address 0x7ff62587302e for type 'const int', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/ext/new_allocator.h:136:4: runtime error: load of misaligned address 0x7ff62587302e for type 'const int', which requires 4 byte alignment
0x7ff62587302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff
             ^ 
/usr/include/c++/7/bits/stl_vector.h:943:30: runtime error: reference binding to misaligned address 0x7ff62587303a for type 'const int', which requires 4 byte alignment
0x7ff62587303a: note: pointer points here
 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff 15 00  00 00 16 00 00 00
              ^ 
/usr/include/c++/7/bits/alloc_traits.h:475:4: runtime error: reference binding to misaligned address 0x7ff62587303a for type 'const type', which requires 4 byte alignment
0x7ff62587303a: note: pointer points here
 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff 15 00  00 00 16 00 00 00
              ^ 
/usr/include/c++/7/bits/move.h:74:36: runtime error: reference binding to misaligned address 0x7ff62587303a for type 'const int', which requires 4 byte alignment
0x7ff62587303a: note: pointer points here
 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff 15 00  00 00 16 00 00 00
              ^ 
/usr/include/c++/7/ext/new_allocator.h:136:46: runtime error: reference binding to misaligned address 0x7ff62587303a for type 'const type', which requires 4 byte alignment
0x7ff62587303a: note: pointer points here
 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff 15 00  00 00 16 00 00 00
              ^ 
/usr/include/c++/7/bits/move.h:74:36: runtime error: reference binding to misaligned address 0x7ff62587303a for type 'const int', which requires 4 byte alignment
0x7ff62587303a: note: pointer points here
 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff 15 00  00 00 16 00 00 00

❌ CentOS 6 with Redhat Developer Toolset, R from EPEL

3 NOTEs, 1 WARNING, 1 ERROR

logs

* checking installed package size ... NOTE
  installed size is 36.2Mb
  sub-directories of 1Mb or more:
    libs  35.6Mb

* checking compilation flags used ... WARNING
Compilation used the following non-portable flag(s):
  β€˜-Wp,-D_FORTIFY_SOURCE=2’

* checking examples ... NOTE
Examples with CPU or elapsed time > 5s
                      user system elapsed
lgb.cv              17.445  0.110  48.786
lgb.model.dt.tree   12.655  0.039  36.095
lgb.plot.importance  7.178  0.027  20.485
lgb.importance       7.166  0.028  20.537
lgb.interprete       5.120  0.014  14.479
lgb.get.eval.result  4.393  0.012  12.221
lgb.train            4.348  0.016  11.936
predict.lgb.Booster  4.301  0.014  12.238
lgb.unloader         4.206  0.030  12.069

* checking tests ...
  Running β€˜testthat.R’ [7m/20m]
 ERROR
Running the tests in β€˜tests/testthat.R’ failed.
Last 13 lines of output:
  You can set `force_row_wise=true` to remove the overhead.
  And if memory is not enough, you can set `force_col_wise=true`.
  [LightGBM] [Info] Total Bins 232
  [LightGBM] [Info] Number of data points in the train set: 6513, number of used features: 116
  [LightGBM] [Info] Start training from score 0.482113
  [LightGBM] [Warning] No further splits with positive gain, best gain: -inf
  ══ testthat results  ═══════════════════════════════════════════════════════════
  [ OK: 765 | SKIPPED: 2 | WARNINGS: 0 | FAILED: 4 ]
  1. Failure: lgb.train() works as expected with sparse features (@test_basic.R#477) 
  2. Failure: learning-to-rank with lgb.cv() works as expected (@test_learning_to_rank.R#119) 
  3. Failure: learning-to-rank with lgb.cv() works as expected (@test_learning_to_rank.R#125) 
  4. Failure: learning-to-rank with lgb.cv() works as expected (@test_learning_to_rank.R#131) 

  Error: testthat unit tests failed
  Execution halted

Ignored warnings and notes

The following notes and warnings can be safely ignored and should not block us on CRAN.

* checking CRAN incoming feasibility ... NOTE
Maintainer: β€˜Guolin Ke <[email protected]>’

New submission

License components with restrictions and base license permitting such:
  MIT + file LICENSE
* checking whether package β€˜lightgbm’ can be installed ... WARNING
Found the following significant warnings:
  Warning: package β€˜R6’ was built under R version 4.0.2
See β€˜/Users/userllqNxUln/lightgbm.Rcheck/00install.out’ for details.
* checking top-level files ... WARNING
A complete check needs the 'checkbashisms' script.
See section β€˜Configure and cleanup’ in the β€˜Writing R Extensions’
manual.
* checking installed package size ... NOTE
  installed size is 35.7Mb
  sub-directories of 1Mb or more:
    libs  35.1Mb

@jameslamb
for oracle Solaris, maybe we can disable the network module.
for the misaligned error, maybe the removal of MM_MALLOC is the root cause?

Ah, Solaris 11 has ifaddrs.h file, but unfortunately CRAN runs Solaris 10: https://issues.prosody.im/419

for oracle Solaris, maybe we can disable the network module.

I was thinking the same thing!

for the misaligned error, maybe the removal of MM_MALLOC is the root cause?

I don't think so. On the build with that issue, I see this

checking whether MM_PREFETCH works... yes
checking whether MM_MALLOC works... yes

and -DMM_MALLOC=1 in the compiler statements.

for the alignment issues, I filtered the log to see which lines from LightGBM specifically are causing this problem

image

Those lines of code look like this:

//  io/dataset_loader.cpp:340:59
dataset->used_feature_map_.push_back(tmp_feature_map[i]);

// io/dataset_loader.cpp:344:26
dataset->num_groups_ = *(reinterpret_cast<const int*>(mem_ptr));

// io/dataset_loader.cpp:350:69
dataset->real_feature_idx_.push_back(tmp_ptr_real_feature_idx_[i]);

// io/dataset_loader.cpp:357:62
dataset->feature2group_.push_back(tmp_ptr_feature2group[i]);

// io/dataset_loader.cpp:364:72
dataset->feature2subfeature_.push_back(tmp_ptr_feature2subfeature[i])

// io/dataset_loader.cpp:371:76
dataset->group_bin_boundaries_.push_back(tmp_ptr_group_bin_boundaries[i]);

// io/dataset_loader.cpp:379:74
dataset->group_feature_start_.push_back(tmp_ptr_group_feature_start[i]);

// io/dataset_loader.cpp:387:70
dataset->group_feature_cnt_.push_back(tmp_ptr_group_feature_cnt[i])

// io/dataset_loader.cpp:400:74
dataset->max_bin_by_feature_.push_back(tmp_ptr_max_bin_by_feature[i]);

// io/dataset_loader.cpp:412:9
int str_len = *(reinterpret_cast<const int*>(mem_ptr));

// io/dataset_loader.cpp:425:9
int num_bounds = *(reinterpret_cast<const int*>(mem_ptr));

// include/LightGBM/feature_group.h:99:20:
num_feature_ = *(reinterpret_cast<const int*>(memory_ptr));

// io/sparse_bin.hpp:517:17
data_size_t tmp_num_vals = *(reinterpret_cast<const data_size_t*>(mem_ptr));

I'm not good enough at C++ to see the common pattern between these cases, but hope that helps.

@jameslamb do you know which tests cause these errors?

You can see the logs here: https://builder.r-hub.io/status/lightgbm_2.3.2.tar.gz-38bbdb220ecd4ea288a2986c8f5717eb

Unfortunately I can't tell from those logs which test is breaking. Running the jobs on R Hub are pretty easy though...maybe tomorrow I can build a version of the R package that writes a lot more log messages, so we can narrow it down.

@jameslamb

5536#> [ OK: 763 | SKIPPED: 2 | WARNINGS: 0 | FAILED: 4 ]

5537#> 1. Failure: lgb.train() works as expected with sparse features (@test_basic.R#477)

5538#> 2. Failure: learning-to-rank with lgb.cv() works as expected (@test_learning_to_rank.R#119)

5539#> 3. Failure: learning-to-rank with lgb.cv() works as expected (@test_learning_to_rank.R#125)

5540#> 4. Failure: learning-to-rank with lgb.cv() works as expected (@test_learning_to_rank.R#131)

5541#> Error: testthat unit tests failed

!!!!! ooooooo interesting, I missed that!

Ok so one thing we could do is add testthat::skip_on_cran() to those tests, so they're run in our CI and not on CRAN. That wouldn't fix the underlying problem but it would help toward the larger goal of getting to CRAN.

@shiyu1994 could you help to locate the mis-align errors?

I'm trying that now. By the way, to test that specific issue in the environment where I saw it, you can run this from the root of the repo

sh build-cran-package.sh

then in R (but change the email address)

result <- rhub::check(
    path = "lightgbm_2.3.2.tar.gz"
    , email = "[email protected]"
    , check_args = c(
        "--as-cran"
        , "--use-valgrind"
    )
    , platform = "linux-x86_64-rocker-gcc-san"
    , env_vars = c(
        "R_COMPILE_AND_INSTALL_PACKAGES" = "always"
    )
)

@shiyu1994 could you help to locate the mis-align errors?

Ok. I'll look into this too.

Ok now I think that the failing unit tests and the misalignment errors are not related. Look at this build: https://builder.r-hub.io/status/original/lightgbm_2.3.2.tar.gz-9a1b2e49f6bf473892a6b9eccfa9f045

So I see

[LightGBM] [Info] Saving data to binary file /tmp/RtmpPHBRdI/lgb.Dataset_b374e15120f
io/dataset_loader.cpp:340:59: runtime error: reference binding to misaligned address 0x7f73b216302e for type 'const value_type', which requires 4 byte alignment
0x7f73b216302e: note: pointer points here
 00 00 01 00 13 00  00 00 ff ff ff ff 14 00  00 00 ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  ff ff

but also

══ testthat results  ═══════════════════════════════════════════════════════════
[ OK: 732 | SKIPPED: 4 | WARNINGS: 0 | FAILED: 0 ]

That is in a version of the package with these tests (https://github.com/microsoft/LightGBM/issues/629#issuecomment-665428213) skipped.

I just had a thought about some of these...if we pick up #1944 and create R vignettes/, that could also be used to avoid some of the CHECK NOTEs in https://github.com/microsoft/LightGBM/issues/629#issuecomment-664714892 about examples that take too long to run. If we introduced vignettes, the documentation for expensive functions like lgb.train() and lgb.cv() could just say "for example code, see <link to the vignettes>".

@jameslamb FYI, you can download Oracle Solaris VM from this link. The link also shows how to install R in Solaris. It came in handy when XGBoost failed CRAN checks for Solaris target and I had to debug it.

ooooooooo that's awesome, thank you! Will be a lot faster than using R Hub to debug πŸ˜‚

@hcho3 are the notes at that link why you decided to add SystemRequirements: GNU make to DESCRIPTION?

https://github.com/dmlc/xgboost/blob/5a2dcd1c33738ff0941438952155e2472a09d809/R-package/DESCRIPTION#L68

@jameslamb It had to do with supporting Windows: dmlc/xgboost#2994.

ooooo thanks!

thanks @guolinke ! Ok I know how to fix the Debian note, and how to get a better error on Windows. I'll create a PR tonight.

Thanks for your help, we'll have to do this a few times 😬

@jameslamb no problem!

I just re-submitted to win-builder now that #3307 has been merged. Can confirm we are passing all checks there! The only NOTE is the one all new packages get, which can be safely ignored.

When CRAN comes back from their time off (August 24th), we can re-submit and I think we have a very good chance of being accepted.

How I submitted

sh build-cran-package.sh
devtools::check_win_release(
    pkg = "lightgbm_r/",
    args = NULL,
    manual = TRUE,
    email = "[email protected]",
    quiet = FALSE,
)

logs

00check.log (1 NOTE)

* using log directory 'd:/RCompile/CRANguest/R-release/lightgbm.Rcheck'
* using R version 4.0.2 (2020-06-22)
* using platform: x86_64-w64-mingw32 (64-bit)
* using session charset: ISO8859-1
* checking for file 'lightgbm/DESCRIPTION' ... OK
* checking extension type ... Package
* this is package 'lightgbm' version '3.0.0-1'
* package encoding: UTF-8
* checking CRAN incoming feasibility ... NOTE
Maintainer: 'Guolin Ke <[email protected]>'

New submission

License components with restrictions and base license permitting such:
  MIT + file LICENSE
File 'LICENSE':
  The MIT License (MIT)

  Copyright (c) Microsoft Corporation

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files (the "Software"), to deal
  in the Software without restriction, including without limitation the rights
  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software is
  furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  SOFTWARE.
* 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 whether package 'lightgbm' can be installed ... OK
* checking installed package size ... OK
* 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
* loading checks for arch 'i386'
** 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 use of S3 registration ... OK
* loading checks for arch 'x64'
** 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 use of S3 registration ... 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 ... [9s] OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd line widths ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking contents of 'data' directory ... OK
* checking data for non-ASCII characters ... OK
* checking data for ASCII and uncompressed saves ... 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 compiled code ... OK
* checking examples ...
** running examples for arch 'i386' ... [4s] OK
** running examples for arch 'x64' ... [7s] OK
* checking for unstated dependencies in 'tests' ... OK
* checking tests ...
** running tests for arch 'i386' ... [13s] OK
  Running 'testthat.R' [13s]
** running tests for arch 'x64' ... [13s] OK
  Running 'testthat.R' [12s]
* checking PDF version of manual ... OK
* checking for detritus in the temp directory ... OK
* DONE
Status: 1 NOTE

00install.out

* installing *source* package 'lightgbm' ...
** using staged installation
checking whether MM_PREFETCH works...yes
checking whether MM_MALLOC works...yes
** libs

*** arch - i386
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c application/application.cpp -o application/application.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/boosting.cpp -o boosting/boosting.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/gbdt.cpp -o boosting/gbdt.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/gbdt_model_text.cpp -o boosting/gbdt_model_text.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/gbdt_prediction.cpp -o boosting/gbdt_prediction.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/prediction_early_stop.cpp -o boosting/prediction_early_stop.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/bin.cpp -o io/bin.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/config.cpp -o io/config.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/config_auto.cpp -o io/config_auto.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/dataset.cpp -o io/dataset.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/dataset_loader.cpp -o io/dataset_loader.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/file_io.cpp -o io/file_io.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/json11.cpp -o io/json11.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/metadata.cpp -o io/metadata.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/parser.cpp -o io/parser.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/tree.cpp -o io/tree.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c metric/dcg_calculator.cpp -o metric/dcg_calculator.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c metric/metric.cpp -o metric/metric.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c objective/objective_function.cpp -o objective/objective_function.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/linker_topo.cpp -o network/linker_topo.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/linkers_mpi.cpp -o network/linkers_mpi.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/linkers_socket.cpp -o network/linkers_socket.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/network.cpp -o network/network.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/data_parallel_tree_learner.cpp -o treelearner/data_parallel_tree_learner.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/feature_parallel_tree_learner.cpp -o treelearner/feature_parallel_tree_learner.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/gpu_tree_learner.cpp -o treelearner/gpu_tree_learner.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/serial_tree_learner.cpp -o treelearner/serial_tree_learner.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/tree_learner.cpp -o treelearner/tree_learner.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/voting_parallel_tree_learner.cpp -o treelearner/voting_parallel_tree_learner.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c c_api.cpp -o c_api.o
d:/Compiler/rtools40/mingw32/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c lightgbm_R.cpp -o lightgbm_R.o
d:/Compiler/rtools40/mingw32/bin/g++ -shared -s -static-libgcc -o lightgbm.dll tmp.def application/application.o boosting/boosting.o boosting/gbdt.o boosting/gbdt_model_text.o boosting/gbdt_prediction.o boosting/prediction_early_stop.o io/bin.o io/config.o io/config_auto.o io/dataset.o io/dataset_loader.o io/file_io.o io/json11.o io/metadata.o io/parser.o io/tree.o metric/dcg_calculator.o metric/metric.o objective/objective_function.o network/linker_topo.o network/linkers_mpi.o network/linkers_socket.o network/network.o treelearner/data_parallel_tree_learner.o treelearner/feature_parallel_tree_learner.o treelearner/gpu_tree_learner.o treelearner/serial_tree_learner.o treelearner/tree_learner.o treelearner/voting_parallel_tree_learner.o c_api.o lightgbm_R.o -fopenmp -pthread -lws2_32 -lIphlpapi -Ld:/Compiler/gcc-4.9.3/local330/lib/i386 -Ld:/Compiler/gcc-4.9.3/local330/lib -LD:/RCompile/recent/R-4.0.2/bin/i386 -lR
installing to d:/RCompile/CRANguest/R-release/lib/00LOCK-lightgbm/00new/lightgbm/libs/i386

*** arch - x64
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c application/application.cpp -o application/application.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/boosting.cpp -o boosting/boosting.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/gbdt.cpp -o boosting/gbdt.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/gbdt_model_text.cpp -o boosting/gbdt_model_text.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/gbdt_prediction.cpp -o boosting/gbdt_prediction.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c boosting/prediction_early_stop.cpp -o boosting/prediction_early_stop.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/bin.cpp -o io/bin.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/config.cpp -o io/config.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/config_auto.cpp -o io/config_auto.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/dataset.cpp -o io/dataset.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/dataset_loader.cpp -o io/dataset_loader.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/file_io.cpp -o io/file_io.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/json11.cpp -o io/json11.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/metadata.cpp -o io/metadata.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/parser.cpp -o io/parser.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c io/tree.cpp -o io/tree.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c metric/dcg_calculator.cpp -o metric/dcg_calculator.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c metric/metric.cpp -o metric/metric.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c objective/objective_function.cpp -o objective/objective_function.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/linker_topo.cpp -o network/linker_topo.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/linkers_mpi.cpp -o network/linkers_mpi.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/linkers_socket.cpp -o network/linkers_socket.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c network/network.cpp -o network/network.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/data_parallel_tree_learner.cpp -o treelearner/data_parallel_tree_learner.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/feature_parallel_tree_learner.cpp -o treelearner/feature_parallel_tree_learner.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/gpu_tree_learner.cpp -o treelearner/gpu_tree_learner.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/serial_tree_learner.cpp -o treelearner/serial_tree_learner.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/tree_learner.cpp -o treelearner/tree_learner.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c treelearner/voting_parallel_tree_learner.cpp -o treelearner/voting_parallel_tree_learner.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c c_api.cpp -o c_api.o
d:/Compiler/rtools40/mingw64/bin/g++  -std=gnu++11 -I"D:/RCompile/recent/R-4.0.2/include" -DNDEBUG -I./include -DMM_PREFETCH=1 -DMM_MALLOC=1 -DUSE_SOCKET -DLGB_R_BUILD    -I"d:/Compiler/gcc-4.9.3/local330/include"  -fopenmp -pthread   -O2 -Wall  -mfpmath=sse -msse2 -mstackrealign -c lightgbm_R.cpp -o lightgbm_R.o
d:/Compiler/rtools40/mingw64/bin/g++ -shared -s -static-libgcc -o lightgbm.dll tmp.def application/application.o boosting/boosting.o boosting/gbdt.o boosting/gbdt_model_text.o boosting/gbdt_prediction.o boosting/prediction_early_stop.o io/bin.o io/config.o io/config_auto.o io/dataset.o io/dataset_loader.o io/file_io.o io/json11.o io/metadata.o io/parser.o io/tree.o metric/dcg_calculator.o metric/metric.o objective/objective_function.o network/linker_topo.o network/linkers_mpi.o network/linkers_socket.o network/network.o treelearner/data_parallel_tree_learner.o treelearner/feature_parallel_tree_learner.o treelearner/gpu_tree_learner.o treelearner/serial_tree_learner.o treelearner/tree_learner.o treelearner/voting_parallel_tree_learner.o c_api.o lightgbm_R.o -fopenmp -pthread -lws2_32 -lIphlpapi -Ld:/Compiler/gcc-4.9.3/local330/lib/x64 -Ld:/Compiler/gcc-4.9.3/local330/lib -LD:/RCompile/recent/R-4.0.2/bin/x64 -lR
installing to d:/RCompile/CRANguest/R-release/lib/00LOCK-lightgbm/00new/lightgbm/libs/x64
** R
** data
** demo
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
*** arch - i386
*** arch - x64
** testing if installed package can be loaded from final location
*** arch - i386
*** arch - x64
** testing if installed package keeps a record of temporary installation path
* MD5 sums
packaged installation of 'lightgbm' as lightgbm_3.0.0-1.zip
* DONE (lightgbm)

I want to provide an update for anyone who is subscribed to this issue:

{lightgbm} was briefly accepted to CRAN a few weeks ago, but was then kicked off for a combination of failing checks with valgrind and, according to CRAN, too many failed submissions. We have been banned from re-submitting until November.

See https://github.com/microsoft/LightGBM/pull/3338#issuecomment-702756840 for a summary, and the full discussion in #3338 for lots of details on progress towards CRAN.

We're working on replicating and then fixing those failing checks (#3439, #3443), and will attempt another submission in November.

Thanks to all the LightGBM R users following this thread for your patience, contributions, bug reports and feature requests. πŸ˜€

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jianqin123 picture jianqin123  Β·  3Comments

ivinogra picture ivinogra  Β·  3Comments

JoshuaC3 picture JoshuaC3  Β·  3Comments

heroxrq picture heroxrq  Β·  3Comments

tbenthompson picture tbenthompson  Β·  3Comments