Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor the Makefile #14

Open
ludwigschmidt opened this issue Dec 17, 2015 · 7 comments
Open

Refactor the Makefile #14

ludwigschmidt opened this issue Dec 17, 2015 · 7 comments

Comments

@ludwigschmidt
Copy link
Collaborator

The build targets for all the tests should be generated fully automatically by a script. The list of headers can also be generated by a script.

@ludwigschmidt
Copy link
Collaborator Author

The script could also figure out which version of swig to use (swig on Mac vs swig3.0 on Linux), and which g++ (g++-5 on Mac with the homebrew g++ install vs g++ on Linux).

@ludwigschmidt
Copy link
Collaborator Author

Use the right linker flag for C++ (lc++ vs lstdc++).

@ludwigschmidt
Copy link
Collaborator Author

Differences between Mac and Linux we noticed so far:

  • We want to use swig version 3. On Linux, this binary seems to be called swig3.0 most of the time, while a homebrew install on Mac calls the binary `swig'.
  • On Mac, -pthread gives you warnings because it is not used, while on Linux we need it.
  • On Mac, the GCC version of g++ (as opposed to the clang wrapper) is usually available as g++-5(at least when installed via homebrew). On Linux, we should probably just stick with g++.

@bittremieux
Copy link

Currently the NumPy include folder is also hard-coded to the Python 2.7 site-packages directory, which prevented me from installing FALCONN for Python 3 using pip. Other than that it seems to work correctly for Python 3.

Using pip I got some seemingly unrelated compiling errors (but I'm far from an expert). After fixing this I was able to install it manually without any further issues. I haven't tried writing some own code yet, but the tests were successful at least.

I'm excited by the performance you're able to achieve compared to Annoy. For now I'll stick to Annoy though because of its thread-safety which enables me to do multiple queries in an embarrassingly parallel fashion.
I'll definitely keep track of your efforts to add this to FALCONN as well. Also, the native support for sparse vectors in Python could be an awesome feature. Nice work!

@ilyaraz
Copy link
Member

ilyaraz commented Mar 18, 2016

@wbittremieux what are the compilation errors you were getting?

@bittremieux
Copy link

@ilyaraz It were some conversion errors in the SWIG wrapper. See this paste for the full output.

@ilyaraz
Copy link
Member

ilyaraz commented Mar 18, 2016

@wbittremieux Thanks! This is very helpful!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants