guillaumechereau / goxel

Goxel: Free and Open Source 3D Voxel Editor
GNU General Public License v3.0
2.8k stars 223 forks source link

Does not build on Devuan Linux #163

Closed ptvirgo closed 1 year ago

ptvirgo commented 5 years ago

Running either scons or make release results in a failed build. Didn't look like a missing library to me, but I've included a traceback.

g++ -o src/yocto.o -c -std=gnu++17 -Wall -Wno-narrowing -fsanitize=address -fsanitize=undefined -Werror -O0 -g -include src/config.h -pthread -DHAVE_LIBPNG=1 -Isrc -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -Iext_src/uthash -Iext_src/stb -Iext_src/noc src/yocto.cpp
In file included from src/yocto.cpp:50:0:
src/../ext_src/yocto/yocto_bvh.cpp: In function ‘void yocto::build_bvh_serial(std::vector<yocto::bvh_node>&, std::vector<yocto::bvh_prim>&, const yocto::bvh_params&)’:
src/../ext_src/yocto/yocto_bvh.cpp:885:12: error: expected unqualified-id before ‘[’ token
       auto [mid, axis] = (params.high_quality)
            ^
src/../ext_src/yocto/yocto_bvh.cpp:891:23: error: ‘axis’ was not declared in this scope
       node.axis     = axis;
                       ^~~~
src/../ext_src/yocto/yocto_bvh.cpp:897:46: error: ‘mid’ was not declared in this scope
       queue.push_back({node.prims[0], start, mid});
                                              ^~~
src/../ext_src/yocto/yocto_bvh.cpp:897:50: error: no matching function for call to ‘std::deque<yocto::vec3i>::push_back(<brace-enclosed initializer list>)’
       queue.push_back({node.prims[0], start, mid});
                                                  ^
In file included from /usr/include/c++/6/deque:64:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:38,
                 from src/yocto.cpp:50:
/usr/include/c++/6/bits/stl_deque.h:1517:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(const value_type& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1517:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const value_type& {aka const yocto::vec3i&}’
/usr/include/c++/6/bits/stl_deque.h:1532:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(std::deque<_Tp, _Alloc>::value_type&&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(value_type&& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1532:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::deque<yocto::vec3i>::value_type&& {aka yocto::vec3i&&}’
In file included from src/yocto.cpp:50:0:
src/../ext_src/yocto/yocto_bvh.cpp:898:48: error: no matching function for call to ‘std::deque<yocto::vec3i>::push_back(<brace-enclosed initializer list>)’
       queue.push_back({node.prims[1], mid, end});
                                                ^
In file included from /usr/include/c++/6/deque:64:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:38,
                 from src/yocto.cpp:50:
/usr/include/c++/6/bits/stl_deque.h:1517:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(const value_type& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1517:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const value_type& {aka const yocto::vec3i&}’
/usr/include/c++/6/bits/stl_deque.h:1532:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(std::deque<_Tp, _Alloc>::value_type&&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(value_type&& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1532:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::deque<yocto::vec3i>::value_type&& {aka yocto::vec3i&&}’
In file included from src/yocto.cpp:50:0:
src/../ext_src/yocto/yocto_bvh.cpp: In lambda function:
src/../ext_src/yocto/yocto_bvh.cpp:966:20: error: expected unqualified-id before ‘[’ token
               auto [mid, axis] = (params.high_quality)
                    ^
src/../ext_src/yocto/yocto_bvh.cpp:974:33: error: ‘axis’ was not declared in this scope
                 node.axis     = axis;
                                 ^~~~
src/../ext_src/yocto/yocto_bvh.cpp:980:56: error: ‘mid’ was not declared in this scope
                 queue.push_back({node.prims[0], start, mid});
                                                        ^~~
src/../ext_src/yocto/yocto_bvh.cpp:980:60: error: no matching function for call to ‘std::deque<yocto::vec3i>::push_back(<brace-enclosed initializer list>)’
                 queue.push_back({node.prims[0], start, mid});
                                                            ^
In file included from /usr/include/c++/6/deque:64:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:38,
                 from src/yocto.cpp:50:
/usr/include/c++/6/bits/stl_deque.h:1517:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(const value_type& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1517:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const value_type& {aka const yocto::vec3i&}’
/usr/include/c++/6/bits/stl_deque.h:1532:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(std::deque<_Tp, _Alloc>::value_type&&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(value_type&& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1532:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::deque<yocto::vec3i>::value_type&& {aka yocto::vec3i&&}’
In file included from src/yocto.cpp:50:0:
src/../ext_src/yocto/yocto_bvh.cpp:981:58: error: no matching function for call to ‘std::deque<yocto::vec3i>::push_back(<brace-enclosed initializer list>)’
                 queue.push_back({node.prims[1], mid, end});
                                                          ^
In file included from /usr/include/c++/6/deque:64:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:38,
                 from src/yocto.cpp:50:
/usr/include/c++/6/bits/stl_deque.h:1517:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(const value_type& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1517:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const value_type& {aka const yocto::vec3i&}’
/usr/include/c++/6/bits/stl_deque.h:1532:7: note: candidate: void std::deque<_Tp, _Alloc>::push_back(std::deque<_Tp, _Alloc>::value_type&&) [with _Tp = yocto::vec3i; _Alloc = std::allocator<yocto::vec3i>; std::deque<_Tp, _Alloc>::value_type = yocto::vec3i]
       push_back(value_type&& __x)
       ^~~~~~~~~
/usr/include/c++/6/bits/stl_deque.h:1532:7: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::deque<yocto::vec3i>::value_type&& {aka yocto::vec3i&&}’
In file included from src/yocto.cpp:51:0:
src/../ext_src/yocto/yocto_image.cpp: In function ‘void yocto::load_image_preset(const string&, yocto::image<yocto::vec4f>&)’:
src/../ext_src/yocto/yocto_image.cpp:1847:8: error: expected unqualified-id before ‘[’ token
   auto [type, nfilename] = get_preset_type(filename);
        ^
src/../ext_src/yocto/yocto_image.cpp:1849:7: error: ‘type’ was not declared in this scope
   if (type == "images2") img.resize({2048, 1024});
       ^~~~
src/../ext_src/yocto/yocto_image.cpp:1850:26: error: ‘type’ was not declared in this scope
   make_image_preset(img, type);
                          ^~~~
src/../ext_src/yocto/yocto_image.cpp: In function ‘void yocto::load_image(const string&, yocto::image<yocto::vec4f>&)’:
src/../ext_src/yocto/yocto_image.cpp:1881:65: error: expected ‘)’ before ‘;’ token
             &pixels, &width, &height, filename.c_str(), nullptr);
                                                                 ^
src/../ext_src/yocto/yocto_image.cpp:1880:5: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation]
     if (auto error = LoadEXR(
     ^~
src/../ext_src/yocto/yocto_image.cpp:1882:9: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
         error < 0)
         ^~~~~
src/../ext_src/yocto/yocto_image.cpp:1882:9: error: ‘error’ was not declared in this scope
src/../ext_src/yocto/yocto_image.cpp:1886:16: error: missing template arguments before ‘{’ token
     img = image{{width, height}, (const vec4f*)pixels};
                ^
src/../ext_src/yocto/yocto_image.cpp:1892:16: error: missing template arguments before ‘{’ token
     img = image{{width, height}, (const vec4f*)pixels};
                ^
src/../ext_src/yocto/yocto_image.cpp:1898:16: error: missing template arguments before ‘{’ token
     img = image{{width, height}, (const vec4f*)pixels};
                ^
src/../ext_src/yocto/yocto_image.cpp: In function ‘void yocto::load_imageb(const string&, yocto::image<yocto::vec4b>&)’:
src/../ext_src/yocto/yocto_image.cpp:1945:16: error: missing template arguments before ‘{’ token
     img = image{{width, height}, (const vec4b*)pixels};
                ^
src/../ext_src/yocto/yocto_image.cpp: In function ‘void yocto::impl::load_volume(const string&, yocto::volume<float>&)’:
src/../ext_src/yocto/yocto_image.cpp:2133:15: error: missing template arguments before ‘{’ token
   vol = volume{{width, height, depth}, (const float*)voxels};
               ^
In file included from src/yocto.cpp:52:0:
src/../ext_src/yocto/yocto_scene.cpp: In lambda function:
src/../ext_src/yocto/yocto_scene.cpp:1487:16: error: expected unqualified-id before ‘[’ token
     for (auto& [name, used] : used) {
                ^
src/../ext_src/yocto/yocto_scene.cpp:1487:16: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_scene.cpp:1487:17: error: ‘name’ was not declared in this scope
     for (auto& [name, used] : used) {
                 ^~~~
src/../ext_src/yocto/yocto_scene.cpp: In lambda function:
src/../ext_src/yocto/yocto_scene.cpp:1487:29: error: expected ‘{’ before ‘:’ token
     for (auto& [name, used] : used) {
                             ^
src/../ext_src/yocto/yocto_scene.cpp: In lambda function:
src/../ext_src/yocto/yocto_scene.cpp:1487:29: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_scene.cpp:1487:29: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_scene.cpp:1487:29: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_scene.cpp:1487:29: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_camera>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1503:38:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_camera>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_camera>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
     for (auto& [name, used] : used) {
     ^~~
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_shape>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1504:36:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_shape>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_shape>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_texture>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1505:40:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_texture>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_texture>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_voltexture>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1506:46:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_voltexture>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_voltexture>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_material>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1507:42:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_material>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_material>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_instance>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1508:42:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_instance>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_instance>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_environment>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1509:48:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_environment>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_environment>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_scene_node>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1510:34:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_scene_node>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_scene_node>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
src/../ext_src/yocto/yocto_scene.cpp: In instantiation of ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_animation>; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
src/../ext_src/yocto/yocto_scene.cpp:1511:44:   required from here
src/../ext_src/yocto/yocto_scene.cpp:1487:5: error: could not convert ‘<lambda closure object>yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_animation>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>{std::unordered_map<std::__cxx11::basic_string<char>, int>(used)}’ from ‘yocto::validate_scene(const yocto::yocto_scene&, bool)::<lambda(const auto:21&, const string&)> [with auto:21 = std::vector<yocto::yocto_animation>; std::__cxx11::string = std::__cxx11::basic_string<char>]::<lambda()>’ to ‘bool’
In file included from src/yocto.cpp:53:0:
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::split_facevarying(std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec2f>&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec2f>&)’:
src/../ext_src/yocto/yocto_shape.cpp:524:16: error: expected unqualified-id before ‘[’ token
     for (auto& [vert, index] : vert_map) {
                ^
src/../ext_src/yocto/yocto_shape.cpp:524:16: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_shape.cpp:524:17: error: ‘vert’ was not declared in this scope
     for (auto& [vert, index] : vert_map) {
                 ^~~~
src/../ext_src/yocto/yocto_shape.cpp:524:23: error: capture by copy of incomplete type ‘<unresolved overloaded function type>’
     for (auto& [vert, index] : vert_map) {
                       ^~~~~
src/../ext_src/yocto/yocto_shape.cpp: In lambda function:
src/../ext_src/yocto/yocto_shape.cpp:524:30: error: expected ‘{’ before ‘:’ token
     for (auto& [vert, index] : vert_map) {
                              ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::split_facevarying(std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec2f>&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec2f>&)’:
src/../ext_src/yocto/yocto_shape.cpp:524:30: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:524:30: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:524:30: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:524:30: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:531:16: error: expected unqualified-id before ‘[’ token
     for (auto& [vert, index] : vert_map) {
                ^
src/../ext_src/yocto/yocto_shape.cpp:531:16: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_shape.cpp:531:17: error: ‘vert’ was not declared in this scope
     for (auto& [vert, index] : vert_map) {
                 ^~~~
src/../ext_src/yocto/yocto_shape.cpp:531:23: error: capture by copy of incomplete type ‘<unresolved overloaded function type>’
     for (auto& [vert, index] : vert_map) {
                       ^~~~~
src/../ext_src/yocto/yocto_shape.cpp: In lambda function:
src/../ext_src/yocto/yocto_shape.cpp:531:30: error: expected ‘{’ before ‘:’ token
     for (auto& [vert, index] : vert_map) {
                              ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::split_facevarying(std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec2f>&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec2f>&)’:
src/../ext_src/yocto/yocto_shape.cpp:531:30: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:531:30: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:531:30: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:531:30: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:538:16: error: expected unqualified-id before ‘[’ token
     for (auto& [vert, index] : vert_map) {
                ^
src/../ext_src/yocto/yocto_shape.cpp:538:16: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_shape.cpp:538:17: error: ‘vert’ was not declared in this scope
     for (auto& [vert, index] : vert_map) {
                 ^~~~
src/../ext_src/yocto/yocto_shape.cpp:538:23: error: capture by copy of incomplete type ‘<unresolved overloaded function type>’
     for (auto& [vert, index] : vert_map) {
                       ^~~~~
src/../ext_src/yocto/yocto_shape.cpp: In lambda function:
src/../ext_src/yocto/yocto_shape.cpp:538:30: error: expected ‘{’ before ‘:’ token
     for (auto& [vert, index] : vert_map) {
                              ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::split_facevarying(std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, std::vector<yocto::vec2f>&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, const std::vector<yocto::vec2f>&)’:
src/../ext_src/yocto/yocto_shape.cpp:538:30: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:538:30: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:538:30: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:538:30: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp: In function ‘std::pair<std::vector<yocto::vec3i, std::allocator<yocto::vec3i> >, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> > > yocto::weld_triangles(const std::vector<yocto::vec3i, std::allocator<yocto::vec3i> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, float)’:
src/../ext_src/yocto/yocto_shape.cpp:612:8: error: expected unqualified-id before ‘[’ token
   auto [wpositions, indices] = weld_vertices(positions, threshold);
        ^
src/../ext_src/yocto/yocto_shape.cpp:614:35: error: ‘indices’ was not declared in this scope
   for (auto& t : wtriangles) t = {indices[t.x], indices[t.y], indices[t.z]};
                                   ^~~~~~~
src/../ext_src/yocto/yocto_shape.cpp:614:75: error: no match for ‘operator=’ (operand types are ‘yocto::vec3i’ and ‘<brace-enclosed initializer list>’)
   for (auto& t : wtriangles) t = {indices[t.x], indices[t.y], indices[t.z]};
                                                                           ^
In file included from src/../ext_src/yocto/yocto_bvh.h:90:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:34,
                 from src/yocto.cpp:50:
src/../ext_src/yocto/yocto_math.h:643:8: note: candidate: constexpr yocto::vec3i& yocto::vec3i::operator=(const yocto::vec3i&)
 struct vec3i {
        ^~~~~
src/../ext_src/yocto/yocto_math.h:643:8: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const yocto::vec3i&’
src/../ext_src/yocto/yocto_math.h:643:8: note: candidate: constexpr yocto::vec3i& yocto::vec3i::operator=(yocto::vec3i&&)
src/../ext_src/yocto/yocto_math.h:643:8: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘yocto::vec3i&&’
In file included from src/yocto.cpp:53:0:
src/../ext_src/yocto/yocto_shape.cpp:615:23: error: ‘wpositions’ was not declared in this scope
   return {wtriangles, wpositions};
                       ^~~~~~~~~~
src/../ext_src/yocto/yocto_shape.cpp:615:33: error: could not convert ‘{wtriangles, <expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘std::pair<std::vector<yocto::vec3i, std::allocator<yocto::vec3i> >, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> > >’
   return {wtriangles, wpositions};
                                 ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘std::pair<std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> > > yocto::weld_quads(const std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >&, const std::vector<yocto::vec3f, std::allocator<yocto::vec3f> >&, float)’:
src/../ext_src/yocto/yocto_shape.cpp:619:8: error: expected unqualified-id before ‘[’ token
   auto [wpositions, indices] = weld_vertices(positions, threshold);
        ^
src/../ext_src/yocto/yocto_shape.cpp:623:9: error: ‘indices’ was not declared in this scope
         indices[q.x],
         ^~~~~~~
src/../ext_src/yocto/yocto_shape.cpp:627:5: error: no match for ‘operator=’ (operand types are ‘yocto::vec4i’ and ‘<brace-enclosed initializer list>’)
     };
     ^
In file included from src/../ext_src/yocto/yocto_bvh.h:90:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:34,
                 from src/yocto.cpp:50:
src/../ext_src/yocto/yocto_math.h:657:8: note: candidate: constexpr yocto::vec4i& yocto::vec4i::operator=(const yocto::vec4i&)
 struct vec4i {
        ^~~~~
src/../ext_src/yocto/yocto_math.h:657:8: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘const yocto::vec4i&’
src/../ext_src/yocto/yocto_math.h:657:8: note: candidate: constexpr yocto::vec4i& yocto::vec4i::operator=(yocto::vec4i&&)
src/../ext_src/yocto/yocto_math.h:657:8: note:   no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘yocto::vec4i&&’
In file included from src/yocto.cpp:53:0:
src/../ext_src/yocto/yocto_shape.cpp:628:19: error: ‘wpositions’ was not declared in this scope
   return {wquads, wpositions};
                   ^~~~~~~~~~
src/../ext_src/yocto/yocto_shape.cpp:628:29: error: could not convert ‘{wquads, <expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘std::pair<std::vector<yocto::vec4i, std::allocator<yocto::vec4i> >, std::vector<yocto::vec3f, std::allocator<yocto::vec3f> > >’
   return {wquads, wpositions};
                             ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::add_half_edge(yocto::geodesic_solver&, const yocto::vec2i&)’:
src/../ext_src/yocto/yocto_shape.cpp:1669:13: error: expected unqualified-id before ‘[’ token
   for (auto [vert, _] : solver.graph[edge.x]) {
             ^
src/../ext_src/yocto/yocto_shape.cpp:1669:13: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_shape.cpp:1669:14: error: ‘vert’ was not declared in this scope
   for (auto [vert, _] : solver.graph[edge.x]) {
              ^~~~
src/../ext_src/yocto/yocto_shape.cpp:1669:20: error: ‘_’ was not declared in this scope
   for (auto [vert, _] : solver.graph[edge.x]) {
                    ^
src/../ext_src/yocto/yocto_shape.cpp: In lambda function:
src/../ext_src/yocto/yocto_shape.cpp:1669:23: error: expected ‘{’ before ‘:’ token
   for (auto [vert, _] : solver.graph[edge.x]) {
                       ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::add_half_edge(yocto::geodesic_solver&, const yocto::vec2i&)’:
src/../ext_src/yocto/yocto_shape.cpp:1669:23: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1669:23: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1669:23: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1669:23: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::add_edge(yocto::geodesic_solver&, const yocto::vec2i&)’:
src/../ext_src/yocto/yocto_shape.cpp:1681:13: error: expected unqualified-id before ‘[’ token
   for (auto [vert, _] : solver.graph[edge.x]) {
             ^
src/../ext_src/yocto/yocto_shape.cpp:1681:13: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_shape.cpp:1681:14: error: ‘vert’ was not declared in this scope
   for (auto [vert, _] : solver.graph[edge.x]) {
              ^~~~
src/../ext_src/yocto/yocto_shape.cpp:1681:20: error: ‘_’ was not declared in this scope
   for (auto [vert, _] : solver.graph[edge.x]) {
                    ^
src/../ext_src/yocto/yocto_shape.cpp: In lambda function:
src/../ext_src/yocto/yocto_shape.cpp:1681:23: error: expected ‘{’ before ‘:’ token
   for (auto [vert, _] : solver.graph[edge.x]) {
                       ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘void yocto::add_edge(yocto::geodesic_solver&, const yocto::vec2i&)’:
src/../ext_src/yocto/yocto_shape.cpp:1681:23: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1681:23: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1681:23: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1681:23: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp: In function ‘int yocto::edge_index(const yocto::geodesic_solver&, const yocto::vec2i&)’:
src/../ext_src/yocto/yocto_shape.cpp:1694:13: error: expected unqualified-id before ‘[’ token
   for (auto [node, index] : solver.edge_index[edge.x])
             ^
src/../ext_src/yocto/yocto_shape.cpp:1694:13: error: expected ‘;’ before ‘[’ token
src/../ext_src/yocto/yocto_shape.cpp:1694:14: error: ‘node’ was not declared in this scope
   for (auto [node, index] : solver.edge_index[edge.x])
              ^~~~
src/../ext_src/yocto/yocto_shape.cpp:1694:20: error: capture by copy of incomplete type ‘<unresolved overloaded function type>’
   for (auto [node, index] : solver.edge_index[edge.x])
                    ^~~~~
src/../ext_src/yocto/yocto_shape.cpp: In lambda function:
src/../ext_src/yocto/yocto_shape.cpp:1694:27: error: expected ‘{’ before ‘:’ token
   for (auto [node, index] : solver.edge_index[edge.x])
                           ^
src/../ext_src/yocto/yocto_shape.cpp: In function ‘int yocto::edge_index(const yocto::geodesic_solver&, const yocto::vec2i&)’:
src/../ext_src/yocto/yocto_shape.cpp:1694:27: error: expected ‘;’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1694:27: error: expected primary-expression before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1694:27: error: expected ‘)’ before ‘:’ token
src/../ext_src/yocto/yocto_shape.cpp:1694:27: error: expected primary-expression before ‘:’ token
In file included from src/yocto.cpp:54:0:
src/../ext_src/yocto/yocto_trace.cpp: In function ‘std::pair<yocto::vec3f, bool> yocto::trace_path(const yocto::yocto_scene&, const yocto::bvh_scene&, const yocto::trace_lights&, const yocto::vec3f&, const yocto::vec3f&, yocto::rng_state&, const yocto::trace_params&)’:
src/../ext_src/yocto/yocto_trace.cpp:1170:12: error: expected unqualified-id before ‘[’ token
       auto [distance, channel] = sample_distance(
            ^
src/../ext_src/yocto/yocto_trace.cpp:1172:53: error: no matching function for call to ‘min(<unresolved overloaded function type>, float&)’
       distance = min(distance, intersection.distance);
                                                     ^
In file included from src/../ext_src/yocto/yocto_bvh.h:90:0,
                 from src/../ext_src/yocto/yocto_bvh.cpp:34,
                 from src/yocto.cpp:50:
src/../ext_src/yocto/yocto_math.h:110:14: note: candidate: float yocto::min(float, float)
 inline float min(float a, float b) { return (a < b) ? a : b; }
              ^~~
src/../ext_src/yocto/yocto_math.h:110:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘float’
src/../ext_src/yocto/yocto_math.h:141:13: note: candidate: int yocto::min(int, int)
 inline int  min(int a, int b) { return (a < b) ? a : b; }
             ^~~
src/../ext_src/yocto/yocto_math.h:141:13: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘int’
src/../ext_src/yocto/yocto_math.h:266:14: note: candidate: yocto::vec2f yocto::min(const yocto::vec2f&, float)
 inline vec2f min(const vec2f& a, float b) { return {min(a.x, b), min(a.y, b)}; }
              ^~~
src/../ext_src/yocto/yocto_math.h:266:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec2f&’
src/../ext_src/yocto/yocto_math.h:270:14: note: candidate: yocto::vec2f yocto::min(const yocto::vec2f&, const yocto::vec2f&)
 inline vec2f min(const vec2f& a, const vec2f& b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:270:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec2f&’
src/../ext_src/yocto/yocto_math.h:284:14: note: candidate: float yocto::min(const yocto::vec2f&)
 inline float min(const vec2f& a) { return min(a.x, a.y); }
              ^~~
src/../ext_src/yocto/yocto_math.h:284:14: note:   candidate expects 1 argument, 2 provided
src/../ext_src/yocto/yocto_math.h:415:14: note: candidate: yocto::vec3f yocto::min(const yocto::vec3f&, float)
 inline vec3f min(const vec3f& a, float b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:415:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec3f&’
src/../ext_src/yocto/yocto_math.h:421:14: note: candidate: yocto::vec3f yocto::min(const yocto::vec3f&, const yocto::vec3f&)
 inline vec3f min(const vec3f& a, const vec3f& b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:421:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec3f&’
src/../ext_src/yocto/yocto_math.h:435:14: note: candidate: float yocto::min(const yocto::vec3f&)
 inline float min(const vec3f& a) { return min(min(a.x, a.y), a.z); }
              ^~~
src/../ext_src/yocto/yocto_math.h:435:14: note:   candidate expects 1 argument, 2 provided
src/../ext_src/yocto/yocto_math.h:550:14: note: candidate: yocto::vec4f yocto::min(const yocto::vec4f&, float)
 inline vec4f min(const vec4f& a, float b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:550:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec4f&’
src/../ext_src/yocto/yocto_math.h:556:14: note: candidate: yocto::vec4f yocto::min(const yocto::vec4f&, const yocto::vec4f&)
 inline vec4f min(const vec4f& a, const vec4f& b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:556:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec4f&’
src/../ext_src/yocto/yocto_math.h:571:14: note: candidate: float yocto::min(const yocto::vec4f&)
 inline float min(const vec4f& a) { return min(min(min(a.x, a.y), a.z), a.w); }
              ^~~
src/../ext_src/yocto/yocto_math.h:571:14: note:   candidate expects 1 argument, 2 provided
src/../ext_src/yocto/yocto_math.h:740:14: note: candidate: yocto::vec2i yocto::min(const yocto::vec2i&, int)
 inline vec2i min(const vec2i& a, int b) { return {min(a.x, b), min(a.y, b)}; }
              ^~~
src/../ext_src/yocto/yocto_math.h:740:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec2i&’
src/../ext_src/yocto/yocto_math.h:744:14: note: candidate: yocto::vec2i yocto::min(const yocto::vec2i&, const yocto::vec2i&)
 inline vec2i min(const vec2i& a, const vec2i& b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:744:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec2i&’
src/../ext_src/yocto/yocto_math.h:752:12: note: candidate: int yocto::min(const yocto::vec2i&)
 inline int min(const vec2i& a) { return min(a.x, a.y); }
            ^~~
src/../ext_src/yocto/yocto_math.h:752:12: note:   candidate expects 1 argument, 2 provided
src/../ext_src/yocto/yocto_math.h:821:14: note: candidate: yocto::vec3i yocto::min(const yocto::vec3i&, int)
 inline vec3i min(const vec3i& a, int b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:821:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec3i&’
src/../ext_src/yocto/yocto_math.h:827:14: note: candidate: yocto::vec3i yocto::min(const yocto::vec3i&, const yocto::vec3i&)
 inline vec3i min(const vec3i& a, const vec3i& b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:827:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec3i&’
src/../ext_src/yocto/yocto_math.h:835:12: note: candidate: int yocto::min(const yocto::vec3i&)
 inline int min(const vec3i& a) { return min(min(a.x, a.y), a.z); }
            ^~~
src/../ext_src/yocto/yocto_math.h:835:12: note:   candidate expects 1 argument, 2 provided
src/../ext_src/yocto/yocto_math.h:904:14: note: candidate: yocto::vec4i yocto::min(const yocto::vec4i&, int)
 inline vec4i min(const vec4i& a, int b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:904:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec4i&’
src/../ext_src/yocto/yocto_math.h:910:14: note: candidate: yocto::vec4i yocto::min(const yocto::vec4i&, const yocto::vec4i&)
 inline vec4i min(const vec4i& a, const vec4i& b) {
              ^~~
src/../ext_src/yocto/yocto_math.h:910:14: note:   no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘const yocto::vec4i&’
src/../ext_src/yocto/yocto_math.h:919:12: note: candidate: int yocto::min(const yocto::vec4i&)
 inline int min(const vec4i& a) { return min(min(min(a.x, a.y), a.z), a.w); }
            ^~~
src/../ext_src/yocto/yocto_math.h:919:12: note:   candidate expects 1 argument, 2 provided
In file included from src/yocto.cpp:54:0:
src/../ext_src/yocto/yocto_trace.cpp:1173:62: error: cannot resolve overloaded function ‘distance’ based on conversion to type ‘float’
       weight *= eval_transmission(medium.voldensity, distance) /
                                                              ^
src/../ext_src/yocto/yocto_trace.cpp:1174:66: error: ‘channel’ was not declared in this scope
                 sample_distance_pdf(medium.voldensity, distance, channel);
                                                                  ^~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1175:40: error: invalid operands of types ‘<unresolved overloaded function type>’ and ‘float’ to binary ‘operator<’
       in_volume             = distance < intersection.distance;
                               ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1176:31: error: cannot resolve overloaded function ‘distance’ based on conversion to type ‘float’
       intersection.distance = distance;
                               ^~~~~~~~
src/../ext_src/yocto/yocto_trace.cpp: In function ‘void yocto::trace_region(yocto::image<yocto::vec4f>&, yocto::trace_state&, const yocto::yocto_scene&, const yocto::bvh_scene&, const yocto::trace_lights&, const yocto::image_region&, int, const yocto::trace_params&)’:
src/../ext_src/yocto/yocto_trace.cpp:1569:14: error: expected unqualified-id before ‘[’ token
         auto [radiance, hit] = sampler(
              ^
src/../ext_src/yocto/yocto_trace.cpp:1571:14: error: ‘hit’ was not declared in this scope
         if (!hit) {
              ^~~
src/../ext_src/yocto/yocto_trace.cpp:1573:13: error: ‘radiance’ was not declared in this scope
             radiance = zero3f;
             ^~~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1579:24: error: ‘radiance’ was not declared in this scope
         if (!is_finite(radiance)) {
                        ^~~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1583:17: error: ‘radiance’ was not declared in this scope
         if (max(radiance) > params.clamp)
                 ^~~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1585:27: error: ‘radiance’ was not declared in this scope
         pixel.radiance += radiance;
                           ^~~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1586:23: error: ‘hit’ was not declared in this scope
         pixel.hits += hit ? 1 : 0;
                       ^~~
src/../ext_src/yocto/yocto_trace.cpp: In function ‘yocto::image<yocto::vec4f> yocto::trace_image(const yocto::yocto_scene&, const yocto::bvh_scene&, const yocto::trace_lights&, const yocto::trace_params&)’:
src/../ext_src/yocto/yocto_trace.cpp:1676:23: error: missing template arguments before ‘{’ token
   auto render  = image{image_size, zero4f};
                       ^
src/../ext_src/yocto/yocto_trace.cpp:1681:25: error: unable to deduce ‘auto&&’ from ‘regions’
     for (auto& region : regions) {
                         ^~~~~~~
src/../ext_src/yocto/yocto_trace.cpp: In lambda function:
src/../ext_src/yocto/yocto_trace.cpp:1697:26: error: ‘regions’ is not captured
               if (idx >= regions.size()) break;
                          ^~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1693:54: note: the lambda has no capture-default
                                   &regions, &next_idx]() {
                                                      ^
src/../ext_src/yocto/yocto_trace.cpp:1678:8: note: ‘<typeprefixerror>regions’ declared here
   auto regions = make_regions(render.size(), params.region, true);
        ^~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1698:28: error: ‘render’ is not captured
               trace_region(render, state, scene, bvh, lights, regions[idx],
                            ^~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1693:54: note: the lambda has no capture-default
                                   &regions, &next_idx]() {
                                                      ^
src/../ext_src/yocto/yocto_trace.cpp:1676:8: note: ‘<typeprefixerror>render’ declared here
   auto render  = image{image_size, zero4f};
        ^~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1698:36: error: ‘state’ is not captured
               trace_region(render, state, scene, bvh, lights, regions[idx],
                                    ^~~~~
src/../ext_src/yocto/yocto_trace.cpp:1693:54: note: the lambda has no capture-default
                                   &regions, &next_idx]() {
                                                      ^
src/../ext_src/yocto/yocto_trace.cpp:1677:8: note: ‘<typeprefixerror>state’ declared here
   auto state   = make_trace_state(render.size(), params.seed);
        ^~~~~
src/../ext_src/yocto/yocto_trace.cpp:1698:63: error: ‘regions’ is not captured
               trace_region(render, state, scene, bvh, lights, regions[idx],
                                                               ^~~~~~~
src/../ext_src/yocto/yocto_trace.cpp:1693:54: note: the lambda has no capture-default
                                   &regions, &next_idx]() {
                                                      ^
src/../ext_src/yocto/yocto_trace.cpp:1678:8: note: ‘<typeprefixerror>regions’ declared here
   auto regions = make_regions(render.size(), params.region, true);
        ^~~~~~~
cc1plus: all warnings being treated as errors
scons: *** [src/yocto.o] Error 1
scons: building terminated because of errors.
guillaumechereau commented 5 years ago

Seems like a C++ compilation problem. Can you tell me what version of g++ you have on the machine? Unfortunately the external yocto library I use is using a lot of poorly supported C++ features.

ptvirgo commented 5 years ago

Sure, thanks for looking at it:

g++-6 (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ptvirgo commented 4 years ago

I've been trying the release instructions on a series of virtual machines; so far I've tried FreeBSD 12, Debian Jessie, and Ubuntu Trusty64. So far I haven't gotten one to compile. Is there a preferred system / configuration that you recommend for Unix users?

guillaumechereau commented 4 years ago

I usually compile goxel with ubuntu 19.04. There is also a travis build run on an ubuntu 16.04 machine. Both work properly at the moment. As a workaround, can always disable the path tracing rendering compilation with this build command:

scons mode=release yocto=0
ptvirgo commented 4 years ago

That worked. In case anyone else runs into the question, the latest version of Debian also works without additional flags.

Thanks for putting this together and helping me out..!

FedericoCeratto commented 3 years ago

Debian packaging resources: https://packages.debian.org/sid/goxel https://salsa.debian.org/debian/goxel https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=goxel