Closed Welkin-Totoro closed 3 years ago
Can you confirm your compiler? I'm guessing you're using clang
or something else: the offending line is a gcc extension (C++ doesn't natively support VLAs, but gcc does).
@joerowell sry, I'm not pro at this. I don't know how to specify which compiler i want to use, I just did not modify any contents in makefiles or anything else.
It's running on CentOS 7.6 with newest gcc can be installed by yum.
# yum list installed|grep gcc
gcc.x86_64 4.8.5-44.el7 @base
gcc-c++.x86_64 4.8.5-44.el7 @base
libgcc.i686 4.8.5-44.el7 @base
libgcc.x86_64 4.8.5-44.el7 @base
Is that actually GCC 4.8.5? You can check by typing gcc --version
It seems to be.
# gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) Copyright © 2015 Free Software Foundation, Inc.
Hi @Welkin-Totoro : I've put a provisional fix on the clang-fix
branch. Can you try this please? All of the build instructions are exactly the same.
WoW, @joerowell : It apparently works!
At the end of ops it says:
copying build/lib.linux-x86_64-3.6/g6k/siever.cpython-36m-x86_64-linux-gnu.so -> g6k
copying build/lib.linux-x86_64-3.6/g6k/siever_params.cpython-36m-x86_64-linux-gnu.so -> g6k
Does it means my compling is totally successful?
Yes, this should be enough. Can you confirm that you can use the library? I.e run source activate
in the directory and then run whatever Python program it was that you wanted to use.
According to README, I did following tests:
python -m pytest
returns all passed
py.test --cov=g6k
returns error
ERROR: usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: unrecognized arguments: --cov=g6k
inifile: /opt/g6k/pytest.ini
rootdir: /opt/g6k
python ./svp_exact_find_norm.py 50 -u 60 --workers 4 --challenge-seed 0 1 2
first task in Exact-SVP (Sec 6.1) because of shoter time using. And it seems like to execute completely.
This is now fixed as of #90.
PYTHON=python3 ./bootstrap.sh -j 1
...... running build_ext Making all in kernel make[1]: 进入目录“/opt/g6k/kernel” make all-am make[2]: 进入目录“/opt/g6k/kernel” CXX fht_lsh.lo fht_lsh.cpp: In member function 'void ProductLSH::hash_templated(const float, int32_t) [with int blocks_ = 3; int32_t = int]': fht_lsh.cpp:465:29: error: variable-sized object 'c' may not be initialized float c[multi_hash] = {0}; ^ fht_lsh.cpp: In member function 'void ProductLSH::hash_templated(const float, int32_t) [with int blocks_ = 2; int32_t = int]': fht_lsh.cpp:516:29: error: variable-sized object 'c' may not be initialized float c[multi_hash] = {0}; ^ make[2]: [fht_lsh.lo] 错误 1 make[2]: 离开目录“/opt/g6k/kernel” make[1]: [all] 错误 2 make[1]: 离开目录“/opt/g6k/kernel” make: * [all-recursive] 错误 1 Traceback (most recent call last): File "setup.py", line 134, in
"Programming Language :: Python :: 3",
File "/opt/g6k/g6k-env/lib/python3.6/site-packages/setuptools/init.py", line 153, in setup
return distutils.core.setup( attrs)
File "/usr/lib64/python3.6/distutils/core.py", line 148, in setup
dist.run_commands()
File "/usr/lib64/python3.6/distutils/dist.py", line 955, in run_commands
self.run_command(cmd)
File "/usr/lib64/python3.6/distutils/dist.py", line 974, in run_command
cmd_obj.run()
File "setup.py", line 62, in run
subprocess.check_call("make")
File "/usr/lib64/python3.6/subprocess.py", line 311, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'make' returned non-zero exit status 2.
Don't forget to activate environment each time: source ./activate This will also add the following aliases: alias pydoc 2>/dev/null >/dev/null && unalias pydoc || true alias python=python3 alias pip="python3 -m pip"