2021-07-10T12:22:29,985 Created temporary directory: /tmp/pip-ephem-wheel-cache-um280rpk 2021-07-10T12:22:29,988 Created temporary directory: /tmp/pip-req-tracker-de8y21zw 2021-07-10T12:22:29,989 Initialized build tracking at /tmp/pip-req-tracker-de8y21zw 2021-07-10T12:22:29,989 Created build tracker: /tmp/pip-req-tracker-de8y21zw 2021-07-10T12:22:29,989 Entered build tracker: /tmp/pip-req-tracker-de8y21zw 2021-07-10T12:22:29,989 Created temporary directory: /tmp/pip-wheel-oqitasl8 2021-07-10T12:22:30,018 1 location(s) to search for versions of tetris-cpp: 2021-07-10T12:22:30,018 * https://pypi.org/simple/tetris-cpp/ 2021-07-10T12:22:30,019 Fetching project page and analyzing links: https://pypi.org/simple/tetris-cpp/ 2021-07-10T12:22:30,019 Getting page https://pypi.org/simple/tetris-cpp/ 2021-07-10T12:22:30,021 Found index url https://pypi.org/simple 2021-07-10T12:22:30,110 Found link https://files.pythonhosted.org/packages/e3/77/124597fcd3a8bdcc4bc0ec3d33c416c7cfd9d34128676a1cdcb8053095d5/tetris_cpp-0.1.1.tar.gz#sha256=6d49f430f15aaba1008192372f96486fb48278c0ea03c1b2d453bc49957829de (from https://pypi.org/simple/tetris-cpp/), version: 0.1.1 2021-07-10T12:22:30,110 Found link https://files.pythonhosted.org/packages/5c/72/96210fabf1aee822375acd75daf3ca72b38adb3a303e20671c0a51e4eed3/tetris_cpp-0.1.2.tar.gz#sha256=7a32b53764f55bec47a5c326f1e7534892aae75979a6366a6aef7cc2b42f9d3a (from https://pypi.org/simple/tetris-cpp/), version: 0.1.2 2021-07-10T12:22:30,110 Found link https://files.pythonhosted.org/packages/f8/a6/e17abdccd14324753008db97ce7d074a5aed80fd0e9e0d687741489c2598/tetris_cpp-0.1.3.linux-x86_64.tar.gz#sha256=d5949fb71ab6917c32f9105d44eee0d2eeefdf0c484d64b9e98ba04af25f461f (from https://pypi.org/simple/tetris-cpp/), version: 0.1.3.linux-x86_64 2021-07-10T12:22:30,111 Found link https://files.pythonhosted.org/packages/8f/cd/4b39c5c2b29ca596f7a1a60d322b707e96f9ddb0406de9acd744edf7e148/tetris_cpp-0.1.3.tar.gz#sha256=52d539505a099a99b826601e53710092be2e3a493f43795d00178be428268e12 (from https://pypi.org/simple/tetris-cpp/), version: 0.1.3 2021-07-10T12:22:30,111 Skipping link: not a file: https://pypi.org/simple/tetris-cpp/ 2021-07-10T12:22:30,129 Given no hashes to check 1 links for project 'tetris-cpp': discarding no candidates 2021-07-10T12:22:30,148 Collecting tetris-cpp==0.1.3 2021-07-10T12:22:30,149 Created temporary directory: /tmp/pip-unpack-_0p0dzio 2021-07-10T12:22:30,322 Downloading tetris_cpp-0.1.3.tar.gz (8.7 kB) 2021-07-10T12:22:30,371 Added tetris-cpp==0.1.3 from https://files.pythonhosted.org/packages/8f/cd/4b39c5c2b29ca596f7a1a60d322b707e96f9ddb0406de9acd744edf7e148/tetris_cpp-0.1.3.tar.gz#sha256=52d539505a099a99b826601e53710092be2e3a493f43795d00178be428268e12 to build tracker '/tmp/pip-req-tracker-de8y21zw' 2021-07-10T12:22:30,372 Running setup.py (path:/tmp/pip-wheel-oqitasl8/tetris-cpp_a6e4e7fb425d4b68a44fdc8569346b50/setup.py) egg_info for package tetris-cpp 2021-07-10T12:22:30,372 Created temporary directory: /tmp/pip-pip-egg-info-ki8zpqqc 2021-07-10T12:22:30,373 Running command python setup.py egg_info 2021-07-10T12:22:31,220 running egg_info 2021-07-10T12:22:31,222 creating /tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info 2021-07-10T12:22:31,223 writing /tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info/PKG-INFO 2021-07-10T12:22:31,225 writing dependency_links to /tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info/dependency_links.txt 2021-07-10T12:22:31,227 writing top-level names to /tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info/top_level.txt 2021-07-10T12:22:31,229 writing manifest file '/tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info/SOURCES.txt' 2021-07-10T12:22:31,547 reading manifest file '/tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info/SOURCES.txt' 2021-07-10T12:22:31,550 writing manifest file '/tmp/pip-pip-egg-info-ki8zpqqc/tetris_cpp.egg-info/SOURCES.txt' 2021-07-10T12:22:31,627 Source in /tmp/pip-wheel-oqitasl8/tetris-cpp_a6e4e7fb425d4b68a44fdc8569346b50 has version 0.1.3, which satisfies requirement tetris-cpp==0.1.3 from https://files.pythonhosted.org/packages/8f/cd/4b39c5c2b29ca596f7a1a60d322b707e96f9ddb0406de9acd744edf7e148/tetris_cpp-0.1.3.tar.gz#sha256=52d539505a099a99b826601e53710092be2e3a493f43795d00178be428268e12 2021-07-10T12:22:31,628 Removed tetris-cpp==0.1.3 from https://files.pythonhosted.org/packages/8f/cd/4b39c5c2b29ca596f7a1a60d322b707e96f9ddb0406de9acd744edf7e148/tetris_cpp-0.1.3.tar.gz#sha256=52d539505a099a99b826601e53710092be2e3a493f43795d00178be428268e12 from build tracker '/tmp/pip-req-tracker-de8y21zw' 2021-07-10T12:22:31,632 Created temporary directory: /tmp/pip-unpack-uyjwlv7v 2021-07-10T12:22:31,633 Building wheels for collected packages: tetris-cpp 2021-07-10T12:22:31,637 Created temporary directory: /tmp/pip-wheel-7q134epa 2021-07-10T12:22:31,638 Building wheel for tetris-cpp (setup.py): started 2021-07-10T12:22:31,638 Destination directory: /tmp/pip-wheel-7q134epa 2021-07-10T12:22:31,638 Running command /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-oqitasl8/tetris-cpp_a6e4e7fb425d4b68a44fdc8569346b50/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-oqitasl8/tetris-cpp_a6e4e7fb425d4b68a44fdc8569346b50/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-7q134epa 2021-07-10T12:22:32,618 running bdist_wheel 2021-07-10T12:22:32,775 running build 2021-07-10T12:22:32,775 running build_py 2021-07-10T12:22:32,920 creating build 2021-07-10T12:22:32,920 creating build/lib.linux-armv7l-3.9 2021-07-10T12:22:32,921 creating build/lib.linux-armv7l-3.9/tetris_cpp 2021-07-10T12:22:32,922 copying tetris_cpp/__init__.py -> build/lib.linux-armv7l-3.9/tetris_cpp 2021-07-10T12:22:32,924 running build_ext 2021-07-10T12:22:32,930 building '_tetris_cpp' extension 2021-07-10T12:22:32,930 creating build/temp.linux-armv7l-3.9 2021-07-10T12:22:32,931 arm-linux-gnueabihf-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I. -I/usr/include/python3.9 -c board_python.cpp -o build/temp.linux-armv7l-3.9/board_python.o -std=c++11 2021-07-10T12:22:34,540 board_python.cpp: In function ‘PyObject* set_row_cache_size_function(PyObject*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,541 board_python.cpp:139:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,541 139 | static char *keywords[] = { "max", NULL }; 2021-07-10T12:22:34,541 | ^~~~~ 2021-07-10T12:22:34,542 board_python.cpp: In function ‘PyObject* set_board_cache_size_function(PyObject*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,542 board_python.cpp:153:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,543 153 | static char *keywords[] = { "max", NULL }; 2021-07-10T12:22:34,543 | ^~~~~ 2021-07-10T12:22:34,543 board_python.cpp:157:29: warning: comparison of integer expressions of different signedness: ‘std::stack > >::size_type’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare] 2021-07-10T12:22:34,543 157 | while (board_cache.size() > count) { 2021-07-10T12:22:34,543 | ~~~~~~~~~~~~~~~~~~~^~~~~~~ 2021-07-10T12:22:34,544 board_python.cpp: In function ‘int python_tetris_20_10_init_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,545 board_python.cpp:185:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,545 185 | static char *keywords[] = { "rows", NULL }; 2021-07-10T12:22:34,545 | ^~~~~~ 2021-07-10T12:22:34,554 board_python.cpp: In function ‘int python_tetris_20_10_setitem_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,554 board_python.cpp:216:11: error: ‘PyInt_AsLong’ was not declared in this scope; did you mean ‘PyLong_AsLong’? 2021-07-10T12:22:34,554 216 | value = PyInt_AsLong(val); 2021-07-10T12:22:34,554 | ^~~~~~~~~~~~ 2021-07-10T12:22:34,554 | PyLong_AsLong 2021-07-10T12:22:34,558 board_python.cpp: In function ‘PyObject* python_tetris_20_10_add_rows_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,559 board_python.cpp:264:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,559 264 | static char *keywords[] = { "rows", NULL }; 2021-07-10T12:22:34,559 | ^~~~~~ 2021-07-10T12:22:34,559 board_python.cpp: In function ‘PyObject* python_tetris_20_10_is_fake_row_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,559 board_python.cpp:272:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,559 272 | static char *keywords[] = { "r", NULL }; 2021-07-10T12:22:34,560 | ^~~ 2021-07-10T12:22:34,560 board_python.cpp: In function ‘PyObject* python_tetris_20_10_is_mirrored_row_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,561 board_python.cpp:281:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,561 281 | static char *keywords[] = { "r", NULL }; 2021-07-10T12:22:34,561 | ^~~ 2021-07-10T12:22:34,562 board_python.cpp: In function ‘PyObject* python_tetris_20_10_check_full_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,562 board_python.cpp:290:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,562 290 | static char *keywords[] = { "clear", NULL }; 2021-07-10T12:22:34,562 | ^~~~~~~ 2021-07-10T12:22:34,563 board_python.cpp: In function ‘PyObject* python_tetris_20_10_check_empty_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,563 board_python.cpp:298:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,563 298 | static char *keywords[] = { "clear", NULL }; 2021-07-10T12:22:34,563 | ^~~~~~~ 2021-07-10T12:22:34,564 board_python.cpp: In function ‘PyObject* python_tetris_20_10_set_tamper_seal_function(python_tetris_20_10*, PyObject*, PyObject*)’: 2021-07-10T12:22:34,564 board_python.cpp:306:31: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 2021-07-10T12:22:34,564 306 | static char *keywords[] = { "state", NULL }; 2021-07-10T12:22:34,564 | ^~~~~~~ 2021-07-10T12:22:34,566 board_python.cpp: In function ‘PyObject* init_tetris_cpp()’: 2021-07-10T12:22:34,566 board_python.cpp:354:22: warning: ‘void PyEval_InitThreads()’ is deprecated [-Wdeprecated-declarations] 2021-07-10T12:22:34,567 354 | PyEval_InitThreads(); 2021-07-10T12:22:34,567 | ^ 2021-07-10T12:22:34,567 In file included from /usr/include/python3.9/Python.h:145, 2021-07-10T12:22:34,567 from board_python.cpp:8: 2021-07-10T12:22:34,567 /usr/include/python3.9/ceval.h:130:37: note: declared here 2021-07-10T12:22:34,567 130 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void); 2021-07-10T12:22:34,568 | ^~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,576 board_python.cpp:355:12: error: ‘Py_InitModule3’ was not declared in this scope 2021-07-10T12:22:34,576 355 | module = Py_InitModule3("_tetris_cpp", NULL, ""); 2021-07-10T12:22:34,576 | ^~~~~~~~~~~~~~ 2021-07-10T12:22:34,576 board_python.cpp:356:16: error: return-statement with no value, in function returning ‘PyObject*’ {aka ‘_object*’} [-fpermissive] 2021-07-10T12:22:34,577 356 | if (!module) return; 2021-07-10T12:22:34,577 | ^~~~~~ 2021-07-10T12:22:34,577 board_python.cpp:372:52: error: return-statement with no value, in function returning ‘PyObject*’ {aka ‘_object*’} [-fpermissive] 2021-07-10T12:22:34,577 372 | if (PyType_Ready(&python_tetris_20_10_type) < 0) return; 2021-07-10T12:22:34,577 | ^~~~~~ 2021-07-10T12:22:34,577 board_python.cpp:374:94: error: return-statement with no value, in function returning ‘PyObject*’ {aka ‘_object*’} [-fpermissive] 2021-07-10T12:22:34,577 374 | if (PyModule_AddObject(module, "tetris_20_10", (PyObject*) &python_tetris_20_10_type) < 0) return; 2021-07-10T12:22:34,578 | ^~~~~~ 2021-07-10T12:22:34,595 In file included from board_python.cpp:10: 2021-07-10T12:22:34,595 tetris_cow.cpp: In instantiation of ‘typename tetris_cow_storage::cell_type tetris_cow_logic::get_cell(size_t, size_t) const [with Type = int [20][10]; typename tetris_cow_storage::cell_type = int; size_t = unsigned int]’: 2021-07-10T12:22:34,596 board_python.cpp:209:59: required from here 2021-07-10T12:22:34,596 tetris_cow.cpp:147:13: warning: ‘std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type& std::__shared_ptr_access<_Tp, _Lp, true, false>::operator*() const [with _Tp = int [10]; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex; std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type = int]’ is deprecated: shared_ptr::operator* is absent from C++17 [-Wdeprecated-declarations] 2021-07-10T12:22:34,596 147 | return (*board[r])[c]; 2021-07-10T12:22:34,596 | ~^~~~~~~~~~ 2021-07-10T12:22:34,596 In file included from /usr/include/c++/10/bits/shared_ptr.h:52, 2021-07-10T12:22:34,596 from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,596 from board_python.cpp:4: 2021-07-10T12:22:34,597 /usr/include/c++/10/bits/shared_ptr_base.h:1053:7: note: declared here 2021-07-10T12:22:34,597 1053 | operator*() const noexcept 2021-07-10T12:22:34,597 | ^~~~~~~~ 2021-07-10T12:22:34,597 In file included from board_python.cpp:10: 2021-07-10T12:22:34,597 tetris_cow.cpp:147:23: error: subscripted value is neither array nor pointer 2021-07-10T12:22:34,597 147 | return (*board[r])[c]; 2021-07-10T12:22:34,597 | ~~~~~~~~~~~^ 2021-07-10T12:22:34,598 tetris_cow.cpp: In instantiation of ‘const typename tetris_cow_storage::cell_type& tetris_cow_logic::set_cell(size_t, size_t, const typename tetris_cow_storage::cell_type&) [with Type = int [20][10]; typename tetris_cow_storage::cell_type = int; size_t = unsigned int]’: 2021-07-10T12:22:34,598 board_python.cpp:220:34: required from here 2021-07-10T12:22:34,598 tetris_cow.cpp:157:34: warning: ‘std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type& std::__shared_ptr_access<_Tp, _Lp, true, false>::operator*() const [with _Tp = int [10]; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex; std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type = int]’ is deprecated: shared_ptr::operator* is absent from C++17 [-Wdeprecated-declarations] 2021-07-10T12:22:34,598 157 | board[r] = cache->copy_row(*board[r]); 2021-07-10T12:22:34,598 | ^~~~~~~ 2021-07-10T12:22:34,598 In file included from /usr/include/c++/10/bits/shared_ptr.h:52, 2021-07-10T12:22:34,598 from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,599 from board_python.cpp:4: 2021-07-10T12:22:34,599 /usr/include/c++/10/bits/shared_ptr_base.h:1053:7: note: declared here 2021-07-10T12:22:34,599 1053 | operator*() const noexcept 2021-07-10T12:22:34,599 | ^~~~~~~~ 2021-07-10T12:22:34,599 In file included from board_python.cpp:10: 2021-07-10T12:22:34,599 tetris_cow.cpp:157:33: error: cannot convert ‘std::__shared_ptr_access::element_type’ {aka ‘int’} to ‘const int (&)[10]’ 2021-07-10T12:22:34,599 157 | board[r] = cache->copy_row(*board[r]); 2021-07-10T12:22:34,599 | ~~~~~~~~~~~~~~~^~~~~~~~~~~ 2021-07-10T12:22:34,600 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,600 from board_python.cpp:10: 2021-07-10T12:22:34,600 row_pool.cpp:35:40: note: initializing argument 1 of ‘row_pool::row_pointer row_pool::copy_row(const row_type&) [with Type = int [10]; row_pool::row_pointer = std::shared_ptr; row_pool::row_type = int [10]]’ 2021-07-10T12:22:34,600 35 | row_pointer copy_row(const row_type &old_row) { 2021-07-10T12:22:34,600 | ~~~~~~~~~~~~~~~~^~~~~~~ 2021-07-10T12:22:34,600 In file included from board_python.cpp:10: 2021-07-10T12:22:34,600 tetris_cow.cpp:161:13: warning: ‘std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type& std::__shared_ptr_access<_Tp, _Lp, true, false>::operator*() const [with _Tp = int [10]; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex; std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type = int]’ is deprecated: shared_ptr::operator* is absent from C++17 [-Wdeprecated-declarations] 2021-07-10T12:22:34,601 161 | return (*board[r])[c] = val; 2021-07-10T12:22:34,601 | ~^~~~~~~~~~ 2021-07-10T12:22:34,601 In file included from /usr/include/c++/10/bits/shared_ptr.h:52, 2021-07-10T12:22:34,601 from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,601 from board_python.cpp:4: 2021-07-10T12:22:34,601 /usr/include/c++/10/bits/shared_ptr_base.h:1053:7: note: declared here 2021-07-10T12:22:34,601 1053 | operator*() const noexcept 2021-07-10T12:22:34,601 | ^~~~~~~~ 2021-07-10T12:22:34,602 In file included from board_python.cpp:10: 2021-07-10T12:22:34,602 tetris_cow.cpp:161:23: error: subscripted value is neither array nor pointer 2021-07-10T12:22:34,602 161 | return (*board[r])[c] = val; 2021-07-10T12:22:34,602 | ~~~~~~~~~~~^ 2021-07-10T12:22:34,602 tetris_cow.cpp: In instantiation of ‘void tetris_cow_logic::uncow_all() [with Type = int [20][10]]’: 2021-07-10T12:22:34,602 board_python.cpp:239:24: required from here 2021-07-10T12:22:34,602 tetris_cow.cpp:169:58: warning: ‘std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type& std::__shared_ptr_access<_Tp, _Lp, true, false>::operator*() const [with _Tp = int [10]; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex; std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type = int]’ is deprecated: shared_ptr::operator* is absent from C++17 [-Wdeprecated-declarations] 2021-07-10T12:22:34,603 169 | if (!board[r].unique()) board[r] = cache->copy_row(*board[r]); 2021-07-10T12:22:34,603 | ^~~~~~~ 2021-07-10T12:22:34,603 In file included from /usr/include/c++/10/bits/shared_ptr.h:52, 2021-07-10T12:22:34,603 from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,603 from board_python.cpp:4: 2021-07-10T12:22:34,603 /usr/include/c++/10/bits/shared_ptr_base.h:1053:7: note: declared here 2021-07-10T12:22:34,603 1053 | operator*() const noexcept 2021-07-10T12:22:34,604 | ^~~~~~~~ 2021-07-10T12:22:34,604 In file included from board_python.cpp:10: 2021-07-10T12:22:34,604 tetris_cow.cpp:169:57: error: cannot convert ‘std::__shared_ptr_access::element_type’ {aka ‘int’} to ‘const int (&)[10]’ 2021-07-10T12:22:34,604 169 | if (!board[r].unique()) board[r] = cache->copy_row(*board[r]); 2021-07-10T12:22:34,604 | ~~~~~~~~~~~~~~~^~~~~~~~~~~ 2021-07-10T12:22:34,604 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,604 from board_python.cpp:10: 2021-07-10T12:22:34,605 row_pool.cpp:35:40: note: initializing argument 1 of ‘row_pool::row_pointer row_pool::copy_row(const row_type&) [with Type = int [10]; row_pool::row_pointer = std::shared_ptr; row_pool::row_type = int [10]]’ 2021-07-10T12:22:34,605 35 | row_pointer copy_row(const row_type &old_row) { 2021-07-10T12:22:34,605 | ~~~~~~~~~~~~~~~~^~~~~~~ 2021-07-10T12:22:34,616 row_pool.cpp: In instantiation of ‘bool row_pool::reclaim_row(row_pool::row_pointer&) [with Type = int [10]; row_pool::row_pointer = std::shared_ptr]’: 2021-07-10T12:22:34,616 tetris_cow.cpp:134:38: required from ‘void tetris_cow_logic::clear_all() [with Type = int [20][10]]’ 2021-07-10T12:22:34,616 board_python.cpp:59:22: required from here 2021-07-10T12:22:34,616 row_pool.cpp:54:37: warning: ‘std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type& std::__shared_ptr_access<_Tp, _Lp, true, false>::operator*() const [with _Tp = int [10]; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex; std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type = int]’ is deprecated: shared_ptr::operator* is absent from C++17 [-Wdeprecated-declarations] 2021-07-10T12:22:34,616 54 | if (!ctrl.validate(default_row, *row)) return false; 2021-07-10T12:22:34,616 | ^~~~ 2021-07-10T12:22:34,617 In file included from /usr/include/c++/10/bits/shared_ptr.h:52, 2021-07-10T12:22:34,617 from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,617 from board_python.cpp:4: 2021-07-10T12:22:34,617 /usr/include/c++/10/bits/shared_ptr_base.h:1053:7: note: declared here 2021-07-10T12:22:34,617 1053 | operator*() const noexcept 2021-07-10T12:22:34,617 | ^~~~~~~~ 2021-07-10T12:22:34,617 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,618 from board_python.cpp:10: 2021-07-10T12:22:34,618 row_pool.cpp:54:23: error: cannot convert ‘std::__shared_ptr_access::element_type’ {aka ‘int’} to ‘const int (&)[10]’ 2021-07-10T12:22:34,618 54 | if (!ctrl.validate(default_row, *row)) return false; 2021-07-10T12:22:34,618 | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,618 In file included from row_pool.cpp:8, 2021-07-10T12:22:34,618 from tetris_cow.cpp:10, 2021-07-10T12:22:34,618 from board_python.cpp:10: 2021-07-10T12:22:34,619 row_oper.hpp:60:54: note: initializing argument 2 of ‘bool row_oper_array::validate(const Type (&)[Size], const Type (&)[Size]) [with Type = int; unsigned int Size = 10; row_oper_array::type = int [10]]’ 2021-07-10T12:22:34,619 60 | virtual bool validate(const type &row, const type &ref) { 2021-07-10T12:22:34,619 | ~~~~~~~~~~~~^~~ 2021-07-10T12:22:34,656 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,657 from board_python.cpp:10: 2021-07-10T12:22:34,657 row_pool.cpp: In instantiation of ‘row_pool::row_pointer row_pool::copy_row(const row_type&) [with Type = int [10]; row_pool::row_pointer = std::shared_ptr; row_pool::row_type = int [10]]’: 2021-07-10T12:22:34,657 row_pool.cpp:31:18: required from ‘row_pool::row_pointer row_pool::new_row() [with Type = int [10]; row_pool::row_pointer = std::shared_ptr]’ 2021-07-10T12:22:34,658 tetris_cow.cpp:180:42: required from ‘size_t tetris_cow_logic::add_rows(ssize_t) [with Type = int [20][10]; size_t = unsigned int; ssize_t = int]’ 2021-07-10T12:22:34,658 board_python.cpp:70:26: required from here 2021-07-10T12:22:34,658 row_pool.cpp:41:26: warning: ‘std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type& std::__shared_ptr_access<_Tp, _Lp, true, false>::operator*() const [with _Tp = int [10]; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_mutex; std::__shared_ptr_access<_Tp, _Lp, true, false>::element_type = int]’ is deprecated: shared_ptr::operator* is absent from C++17 [-Wdeprecated-declarations] 2021-07-10T12:22:34,658 41 | ctrl.copy(old_row, *next); 2021-07-10T12:22:34,658 | ^~~~~ 2021-07-10T12:22:34,658 In file included from /usr/include/c++/10/bits/shared_ptr.h:52, 2021-07-10T12:22:34,658 from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,659 from board_python.cpp:4: 2021-07-10T12:22:34,659 /usr/include/c++/10/bits/shared_ptr_base.h:1053:7: note: declared here 2021-07-10T12:22:34,659 1053 | operator*() const noexcept 2021-07-10T12:22:34,659 | ^~~~~~~~ 2021-07-10T12:22:34,659 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,659 from board_python.cpp:10: 2021-07-10T12:22:34,660 row_pool.cpp:41:16: error: cannot convert ‘std::__shared_ptr_access::element_type’ {aka ‘int’} to ‘int (&)[10]’ 2021-07-10T12:22:34,660 41 | ctrl.copy(old_row, *next); 2021-07-10T12:22:34,660 | ~~~~~~~~~^~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,660 In file included from row_pool.cpp:8, 2021-07-10T12:22:34,660 from tetris_cow.cpp:10, 2021-07-10T12:22:34,660 from board_python.cpp:10: 2021-07-10T12:22:34,660 row_oper.hpp:91:40: note: initializing argument 2 of ‘void row_oper_int::copy(const typename row_oper_array::type&, typename row_oper_array::type&) [with Type = int; unsigned int Size = 10; typename row_oper_array::type = int [10]]’ 2021-07-10T12:22:34,660 91 | void copy(const type &old_row, type &new_row) { 2021-07-10T12:22:34,661 | ~~~~~~^~~~~~~ 2021-07-10T12:22:34,661 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,661 from board_python.cpp:10: 2021-07-10T12:22:34,661 row_pool.cpp:44:14: error: no matching function for call to ‘std::shared_ptr::shared_ptr(int (*)[10])’ 2021-07-10T12:22:34,661 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,661 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,661 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,661 from board_python.cpp:4: 2021-07-10T12:22:34,662 /usr/include/c++/10/bits/shared_ptr.h:416:7: note: candidate: ‘std::shared_ptr<_Tp>::shared_ptr(const std::weak_ptr<_Tp>&, std::nothrow_t) [with _Tp = int [10]]’ 2021-07-10T12:22:34,662 416 | shared_ptr(const weak_ptr<_Tp>& __r, std::nothrow_t) 2021-07-10T12:22:34,662 | ^~~~~~~~~~ 2021-07-10T12:22:34,662 /usr/include/c++/10/bits/shared_ptr.h:416:7: note: candidate expects 2 arguments, 1 provided 2021-07-10T12:22:34,662 /usr/include/c++/10/bits/shared_ptr.h:407:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = _Alloc; _Args = {_Args ...}; _Tp = int [10]]’ 2021-07-10T12:22:34,662 407 | shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args) 2021-07-10T12:22:34,662 | ^~~~~~~~~~ 2021-07-10T12:22:34,662 /usr/include/c++/10/bits/shared_ptr.h:407:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,663 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,663 from board_python.cpp:10: 2021-07-10T12:22:34,663 row_pool.cpp:44:14: note: mismatched types ‘std::_Sp_alloc_shared_tag<_Tp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,663 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,663 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,663 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,664 from board_python.cpp:4: 2021-07-10T12:22:34,664 /usr/include/c++/10/bits/shared_ptr.h:356:17: note: candidate: ‘constexpr std::shared_ptr<_Tp>::shared_ptr(std::nullptr_t) [with _Tp = int [10]; std::nullptr_t = std::nullptr_t]’ 2021-07-10T12:22:34,664 356 | constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 2021-07-10T12:22:34,664 | ^~~~~~~~~~ 2021-07-10T12:22:34,664 /usr/include/c++/10/bits/shared_ptr.h:356:28: note: no known conversion for argument 1 from ‘int (*)[10]’ to ‘std::nullptr_t’ 2021-07-10T12:22:34,664 356 | constexpr shared_ptr(nullptr_t) noexcept : shared_ptr() { } 2021-07-10T12:22:34,664 | ^~~~~~~~~ 2021-07-10T12:22:34,664 /usr/include/c++/10/bits/shared_ptr.h:348:2: note: candidate: ‘template::_Constructible, std::__sp_array_delete>* > std::shared_ptr<_Tp>::shared_ptr(std::unique_ptr<_Up, _Ep>&&) [with _Yp = _Yp; _Del = _Del; std::shared_ptr<_Tp>::_Constructible, std::__sp_array_delete>* = ; _Tp = int [10]]’ 2021-07-10T12:22:34,665 348 | shared_ptr(unique_ptr<_Yp, _Del>&& __r) 2021-07-10T12:22:34,665 | ^~~~~~~~~~ 2021-07-10T12:22:34,665 /usr/include/c++/10/bits/shared_ptr.h:348:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,665 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,665 from board_python.cpp:10: 2021-07-10T12:22:34,665 row_pool.cpp:44:14: note: mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,665 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,666 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,666 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,666 from board_python.cpp:4: 2021-07-10T12:22:34,666 /usr/include/c++/10/bits/shared_ptr.h:339:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(std::unique_ptr<_Up, _Ep>&&) [with _Yp = _Yp; _Del = _Del; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,666 339 | shared_ptr(unique_ptr<_Yp, _Del>&& __r) 2021-07-10T12:22:34,666 | ^~~~~~~~~~ 2021-07-10T12:22:34,666 /usr/include/c++/10/bits/shared_ptr.h:339:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,667 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,667 from board_python.cpp:10: 2021-07-10T12:22:34,667 row_pool.cpp:44:14: note: mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,667 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,667 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,667 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,667 from board_python.cpp:4: 2021-07-10T12:22:34,667 /usr/include/c++/10/bits/shared_ptr.h:331:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(std::auto_ptr<_Up>&&) [with _Yp = _Tp1; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,668 331 | shared_ptr(auto_ptr<_Yp>&& __r); 2021-07-10T12:22:34,668 | ^~~~~~~~~~ 2021-07-10T12:22:34,668 /usr/include/c++/10/bits/shared_ptr.h:331:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,668 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,668 from board_python.cpp:10: 2021-07-10T12:22:34,668 row_pool.cpp:44:14: note: mismatched types ‘std::auto_ptr<_Up>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,668 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,669 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,669 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,669 from board_python.cpp:4: 2021-07-10T12:22:34,669 /usr/include/c++/10/bits/shared_ptr.h:324:11: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(const std::weak_ptr<_Yp>&) [with _Yp = _Yp; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,669 324 | explicit shared_ptr(const weak_ptr<_Yp>& __r) 2021-07-10T12:22:34,669 | ^~~~~~~~~~ 2021-07-10T12:22:34,669 /usr/include/c++/10/bits/shared_ptr.h:324:11: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,669 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,670 from board_python.cpp:10: 2021-07-10T12:22:34,670 row_pool.cpp:44:14: note: mismatched types ‘const std::weak_ptr<_Tp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,670 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,670 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,670 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,670 from board_python.cpp:4: 2021-07-10T12:22:34,670 /usr/include/c++/10/bits/shared_ptr.h:312:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(std::shared_ptr<_Yp>&&) [with _Yp = _Yp; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,670 312 | shared_ptr(shared_ptr<_Yp>&& __r) noexcept 2021-07-10T12:22:34,671 | ^~~~~~~~~~ 2021-07-10T12:22:34,671 /usr/include/c++/10/bits/shared_ptr.h:312:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,671 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,671 from board_python.cpp:10: 2021-07-10T12:22:34,671 row_pool.cpp:44:14: note: mismatched types ‘std::shared_ptr<_Tp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,671 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,672 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,672 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,672 from board_python.cpp:4: 2021-07-10T12:22:34,672 /usr/include/c++/10/bits/shared_ptr.h:303:7: note: candidate: ‘std::shared_ptr<_Tp>::shared_ptr(std::shared_ptr<_Tp>&&) [with _Tp = int [10]]’ 2021-07-10T12:22:34,672 303 | shared_ptr(shared_ptr&& __r) noexcept 2021-07-10T12:22:34,672 | ^~~~~~~~~~ 2021-07-10T12:22:34,672 /usr/include/c++/10/bits/shared_ptr.h:303:31: note: no known conversion for argument 1 from ‘int (*)[10]’ to ‘std::shared_ptr&&’ 2021-07-10T12:22:34,673 303 | shared_ptr(shared_ptr&& __r) noexcept 2021-07-10T12:22:34,673 | ~~~~~~~~~~~~~^~~ 2021-07-10T12:22:34,673 /usr/include/c++/10/bits/shared_ptr.h:295:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(const std::shared_ptr<_Yp>&) [with _Yp = _Yp; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,673 295 | shared_ptr(const shared_ptr<_Yp>& __r) noexcept 2021-07-10T12:22:34,673 | ^~~~~~~~~~ 2021-07-10T12:22:34,673 /usr/include/c++/10/bits/shared_ptr.h:295:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,673 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,674 from board_python.cpp:10: 2021-07-10T12:22:34,674 row_pool.cpp:44:14: note: mismatched types ‘const std::shared_ptr<_Tp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,674 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,674 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,674 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,674 from board_python.cpp:4: 2021-07-10T12:22:34,674 /usr/include/c++/10/bits/shared_ptr.h:256:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(const std::shared_ptr<_Yp>&, std::shared_ptr<_Tp>::element_type*) [with _Yp = _Yp; _Tp = int [10]]’ 2021-07-10T12:22:34,675 256 | shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) noexcept 2021-07-10T12:22:34,675 | ^~~~~~~~~~ 2021-07-10T12:22:34,675 /usr/include/c++/10/bits/shared_ptr.h:256:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,675 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,675 from board_python.cpp:10: 2021-07-10T12:22:34,675 row_pool.cpp:44:14: note: mismatched types ‘const std::shared_ptr<_Tp>’ and ‘int (*)[10]’ 2021-07-10T12:22:34,675 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,676 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,676 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,676 from board_python.cpp:4: 2021-07-10T12:22:34,676 /usr/include/c++/10/bits/shared_ptr.h:232:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(std::nullptr_t, _Deleter, _Alloc) [with _Deleter = _Deleter; _Alloc = _Alloc; _Tp = int [10]]’ 2021-07-10T12:22:34,676 232 | shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) 2021-07-10T12:22:34,676 | ^~~~~~~~~~ 2021-07-10T12:22:34,676 /usr/include/c++/10/bits/shared_ptr.h:232:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,677 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,677 from board_python.cpp:10: 2021-07-10T12:22:34,677 row_pool.cpp:44:14: note: candidate expects 3 arguments, 1 provided 2021-07-10T12:22:34,677 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,677 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,677 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,677 from board_python.cpp:4: 2021-07-10T12:22:34,678 /usr/include/c++/10/bits/shared_ptr.h:213:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(_Yp*, _Deleter, _Alloc) [with _Yp = _Yp; _Deleter = _Deleter; _Alloc = _Alloc; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,678 213 | shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) 2021-07-10T12:22:34,678 | ^~~~~~~~~~ 2021-07-10T12:22:34,678 /usr/include/c++/10/bits/shared_ptr.h:213:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,678 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,678 from board_python.cpp:10: 2021-07-10T12:22:34,678 row_pool.cpp:44:14: note: candidate expects 3 arguments, 1 provided 2021-07-10T12:22:34,678 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,679 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,679 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,679 from board_python.cpp:4: 2021-07-10T12:22:34,679 /usr/include/c++/10/bits/shared_ptr.h:193:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(std::nullptr_t, _Deleter) [with _Deleter = _Deleter; _Tp = int [10]]’ 2021-07-10T12:22:34,679 193 | shared_ptr(nullptr_t __p, _Deleter __d) 2021-07-10T12:22:34,679 | ^~~~~~~~~~ 2021-07-10T12:22:34,679 /usr/include/c++/10/bits/shared_ptr.h:193:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,680 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,680 from board_python.cpp:10: 2021-07-10T12:22:34,680 row_pool.cpp:44:14: note: candidate expects 2 arguments, 1 provided 2021-07-10T12:22:34,680 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,680 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,680 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,680 from board_python.cpp:4: 2021-07-10T12:22:34,680 /usr/include/c++/10/bits/shared_ptr.h:176:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(_Yp*, _Deleter) [with _Yp = _Yp; _Deleter = _Deleter; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,681 176 | shared_ptr(_Yp* __p, _Deleter __d) 2021-07-10T12:22:34,681 | ^~~~~~~~~~ 2021-07-10T12:22:34,681 /usr/include/c++/10/bits/shared_ptr.h:176:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,681 In file included from tetris_cow.cpp:10, 2021-07-10T12:22:34,681 from board_python.cpp:10: 2021-07-10T12:22:34,681 row_pool.cpp:44:14: note: candidate expects 2 arguments, 1 provided 2021-07-10T12:22:34,681 44 | return row_pointer(ctrl.new_copy(old_row)); 2021-07-10T12:22:34,682 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,682 In file included from /usr/include/c++/10/memory:84, 2021-07-10T12:22:34,682 from board_python.cpp:4: 2021-07-10T12:22:34,682 /usr/include/c++/10/bits/shared_ptr.h:159:2: note: candidate: ‘template std::shared_ptr<_Tp>::shared_ptr(_Yp*) [with _Yp = _Yp; = ; _Tp = int [10]]’ 2021-07-10T12:22:34,682 159 | shared_ptr(_Yp* __p) : __shared_ptr<_Tp>(__p) { } 2021-07-10T12:22:34,682 | ^~~~~~~~~~ 2021-07-10T12:22:34,682 /usr/include/c++/10/bits/shared_ptr.h:159:2: note: template argument deduction/substitution failed: 2021-07-10T12:22:34,682 /usr/include/c++/10/bits/shared_ptr.h: In substitution of ‘template template using _Constructible = typename std::enable_if, _Args ...>::value>::type [with _Args = {int (*)[10]}; _Tp = int [10]]’: 2021-07-10T12:22:34,683 /usr/include/c++/10/bits/shared_ptr.h:157:30: required from ‘row_pool::row_pointer row_pool::copy_row(const row_type&) [with Type = int [10]; row_pool::row_pointer = std::shared_ptr; row_pool::row_type = int [10]]’ 2021-07-10T12:22:34,683 row_pool.cpp:31:18: required from ‘row_pool::row_pointer row_pool::new_row() [with Type = int [10]; row_pool::row_pointer = std::shared_ptr]’ 2021-07-10T12:22:34,683 tetris_cow.cpp:180:42: required from ‘size_t tetris_cow_logic::add_rows(ssize_t) [with Type = int [20][10]; size_t = unsigned int; ssize_t = int]’ 2021-07-10T12:22:34,683 board_python.cpp:70:26: required from here 2021-07-10T12:22:34,683 /usr/include/c++/10/bits/shared_ptr.h:124:8: error: no type named ‘type’ in ‘struct std::enable_if’ 2021-07-10T12:22:34,683 124 | using _Constructible = typename enable_if< 2021-07-10T12:22:34,683 | ^~~~~~~~~~~~~~ 2021-07-10T12:22:34,684 row_pool.cpp: In instantiation of ‘row_pool::row_pointer row_pool::copy_row(const row_type&) [with Type = int [10]; row_pool::row_pointer = std::shared_ptr; row_pool::row_type = int [10]]’: 2021-07-10T12:22:34,684 row_pool.cpp:31:18: required from ‘row_pool::row_pointer row_pool::new_row() [with Type = int [10]; row_pool::row_pointer = std::shared_ptr]’ 2021-07-10T12:22:34,684 tetris_cow.cpp:180:42: required from ‘size_t tetris_cow_logic::add_rows(ssize_t) [with Type = int [20][10]; size_t = unsigned int; ssize_t = int]’ 2021-07-10T12:22:34,684 board_python.cpp:70:26: required from here 2021-07-10T12:22:34,684 /usr/include/c++/10/bits/shared_ptr.h:149:7: note: candidate: ‘std::shared_ptr<_Tp>::shared_ptr(const std::shared_ptr<_Tp>&) [with _Tp = int [10]]’ 2021-07-10T12:22:34,684 149 | shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor 2021-07-10T12:22:34,685 | ^~~~~~~~~~ 2021-07-10T12:22:34,685 /usr/include/c++/10/bits/shared_ptr.h:149:18: note: no known conversion for argument 1 from ‘int (*)[10]’ to ‘const std::shared_ptr&’ 2021-07-10T12:22:34,685 149 | shared_ptr(const shared_ptr&) noexcept = default; ///< Copy constructor 2021-07-10T12:22:34,685 | ^~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,685 /usr/include/c++/10/bits/shared_ptr.h:147:17: note: candidate: ‘constexpr std::shared_ptr<_Tp>::shared_ptr() [with _Tp = int [10]]’ 2021-07-10T12:22:34,685 147 | constexpr shared_ptr() noexcept : __shared_ptr<_Tp>() { } 2021-07-10T12:22:34,685 | ^~~~~~~~~~ 2021-07-10T12:22:34,686 /usr/include/c++/10/bits/shared_ptr.h:147:17: note: candidate expects 0 arguments, 1 provided 2021-07-10T12:22:34,747 board_python.cpp:382:21: warning: control reaches end of non-void function [-Wreturn-type] 2021-07-10T12:22:34,747 382 | add_global_binding(&get_board_cache_size_binding); 2021-07-10T12:22:34,747 | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2021-07-10T12:22:34,797 error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1 2021-07-10T12:22:34,883 Building wheel for tetris-cpp (setup.py): finished with status 'error' 2021-07-10T12:22:34,884 ERROR: Failed building wheel for tetris-cpp 2021-07-10T12:22:34,884 Running setup.py clean for tetris-cpp 2021-07-10T12:22:34,885 Running command /usr/bin/python3 -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-oqitasl8/tetris-cpp_a6e4e7fb425d4b68a44fdc8569346b50/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-oqitasl8/tetris-cpp_a6e4e7fb425d4b68a44fdc8569346b50/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' clean --all 2021-07-10T12:22:35,728 running clean 2021-07-10T12:22:35,730 removing 'build/temp.linux-armv7l-3.9' (and everything under it) 2021-07-10T12:22:35,731 removing 'build/lib.linux-armv7l-3.9' (and everything under it) 2021-07-10T12:22:35,733 'build/bdist.linux-armv7l' does not exist -- can't clean it 2021-07-10T12:22:35,733 'build/scripts-3.9' does not exist -- can't clean it 2021-07-10T12:22:35,733 removing 'build' 2021-07-10T12:22:35,789 Failed to build tetris-cpp 2021-07-10T12:22:35,790 ERROR: Failed to build one or more wheels 2021-07-10T12:22:35,791 Exception information: 2021-07-10T12:22:35,791 Traceback (most recent call last): 2021-07-10T12:22:35,791 File "/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/base_command.py", line 180, in _main 2021-07-10T12:22:35,791 status = self.run(options, args) 2021-07-10T12:22:35,791 File "/usr/local/lib/python3.9/dist-packages/pip/_internal/cli/req_command.py", line 205, in wrapper 2021-07-10T12:22:35,791 return func(self, options, args) 2021-07-10T12:22:35,791 File "/usr/local/lib/python3.9/dist-packages/pip/_internal/commands/wheel.py", line 174, in run 2021-07-10T12:22:35,791 raise CommandError( 2021-07-10T12:22:35,791 pip._internal.exceptions.CommandError: Failed to build one or more wheels 2021-07-10T12:22:35,793 Removed build tracker: '/tmp/pip-req-tracker-de8y21zw'