elbamos/largeVis

Installation error

gryang11 opened this issue · 26 comments

I'm using Rtools to install the source files (through R in Windows 7). The R version is 3.3.0 and gcc version is 4.9.3. The command I use to install in R is
install.packages("largeVis", repos = NULL, type="source", verbose = T, quiet = F)

The error information is as follows.
(For convenience, I pick up the key line here: largeVis.cpp:58:6: error: cannot convert 'int*' to 'vertexidxtype* {aka long long int*}' in assignment)

d:/R/Rtools/mingw_32/bin/g++ -std=c++0x -I"D:/R/R-331.0/include" -DNDEBUG -I"D:/R/R-3.3.0/library/Rcpp/include" -I"D:/R/R-3.3.0/library/RcppProgress/include" -I"D:/R/R-3.3.0/library/RcppArmadillo/include" -I"D:/R/R-3.3.0/library/testthat/include" -I"d:/Compiler/gcc-4.9.3/local330/include" -fopenmp -DARMA_64BIT_WORD -O2 -Wall -mtune=core2 -c gradients.cpp -o gradients.o
d:/R/Rtools/mingw_32/bin/g++ -std=c++0x -I"D:/R/R-33
1.0/include" -DNDEBUG -I"D:/R/R-3.3.0/library/Rcpp/include" -I"D:/R/R-3.3.0/library/RcppProgress/include" -I"D:/R/R-3.3.0/library/RcppArmadillo/include" -I"D:/R/R-3.3.0/library/testthat/include" -I"d:/Compiler/gcc-4.9.3/local330/include" -fopenmp -DARMA_64BIT_WORD -O2 -Wall -mtune=core2 -c largeVis.cpp -o largeVis.o
largeVis.cpp: In member function 'void Visualizer::initAlias(arma::ivec&, const vec&, const ivec&, Rcpp::Nullable<Rcpp::Vector<14, Rcpp::PreserveStorage> >)':
largeVis.cpp:58:6: error: cannot convert 'int_' to 'vertexidxtype_ {aka long long int_}' in assignment
ps = newps.memptr();
^
largeVis.cpp: In function 'arma::mat sgd(arma::mat, arma::ivec&, arma::ivec&, arma::ivec&, arma::vec&, double, double, long long int, int, double, Rcpp::Nullable<Rcpp::Vector<14, Rcpp::PreserveStorage> >, bool)':
largeVis.cpp:173:41: error: no matching function for call to 'Visualizer::Visualizer(int_, int_, const uword&, coordinatetype_, const int&, double, long long int)'
(iterationtype) n_samples);
^
largeVis.cpp:173:41: note: candidate is:
largeVis.cpp:34:3: note: Visualizer::Visualizer(vertexidxtype_, vertexidxtype_, dimidxtype, coordinatetype_, int, distancetype, iterationtype)
Visualizer(vertexidxtype * sourcePtr,
^
largeVis.cpp:34:3: note: no known conversion for argument 1 from 'int_' to 'vertexidxtype* {aka long long int_}'
make: *_* [largeVis.o] Error 1
Warning: running command 'make -f "Makevars" -f "D:/R/R-331.0/etc/i386/Makeconf" -f "D:/R/R-331.0/share/make/winshlib.mk" CXX='$(CXX1X) $(CXX1XSTD)' CXXFLAGS='$(CXX1XFLAGS)' CXXPICFLAGS='$(CXX1XPICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX1XLDFLAGS)' SHLIB_LD='$(SHLIB_CXX1XLD)' SHLIB="largeVis.dll" OBJECTS="RcppExports.o dbscan.o denseneighbors.o distance.o edgeweights.o gradients.o largeVis.o sparse.o"' had status 2
ERROR: compilation failed for package 'largeVis'

  • removing 'D:/R/R-3.3.0/library/largeVis'

This started happening yesterday on Windows systems. It's happening on the testing platforms and is the reason the package hasn't gone to cran yet. Looks to me like something in Win32 world got upgraded and broke Its compiler.

I'm working on a fix but it's hard because I don't have access to a win32 machine. If you want to fix it and submit a PR, that would be great!

On Aug 24, 2016, at 8:30 AM, gryang11 notifications@github.com wrote:

I'm using Rtools to install the source files (through R in Windows 7). The R version is 3.3.0 and gcc version is 4.9.3. The command I use to install in R is
install.packages("largeVis", repos = NULL, type="source", verbose = T, quiet = F)

The error information is:
d:/R/Rtools/mingw_32/bin/g++ -std=c++0x -I"D:/R/R-331.0/include" -DNDEBUG -I"D:/R/R-3.3.0/library/Rcpp/include" -I"D:/R/R-3.3.0/library/RcppProgress/include" -I"D:/R/R-3.3.0/library/RcppArmadillo/include" -I"D:/R/R-3.3.0/library/testthat/include" -I"d:/Compiler/gcc-4.9.3/local330/include" -fopenmp -DARMA_64BIT_WORD -O2 -Wall -mtune=core2 -c gradients.cpp -o gradients.o
d:/R/Rtools/mingw_32/bin/g++ -std=c++0x -I"D:/R/R-33
1.0/include" -DNDEBUG -I"D:/R/R-3.3.0/library/Rcpp/include" -I"D:/R/R-3.3.0/library/RcppProgress/include" -I"D:/R/R-3.3.0/library/RcppArmadillo/include" -I"D:/R/R-3.3.0/library/testthat/include" -I"d:/Compiler/gcc-4.9.3/local330/include" -fopenmp -DARMA_64BIT_WORD -O2 -Wall -mtune=core2 -c largeVis.cpp -o largeVis.o
largeVis.cpp: In member function 'void Visualizer::initAlias(arma::ivec&, const vec&, const ivec&, Rcpp::Nullable >)':
largeVis.cpp:58:6: error: cannot convert 'int' to 'vertexidxtype {aka long long int}' in assignment
ps = newps.memptr();
^
largeVis.cpp: In function 'arma::mat sgd(arma::mat, arma::ivec&, arma::ivec&, arma::ivec&, arma::vec&, double, double, long long int, int, double, Rcpp::Nullable >, bool)':
largeVis.cpp:173:41: error: no matching function for call to 'Visualizer::Visualizer(int, int, const uword&, coordinatetype, const int&, double, long long int)'
(iterationtype) n_samples);
^
largeVis.cpp:173:41: note: candidate is:
largeVis.cpp:34:3: note: Visualizer::Visualizer(vertexidxtype, vertexidxtype, dimidxtype, coordinatetype, int, distancetype, iterationtype)
Visualizer(vertexidxtype * sourcePtr,
^
largeVis.cpp:34:3: note: no known conversion for argument 1 from 'int' to 'vertexidxtype* {aka long long int}'
make: ** [largeVis.o] Error 1
Warning: running command 'make -f "Makevars" -f "D:/R/R-331.0/etc/i386/Makeconf" -f "D:/R/R-331.0/share/make/winshlib.mk" CXX='$(CXX1X) $(CXX1XSTD)' CXXFLAGS='$(CXX1XFLAGS)' CXXPICFLAGS='$(CXX1XPICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX1XLDFLAGS)' SHLIB_LD='$(SHLIB_CXX1XLD)' SHLIB="largeVis.dll" OBJECTS="RcppExports.o dbscan.o denseneighbors.o distance.o edgeweights.o gradients.o largeVis.o sparse.o"' had status 2
ERROR: compilation failed for package 'largeVis'

removing 'D:/R/R-3.3.0/library/largeVis'

You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I'm willing to help fix it. How can I submit a PR (actually I don't know what PR is) ?

This started happening yesterday on Windows systems. It's happening on the testing platforms and is the reason the package hasn't gone to cran yet. Looks to me like something in Win32 world got upgraded and broke Its compiler.

I'm working on a fix but it's hard because I don't have access to a win32 machine. If you want to fix it and submit a PR, that would be great!

It's the "pull request" button, or google "github pull request."

You can also try the version in branch hdbscan but it will be size-limited on win32 systems.

On Aug 24, 2016, at 10:09 AM, gryang11 notifications@github.com wrote:

I'm willing to help fix it. How can I submit a PR (actually I don't know what PR is) ?

This started happening yesterday on Windows systems. It's happening on the testing platforms and is the reason the package hasn't gone to cran yet. Looks to me like something in Win32 world got upgraded and broke Its compiler.

I'm working on a fix but it's hard because I don't have access to a win32 machine. If you want to fix it and submit a PR, that would be great!


You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

@gryang11 Any luck? Right now this issue is the only thing preventing me from getting largeVis on CRAN.

@elbamos No. I tried to install in a fresh Win7 64-bit machine (without any updates) and failed again, so I guess it is not the upgrade things that matters. I'm going go try different version of R to confirm whether it is the reason.

@gryang11 Any luck? Right now this issue is the only thing preventing me from getting largeVis on CRAN.

I have a version now that appears to run on 64 bit Windows, but not on i386. Check the "cran" branch of this repo.

On Aug 26, 2016, at 10:51 PM, gryang11 notifications@github.com wrote:

@elbamos No. I tried to install in a fresh Win7 64-bit machine (without any updates) and failed again, so I guess it is not the upgrade things that matters. I'm going go try different version of R to confirm whether it is the reason.

@gryang11 Any luck? Right now this issue is the only thing preventing me from getting largeVis on CRAN.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@elbamos This branch works!

It seems the code has used some type conversion that is prohibited in win32 but available in 64 bit Windows.

I have a version now that appears to run on 64 bit Windows, but not on i386. Check the "cran" branch of this repo.

Could you elaborate on that? I haven't been able to get any detail about the error occurring on win 32.

On Aug 27, 2016, at 5:58 PM, gryang11 notifications@github.com wrote:

@elbamos This branch works!

It seems the code has used some type conversion that is prohibited in win32 but available in 64 bit Windows.

I have a version now that appears to run on 64 bit Windows, but not on i386. Check the "cran" branch of this repo.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I will try, but I'm not sure whether I can fix it.

I mixed up something in my previous reply. Actually the versions of Windows where I failed with the master branch and succeeded with the cranpush branch are both Win 7 64-bit (none of them is win32). So the guess I made was unreasonable. It is not the case that there are some type conversions prohibited in win32 but available in 64 bit Windows.

There must be some difference between the master branch and cranpush branch, which makes the former one fail.

Could you elaborate on that? I haven't been able to get any detail about the error occurring on win 32.

Well yes - the cran branch has the fixes I made for Windows. They aren't in master because I'm not done testing. But the cran branch also fails on win32.

On Aug 28, 2016, at 12:33 AM, gryang11 notifications@github.com wrote:

I will try, but I'm not sure whether I can fix it.

I mixed up something in my previous reply. Actually the versions of Windows where I failed with the master branch and succeeded with the cranpush branch are both Win 7 64-bit (none of them is win32). So the guess I made was unreasonable. It is not the case that there are some type conversions prohibited in win32 but available in 64 bit Windows.

There must be some difference between the master branch and cranpush branch, which makes the former one fail.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I tried to install the cran branch in a Win 7 32-bit machine and failed. I plan to delete some lines in largeVis.cpp block by block to see which part leads to a fatal error.

Well yes - the cran branch has the fixes I made for Windows. They aren't in master because I'm not done testing. But the cran branch also fails on win32.

That doesn't surprise me either, depending on when you installed it. The cran branch is my working branch, and I've been updating it often. Anyway let me know if you come up with anything.

(Btw - the file you want to look at is probably largevis.h)

On Aug 29, 2016, at 8:04 AM, gryang11 notifications@github.com wrote:

I tried to install the cran branch in a Win 7 32-bit machine and failed. I plan to delete some lines in largeVis.cpp block by block to see which part leads to a fatal error.

Well yes - the cran branch has the fixes I made for Windows. They aren't in master because I'm not done testing. But the cran branch also fails on win32.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@elbamos Yes, I am reviewing largevis.h, but no progress today.

Besides the failure in win32, I found it fail in Linux too. Both the master and cran brach failed. The platform is ubuntu 14.04 with gcc 4.8.2. The error information is as follows:

In file included from denseneighbors.cpp:5:0:
neighbors.h: In instantiation of ‘AnnoySearch<M, V>::AnnoySearch(const M&, Progress&) [with M = arma::Mat; V = arma::Col]’:
denseneighbors.cpp:55:76: required from here
neighbors.h:136:75: error: invalid initialization of non-const reference of type ‘Progress&’ from an rvalue of type ‘’
AnnoySearch(const M& data, Progress& p) : data{data}, N(data.n_cols), p{p} { }
^
make: *** [denseneighbors.o] Error 1
ERROR: compilation failed for package ‘largeVis’

LargeVis requires a compiler that fully supports C++11. That version of gcc does not. This is normal and expected.

On Aug 30, 2016, at 7:11 AM, gryang11 notifications@github.com wrote:

@elbamos Yes, I am reviewing largevis.h, but no progress today.

Besides the failure in win32, I found it fail in Linux too. Both the master and cran brach failed. The platform is ubunto 14.04 with gcc 4.8.2. The error information is as follows:

In file included from denseneighbors.cpp:5:0:
neighbors.h: In instantiation of ‘AnnoySearch::AnnoySearch(const M&, Progress&) [with M = arma::Mat; V = arma::Col]’:
denseneighbors.cpp:55:76: required from here
neighbors.h:136:75: error: invalid initialization of non-const reference of type ‘Progress&’ from an rvalue of type ‘’
AnnoySearch(const M& data, Progress& p) : data{data}, N(data.n_cols), p{p} { }
^
make: *** [denseneighbors.o] Error 1
ERROR: compilation failed for package ‘largeVis’


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@gryang11 if I send you a debug version can you send me the output? This is the only thing keeping the package off CRAN and I don't have a Windows i386 machine to test on.

@elbamos Ok. That would be great.

@gryang11 Try what's on branch cranpush now.

@elbamos All right.

@elbamos The compilation error is listed as follows. (fresh windows 7 32bit without any updates)
install.packages("largeVis-cranpush", repo = NULL, type = "source")

* installing source package 'largeVis' ...
** libs
Warning: running command 'make -f "Makevars" -f "C:/PROGRA1/R/R-331.1/etc/i386/Makeconf" -f "C:/PROGRA1/R/R-331.1/share/make/winshlib.mk" CXX='$(CXX1X) $(CXX1XSTD)' CXXFLAGS='$(CXX1XFLAGS)' CXXPICFLAGS='$(CXX1XPICFLAGS)' SHLIB_LDFLAGS='$(SHLIB_CXX1XLDFLAGS)' SHLIB_LD='$(SHLIB_CXX1XLD)' SHLIB="largeVis.dll" OBJECTS="RcppExports.o dbscan.o denseneighbors.o distance.o edgeweights.o gradients.o hdbscan.o largeVis.o sparse.o test-runner.o testcfunctions.o"' had status 127
ERROR: compilation failed for package 'largeVis'

  • removing 'C:/R/win-library/3.3/largeVis'
    Warning in install.packages :
    running command '"C:/PROGRA1/R/R-331.1/bin/i386/R" CMD INSTALL -l "C:\R\win-library\3.3" "largeVis"' had status 1
    Warning in install.packages :
    installation of package ‘largeVis-cranpush’ had non-zero exit status

Is there a way you can get more detailed error reporting? At this point, its running on Travis (linux and OS X), its running on Appveyor (Windows 64), and its running on win-builder (Windows 32 bit and 64 bit). I resubmitted to CRAN earlier tonight.

@elbamos Sorry that the error information is so limited. If it pointed out which lines of code got error, it would be much better, but unfortunately it didn't. Actually I keep struggling to find more information these days.

The error it reported, Error 127, usually means there's a problem with the build environment. E.g., gcc isn't installed correctly. If you try to compile it from the command line, you should get more detailed logging output. I believe there's also a build option to preserve the detailed log.

On Sep 5, 2016, at 11:14 PM, gryang11 notifications@github.com wrote:

@elbamos Sorry that the error information is so limited. If it pointed out which lines of code got error, it would be much better, but unfortunately it didn't. Actually I keep struggling to find more information these days.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@elbamos You are right. I forgot to set the environment variable after installing Rtools!
Now I install the package successfully (cranpush branch, win 7 32bit)!
I think you can submit it to CRAN.

The submission is pending, thanks!

@elbamos Welcome. Thank you for sharing.

Hey - is it possible for you to install what's in cranfix branch and run the included tests? I submitted to cran but one of the big R people got a seg fault.

On Sep 8, 2016, at 6:36 AM, gryang11 notifications@github.com wrote:

@elbamos Welcome. Thank you for sharing.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.