OpenMined/PSI

`response_array` Python build error on Ubuntu

Closed this issue · 5 comments

Description

Building the latest commit fails as response_array was used without being declared in external/org_openmined_psi/private_set_intersection/cpp/psi_client.cpp.

See this build in PyVertical

Our workspace file is:

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(
   name = "org_openmined_psi",
   remote = "https://github.com/OpenMined/PSI",
   commit = "2110b0c78aaf535f0f154541a5239ae1d4876023",
   init_submodules = True,
)

load("@org_openmined_psi//private_set_intersection:preload.bzl", "psi_preload")

psi_preload()

load("@org_openmined_psi//private_set_intersection:deps.bzl", "psi_deps")

psi_deps()

and we build by running

bazel build @org_openmined_psi//private_set_intersection/python:private_set_intersection

How to Reproduce

  1. Attempt to build the Python code for the latest commit

Expected Behavior

Build should pass

Screenshots

image

System Information

  • OS: Ubuntu
  • OS Version: 18.04
  • Language Version: Python 3.6,3.7,3.8

I think the issue here might be the C++ version. Can you please try putting build --cxxopt=--std=c++17 in your .bazelrc?

But if that is the cause, I think ideally it should be fixed on our side, so we don't require users of the PSI library to put anything in .bazelrc. @s0l0ist do you know what parts exactly need C++17? I thought it only applied to the pybind11 bindings? We should put --std=c++17 into the copt attribute of all targets that need it, and then remove it from .bazelrc.

@schoppmp yes that could work. It is only needed for pybind11.

@TTitcombe I opened a PR (#76) to address this issue. Can you please check if this fixes it for you?