yahoojapan / NGT

Nearest Neighbor Search with Neighborhood Graph and Tree for High-dimensional Data
Apache License 2.0
1.24k stars 114 forks source link

Publish compiled wheels for Windows #42

Open scottgigante opened 4 years ago

scottgigante commented 4 years ago

Thanks for publishing precompiled wheels for Linux and MacOS. Would it be possible to publish wheels for Windows as well?

Thanks!

masajiro commented 4 years ago

Since we understand Windows is an important OS for NGT, we are considering that. So far, we have no plan for that.

scottgigante commented 4 years ago

Thank you for the update!

ankane commented 4 years ago

fwiw, I tried compiling NGT on Windows with GitHub Actions. I'm not very good at C++, but wanted to report my findings for others.

The following errors occurred:

  1. error C3646: '_mutex': unknown override specifier
  2. error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
  3. fatal error C1083: Cannot open include file: 'sys/time.h'
  4. fatal error C1083: Cannot open include file: 'unistd.h'
  5. fatal error C1083: Cannot open include file: 'pthread.h'

From what I can tell, 1 and 2 are likely smaller changes that will be compatible with Unix.

For 3, 4, and 5, there are some suggested approaches on Stack Overflow.

Overall, I imagine this would take some time.

Build code: https://github.com/ankane/ml-builds/blob/ngt-windows/.github/workflows/ngt-windows.yml Full output: https://github.com/ankane/ml-builds/runs/429047982

(had to set -D UNIX=ON for it to build the library)

paulbricman commented 3 years ago

Windows support would be great! I'm trying to use NGT on a client-side app, so lacking Windows support is really a bummer.