opendp / smartnoise-core-python

Python language bindings for smartnoise-core.
MIT License
75 stars 11 forks source link

Missing library .dll files for windows #27

Closed FishmanL closed 4 years ago

FishmanL commented 4 years ago

title -- dylib and so files are in the wheel, not dlls

Shoeboxam commented 4 years ago

This is because the rust library uses gmp and mpfr for high-precision floating point numbers, to help protect against floating-point attacks. These libraries are difficult to compile on the MSVC toolchain. We have statically compiled versions of these libraries via mingw, but building the .dll with vendored gmp/mpfr has not been completed yet (and likely won't be reasonable for windows devs).

In the meantime, I suggest WSL or a VM.

If you are just developing a software product locally, you can compile the core library without the use-mpfr feature flag by setting the environment variable here: https://github.com/opendifferentialprivacy/whitenoise-core-python/blob/ms-exponential-4/scripts/code_generation.py#L19 (and switching to this ms-exponential-4 branch) Do be careful not publish the tool or any releases unless you are working with a core library compiled with secure noise. I bring this up as an alternative for Windows devs who cannot build a secure library.

FishmanL commented 4 years ago

Sounds good--would it be possible to note that on the readme?

On Fri, Jul 10, 2020, 1:21 PM Michael Shoemate notifications@github.com wrote:

This is because the rust library uses gmp and mpfr for high-precision floating point numbers, to help protect against floating-point attacks. These libraries are difficult to compile on the MSVC toolchain. We have statically compiled versions of these libraries via mingw, but building the .dll with vendored gmp/mpfr has not been completed yet.

In the meantime, I suggest WSL or a VM. If you are just developing a software product, you can compile the core library without the use-mpfr feature flag by setting the environment variable here:

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/opendifferentialprivacy/whitenoise-core-python/issues/27#issuecomment-656790338, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE32NMEOIDZTT62KWKRK4G3R25EYZANCNFSM4OWX4HXQ .

Shoeboxam commented 4 years ago

There is a reference on the readme to the troubleshooting.md, with more information. I'll move the link to be more visible.

raprasad commented 4 years ago

@FishmanL There's a new release with .dll files. https://pypi.org/project/opendp-smartnoise-core/ (Note: the project has been renamed to from whitenoise to smartnoise)