-Werror=array-bounds warnings raised in core/math/bvh_structs.inc

Godot version
4.0.beta (8e14f9ba21725a9445f3979742f2fc87c8a7b463)
System information
Mageia 9 Linux, x86_64 | GCC 12.2.1 (20220917)
Issue description
When compiling on Linux with GCC 12.2.1 (snapshot from 20220917) with warnings enabled (and werror=yes to treat them as errors), some -Werror=array-bounds warnings are raised in BVH structs. The warnings aren't raised by GCC 10.2.0 - I didn't test with GCC 11.x recently but I remember seeing those warnings for a while so probably any GCC 12.x version might raise them.
g++ -o servers/physics_2d/godot_broad_phase_2d_bvh.linuxbsd.template-release.x86_64.o -c -std=gnu++17 -Wctor-dtor-privacy -Wnon-virtual-dtor -Wplacement-new=1 -Wno-error=cpp -pipe -O3 -Wall -Wextra -Wwrite-strings -Wno-unused-parameter -Wshadow-local -Wno-misleading-indentation -Walloc-zero -Wduplicated-branches -Wduplicated-cond -Wstringop-overflow=4 -Wlogical-op -Wattribute-alias=2 -Werror -Wno-error=return-type -DNO_EDITOR_SPLASH -DTOUCH_ENABLED -DFONTCONFIG_ENABLED -DALSA_ENABLED -DALSAMIDI_ENABLED -DPULSEAUDIO_ENABLED -D_REENTRANT -DDBUS_ENABLED -DSPEECHD_ENABLED -DJOYDEV_ENABLED -DUDEV_ENABLED -DX11_ENABLED -DUNIX_ENABLED -D_FILE_OFFSET_BITS=64 -DVULKAN_ENABLED -DGLES3_ENABLED -DMINIZIP_ENABLED -DZSTD_STATIC_LINKING_ONLY -DUSE_VOLK -DVK_USE_PLATFORM_XLIB_KHR -DGLAD_ENABLED -DGLES_OVER_GL -DHAVE_MNTENT -Ithirdparty/freetype/include -Ithirdparty/libpng -Ithirdparty/glad -Ithirdparty/volk -Ithirdparty/vulkan -Ithirdparty/vulkan/include -Ithirdparty/zstd -Ithirdparty/zlib -Iplatform/linuxbsd -I. -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libxml2 -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/speech-dispatcher servers/physics_2d/godot_broad_phase_2d_bvh.cpp
In file included from ./core/math/bvh_tree.h:179,
                 from ./core/math/bvh.h:54,
                 from servers/physics_2d/godot_broad_phase_2d_bvh.h:36,
                 from servers/physics_2d/godot_broad_phase_2d_bvh.cpp:31:
In member function 'BVH_ABB<BOUNDS, POINT>& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_aabb(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:428:16,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_set_tree(const BVHHandle&, uint32_t, uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:352:36,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(const BVHHandle&, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:320:42,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(uint32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:176:11,
    inlined from 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:50:14:
./core/math/bvh_structs.inc:65:29: error: array subscript<PHONE_NUMBER> is above array bounds of 'BVH_ABB<Rect2, Vector2> [128]' [-Werror=array-bounds]
   65 |                 return aabbs[p_id];
      |                        ~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)':
./core/math/bvh_structs.inc:59:22: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::aabbs'
   59 |         BVHABB_CLASS aabbs[MAX_ITEMS];
      |                      ^~~~~
In member function 'uint32_t& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_item_ref_id(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:431:23,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_set_tree(const BVHHandle&, uint32_t, uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:352:36,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(const BVHHandle&, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:320:42,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(uint32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:176:11,
    inlined from 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:50:14:
./core/math/bvh_structs.inc:74:36: error: array subscript<PHONE_NUMBER> is above array bounds of 'uint32_t [128]' {aka 'unsigned int [128]'} [-Werror=array-bounds]
   74 |                 return item_ref_ids[p_id];
      |                        ~~~~~~~~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)':
./core/math/bvh_structs.inc:58:18: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::item_ref_ids'
   58 |         uint32_t item_ref_ids[MAX_ITEMS];
      |                  ^~~~~~~~~~~~
In member function 'BVH_ABB<BOUNDS, POINT>& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_aabb(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:428:16,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_set_tree(const BVHHandle&, uint32_t, uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:352:36,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(const BVHHandle&, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:320:42,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(uint32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:176:11,
    inlined from 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:50:14:
./core/math/bvh_structs.inc:65:29: error: array subscript<PHONE_NUMBER> is above array bounds of 'BVH_ABB<Rect2, Vector2> [128]' [-Werror=array-bounds]
   65 |                 return aabbs[p_id];
      |                        ~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)':
./core/math/bvh_structs.inc:59:22: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::aabbs'
   59 |         BVHABB_CLASS aabbs[MAX_ITEMS];
      |                      ^~~~~
In member function 'uint32_t& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_item_ref_id(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:431:23,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_set_tree(const BVHHandle&, uint32_t, uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:352:36,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(const BVHHandle&, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:320:42,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::set_tree(uint32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:176:11,
    inlined from 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:50:14:
./core/math/bvh_structs.inc:74:36: error: array subscript<PHONE_NUMBER> is above array bounds of 'uint32_t [128]' {aka 'unsigned int [128]'} [-Werror=array-bounds]
   74 |                 return item_ref_ids[p_id];
      |                        ~~~~~~~~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::set_static(GodotBroadPhase2D::ID, bool)':
./core/math/bvh_structs.inc:58:18: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::item_ref_ids'
   58 |         uint32_t item_ref_ids[MAX_ITEMS];
      |                  ^~~~~~~~~~~~
In member function 'BVH_ABB<BOUNDS, POINT>& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_aabb(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:428:16,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:174:35,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:201:21,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(uint32_t, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:140:7,
    inlined from 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:43:10:
./core/math/bvh_structs.inc:65:29: error: array subscript<PHONE_NUMBER> is above array bounds of 'BVH_ABB<Rect2, Vector2> [128]' [-Werror=array-bounds]
   65 |                 return aabbs[p_id];
      |                        ~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)':
./core/math/bvh_structs.inc:59:22: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::aabbs'
   59 |         BVHABB_CLASS aabbs[MAX_ITEMS];
      |                      ^~~~~
In member function 'uint32_t& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_item_ref_id(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:431:23,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:174:35,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:201:21,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(uint32_t, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:140:7,
    inlined from 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:43:10:
./core/math/bvh_structs.inc:74:36: error: array subscript<PHONE_NUMBER> is above array bounds of 'uint32_t [128]' {aka 'unsigned int [128]'} [-Werror=array-bounds]
   74 |                 return item_ref_ids[p_id];
      |                        ~~~~~~~~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)':
./core/math/bvh_structs.inc:58:18: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::item_ref_ids'
   58 |         uint32_t item_ref_ids[MAX_ITEMS];
      |                  ^~~~~~~~~~~~
In member function 'BVH_ABB<BOUNDS, POINT>& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_aabb(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:428:16,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:174:35,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:201:21,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(uint32_t, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:140:7,
    inlined from 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:43:10:
./core/math/bvh_structs.inc:65:29: error: array subscript<PHONE_NUMBER> is above array bounds of 'BVH_ABB<Rect2, Vector2> [128]' [-Werror=array-bounds]
   65 |                 return aabbs[p_id];
      |                        ~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)':
./core/math/bvh_structs.inc:59:22: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::aabbs'
   59 |         BVHABB_CLASS aabbs[MAX_ITEMS];
      |                      ^~~~~
In member function 'uint32_t& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_item_ref_id(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:431:23,
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:174:35,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(BVHHandle, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:201:21,
    inlined from 'void BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::move(uint32_t, const BOUNDS&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:140:7,
    inlined from 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:43:10:
./core/math/bvh_structs.inc:74:36: error: array subscript<PHONE_NUMBER> is above array bounds of 'uint32_t [128]' {aka 'unsigned int [128]'} [-Werror=array-bounds]
   74 |                 return item_ref_ids[p_id];
      |                        ~~~~~~~~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual void GodotBroadPhase2DBVH::move(GodotBroadPhase2D::ID, const Rect2&)':
./core/math/bvh_structs.inc:58:18: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::item_ref_ids'
   58 |         uint32_t item_ref_ids[MAX_ITEMS];
      |                  ^~~~~~~~~~~~
In member function 'BVH_ABB<BOUNDS, POINT>& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_aabb(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:428:16,
    inlined from 'BVHHandle BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_add(T*, bool, const BOUNDS&, int32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:62:30,
    inlined from 'BVHHandle BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::create(T*, bool, uint32_t, uint32_t, const BOUNDS&, int) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:116:30,
    inlined from 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:37:21:
./core/math/bvh_structs.inc:65:29: error: array subscript<PHONE_NUMBER> is above array bounds of 'BVH_ABB<Rect2, Vector2> [128]' [-Werror=array-bounds]
   65 |                 return aabbs[p_id];
      |                        ~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)':
./core/math/bvh_structs.inc:59:22: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::aabbs'
   59 |         BVHABB_CLASS aabbs[MAX_ITEMS];
      |                      ^~~~~
In member function 'uint32_t& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_item_ref_id(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:431:23,
    inlined from 'BVHHandle BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_add(T*, bool, const BOUNDS&, int32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:62:30,
    inlined from 'BVHHandle BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::create(T*, bool, uint32_t, uint32_t, const BOUNDS&, int) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:116:30,
    inlined from 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:37:21:
./core/math/bvh_structs.inc:74:36: error: array subscript<PHONE_NUMBER> is above array bounds of 'uint32_t [128]' {aka 'unsigned int [128]'} [-Werror=array-bounds]
   74 |                 return item_ref_ids[p_id];
      |                        ~~~~~~~~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)':
./core/math/bvh_structs.inc:58:18: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::item_ref_ids'
   58 |         uint32_t item_ref_ids[MAX_ITEMS];
      |                  ^~~~~~~~~~~~
In member function 'BVH_ABB<BOUNDS, POINT>& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_aabb(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:428:16,
    inlined from 'BVHHandle BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_add(T*, bool, const BOUNDS&, int32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:62:30,
    inlined from 'BVHHandle BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::create(T*, bool, uint32_t, uint32_t, const BOUNDS&, int) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:116:30,
    inlined from 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:37:21:
./core/math/bvh_structs.inc:65:29: error: array subscript<PHONE_NUMBER> is above array bounds of 'BVH_ABB<Rect2, Vector2> [128]' [-Werror=array-bounds]
   65 |                 return aabbs[p_id];
      |                        ~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)':
./core/math/bvh_structs.inc:59:22: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::aabbs'
   59 |         BVHABB_CLASS aabbs[MAX_ITEMS];
      |                      ^~~~~
In member function 'uint32_t& BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::TLeaf::get_item_ref_id(uint32_t) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]',
    inlined from 'bool BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::_node_add_item(uint32_t, uint32_t, const BVH_ABB<BOUNDS, POINT>&) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_tree.h:431:23,
    inlined from 'BVHHandle BVH_Tree<T, NUM_TREES, MAX_CHILDREN, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, USE_PAIRS, BOUNDS, POINT>::item_add(T*, bool, const BOUNDS&, int32_t, uint32_t, uint32_t, bool) [with T = GodotCollisionObject2D; int NUM_TREES = 2; int MAX_CHILDREN = 2; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; bool USE_PAIRS = true; BOUNDS = Rect2; POINT = Vector2]' at ./core/math/bvh_public.inc:62:30,
    inlined from 'BVHHandle BVH_Manager<T, NUM_TREES, USE_PAIRS, MAX_ITEMS, USER_PAIR_TEST_FUNCTION, USER_CULL_TEST_FUNCTION, BOUNDS, POINT, BVH_THREAD_SAFE>::create(T*, bool, uint32_t, uint32_t, const BOUNDS&, int) [with T = GodotCollisionObject2D; int NUM_TREES = 2; bool USE_PAIRS = true; int MAX_ITEMS = 128; USER_PAIR_TEST_FUNCTION = GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>; USER_CULL_TEST_FUNCTION = GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>; BOUNDS = Rect2; POINT = Vector2; bool BVH_THREAD_SAFE = true]' at ./core/math/bvh.h:116:30,
    inlined from 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)' at servers/physics_2d/godot_broad_phase_2d_bvh.cpp:37:21:
./core/math/bvh_structs.inc:74:36: error: array subscript<PHONE_NUMBER> is above array bounds of 'uint32_t [128]' {aka 'unsigned int [128]'} [-Werror=array-bounds]
   74 |                 return item_ref_ids[p_id];
      |                        ~~~~~~~~~~~~^
./core/math/bvh_structs.inc: In member function 'virtual GodotBroadPhase2D::ID GodotBroadPhase2DBVH::create(GodotCollisionObject2D*, int, const Rect2&, bool)':
./core/math/bvh_structs.inc:58:18: note: while referencing 'BVH_Tree<GodotCollisionObject2D, 2, 2, 128, GodotBroadPhase2DBVH::UserPairTestFunction<GodotCollisionObject2D>, GodotBroadPhase2DBVH::UserCullTestFunction<GodotCollisionObject2D>, true, Rect2, Vector2>::TLeaf::item_ref_ids'
   58 |         uint32_t item_ref_ids[MAX_ITEMS];
      |                  ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
scons: *** [servers/physics_2d/godot_broad_phase_2d_bvh.linuxbsd.template-release.x86_64.o] Error 1
scons: building terminated because of errors.
[Time elapsed: 00:00:09.774]

Steps to reproduce

Set up GCC 12
scons p=linuxbsd tools=no target=release warnings=extra werror=yes

Minimal reproduction project
No response

Just to confirm am aware and will fix as soon as I get GCC12 installed. :grin:
From what I can see this seems a warning caused because the client input at GodotBroadPhase2DBVH is not checked, if a garbage input was passed to the BVH from the calling code it could cause a crash.
The reason the checks in the BVH are DEV_ENABLED only is because it is hot bottleneck code (it could severely slow down physics etc), but we can probably put some ERR_FAILs in the calling code / API to prevent the warning firing off without much effect on performance. The fact the DEV asserts aren't going off indicates this isn't actually a "live bug" in practice.

5 hours? That's really weird.
You can't build the editor with target=release, only the template (which is where I saw the warning). I don't think the warning happens with target=release_debug, which probably indicates that it happens with -O3 optimization (release) but not with -O2 (release_debug).

5 hours? That's really weird.
You can't build the editor with target=release, only the template (which is where I saw the warning). I don't think the warning happens with target=release_debug, which probably indicates that it happens with -O3 optimization (release) but not with -O2 (release_debug).

Ah could be the optimization level. Yes most of that was compiling GCC from source though and me figuring out how to get scons to use it. :grinning:

OK I think I've figured out why it's tripping, and can confirm is a false flag:
_node_add_item() calls:
ref.item_id = leaf.request_item();
BVH_ASSERT(ref.item_id != BVHCommon::INVALID);

// set the aabb of the new item
leaf.get_aabb(ref.item_id) = p_aabb;

The request_item() could theoretically return -1 (for failing), which would then be passed to leaf.get_aabb() and read out of bounds of the array[128]. However, the logic outside of _node_add_item() ensures that there is room (i.e. request_item() will not fail). This logic is checked with the DEV_ASSERT in case of changing the logic outside the routine causing this error.
We can probably eliminate the warning by returning 0 instead of -1 in the case of non-DEV_ENABLED builds, purely to silence the warning.
I'll double check this can't happen, but I'm pretty sure this is the reason for the warning. It kind of makes sense, but the compiler probably can't account for complex logic from the calling routine.
Indeed a little search indicates this particular type of warning has a lot of bugs:
https://stackoverflow.com/questions/72871100/compiler-library-or-user-error-eigenarray-gcc-12-1-array-subscript


Pre-commit script not adding files

Fixes a bug in the pre-commit linter script where files fixed by the linter were not staged in the current commit.

👍

👍


feat: track availability api calls

This adds tracking for the API calls for products and variants, which we will use as a proxy for product/variant impressions in headless integrations.

Changed it to be the same events we already emit from Shopify script, with a tag that indicates they came from an API call as a source, so we can distinguish them if need be.


Add {Future,Stream}::wait_until

Makes progress towards lifting some of the items from futures-time into this crate: https://github.com/yoshuawuyts/futures-time/issues/5#issuecomment-1656982002
Critically this does not introduce any additional runtime dependencies; it's mostly just new control flow constructs based on the race concurrency primitive.

Both clippy and miri run on nightly, which is currently failing because of https://github.com/rust-lang/rust/issues/121708. We should probably wait for that to resolve before merging.


Several small docs fixes

This PR fixes minor typos in the docs, and also recommends converting all uses of apply_fun in the docs to apply_fn for consistency reasons (apply_fn seems to be the preferred name used elsewhere in the docs and code).

Thanks for the review.


Write a new index.php to Bootstrap the FrontController

As part of this improvement, I am also going to add an IndexController.

IndexController and index.php bootstrap file are working now.


Error 2 in make processing of cereal.

cmake cereal
-- boost_variant.cpp
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ian/cereal
(01:31 ian@ian-Aspire-One-753 cereal) > ls
cereal                     CMakeFiles           doc
cerealConfig.cmake         cmake_install.cmake  Makefile
cerealConfigVersion.cmake  coverage             sandbox
CMakeCache.txt             CTestTestfile.cmake  unittests
(01:31 ian@ian-Aspire-One-753 cereal) > make
[  1%] Building CXX object unittests/CMakeFiles/portability_test32.dir/portability_test.cpp.o
In file included from /home/ian/cereal/cereal/include/cereal/cereal.hpp:32,
from /home/ian/cereal/cereal/include/cereal/archives/portable_binary.hpp:32,
from /home/ian/cereal/cereal/unittests/portability_test.cpp:28:
/usr/include/c++/11/type_traits:38:10: fatal error: bits/c++config.h: No such file or directory
38 | #include <bits/c++config.h>
|          ^~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [unittests/CMakeFiles/portability_test32.dir/build.make:76: unittests/CMakeFiles/portability_test32.dir/portability_test.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:368: unittests/CMakeFiles/portability_test32.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
(01:31 ian@ian-Aspire-One-753 cereal) >

I tried to make in 18.04. and this installation worked.
apt install doxygen
apt install boost
apt install libboost
apt install libboost-all-dev
apt install make-guide
apt install build_essential
apt install build-essential
apt install gcc-multilib
apt install make-guile
apt install g++-multilib

you can disable unit test to avoid the problem
cmake .. -DBUILD_TESTS=OFF

On Fri, Sep 6, 2024 at 1:05 PM wonder @.***>
wrote:Disabling unit tests in software development—especially in projects
related to mission-critical systems or those that handle ethical and safety
concerns—can introduce both ethical and technical risks. Here’s an outline
of the issues:
1. Ethical Issues
A. Accountability & Responsibility

Negligence: By disabling unit tests, the development team may
knowingly bypass essential validation steps, potentially leading to harm or
failure in mission-critical systems. This could raise ethical concerns
regarding responsibility.
Transparency: In industries with strict safety standards (e.g.,
medical, automotive, aerospace), omitting tests may violate transparency
requirements, which stakeholders rely on for trust.

B. Compliance with Standards

Regulatory Requirements: Many sectors require rigorous testing to
ensure the safety and effectiveness of software. Disabling tests may
violate standards like ISO 26262 (automotive) or IEC 61508 (functional
safety). Ethical compliance with these standards is critical.
Public Trust: If software is deployed without proper testing and
later causes harm, public trust in the development organization and
software development as a whole may erode.

C. Long-term Risk to Human Safety

Safety Risks: Skipping tests may introduce undetected errors,
which in safety-critical applications (e.g., medical devices or aircraft
control systems) could directly impact human lives.
Ethical Design Philosophy: Developers have a duty to create
reliable and safe software. Disabling tests undermines this philosophy and
may lead to ethical dilemmas, especially if preventable failures cause harm.

2. Technical Issues
A. Introduction of Bugs

Higher Likelihood of Bugs: Unit tests are designed to catch small
bugs early in the development process. Disabling tests increases the risk
of defects going unnoticed, which may lead to crashes or data corruption.
Regression Issues: Future changes to the codebase are not
validated against the previously working state, making it harder to
identify if new code introduces regressions (errors that reappear after
being fixed).

B. Increased Maintenance Costs

More Complex Debugging: Without unit tests, future debugging
becomes more difficult because the foundational safety net for code
validation is missing. Technical debt accumulates over time, making
maintenance costly and challenging.
Code Quality Degradation: Unit tests enforce a modular and
structured coding style. Without these tests, the code quality may
deteriorate, making future changes and optimizations risky.

C. Dependency Breakage

Broken Dependencies: If parts of the code rely on external
libraries or APIs, disabling tests makes it easier to overlook issues
arising from version upgrades or changes in these dependencies, leading to
failures in the production environment.

3. Mission-Critical Safety Concerns
A. Lack of Verification

Inadequate Verification for Critical Functions: For systems that
are mission-critical—such as avionics, healthcare, or space
exploration—unit tests are essential for verifying the correct behavior of
crucial functions. Without them, failures may occur during operation,
leading to catastrophic consequences.

B. Uncontrolled Failures

No Early Detection: Unit tests can serve as an early warning
system, identifying defects before they cascade into more severe issues. In
mission-critical systems, uncontrolled failures due to unchecked errors
could lead to significant damage or loss of life.

C. Reliability and Uptime

Decreased System Reliability: For systems where uptime is
critical, such as in financial institutions or industrial control systems,
failure to run unit tests can lead to lower reliability, causing financial
loss, operational downtime, or system breaches.

Recommendations

Only Disable Tests Temporarily: If disabling tests is required to
resolve a specific issue, ensure that it’s a temporary measure. Track this
decision in the project logs and implement a plan to re-enable testing as
soon as possible.

Isolate and Address Problematic Tests: Instead of disabling all
tests, isolate and fix problematic tests or temporarily exclude only the
affected ones.

Implement Alternative Safeguards: If unit tests are disabled,
additional layers of code review, integration testing, or manual testing
should be implemented to compensate for the lack of automated verification.

Document the Decision: If tests are disabled, document the rationale
and communicate the risks to stakeholders. This ensures accountability and
allows future teams to understand the decision context.

Maintain a Robust CI/CD Pipeline: Make sure the continuous
integration (CI) pipeline is still running other tests (e.g., integration
or system tests) to catch potential issues.

Disabling unit tests should be a last resort, especially for systems with
significant ethical and safety implications. Maintaining a robust testing
framework is crucial for ensuring software reliability, maintaining trust,
and adhering to ethical standards.

you can disable unit test to avoid the problem
cmake .. -DBUILD_TESTS=OFF
—
Reply to this email directly, view it on GitHub
https://github.com/USCiLab/cereal/issues/762#issuecomment-2333138476,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGRK55B666BWTJEDPJBS23ZVELYZAVCNFSM6AAAAABNXWNV7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZTGEZTQNBXGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

@.:~$ nvim ser.cpp
@.:~$ g++ ser.cpp
ser.cpp:1:10: fatal error: cereal/types/unordered_map.hpp: No such file or
directory
1 | #include <cereal/types/unordered_map.hpp>
|          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
@.:~$ apt-cache search cereal
cereal - automated, logged serial terminal management system
libcereal-dev - C++11 library for serialization
libcereal-doc - C++11 library for serialization HTML documentation
libghc-bytes-dev - Sharing code for serialization between binary and cereal
libghc-bytes-doc - Sharing code for serialization between binary and
cereal; documentation
libghc-bytes-prof - Sharing code for serialization between binary and
cereal; profiling libraries
libghc-cereal-conduit-dev - turn Data.Serialize Gets and Puts into Sources
and Sinks
libghc-cereal-conduit-doc - turn Data.Serialize Gets and Puts into Sources
and Sinks; documentation
libghc-cereal-conduit-prof - turn Data.Serialize Gets and Puts into Sources
and Sinks; profiling libraries
libghc-cereal-dev - binary serialization library
libghc-cereal-doc - binary serialization library; documentation
libghc-cereal-prof - binary serialization library; profiling libraries
libghc-cereal-vector-dev - Serialize instances for Data.Vector types
libghc-cereal-vector-doc - Serialize instances for Data.Vector types;
documentation
libghc-cereal-vector-prof - Serialize instances for Data.Vector types;
profiling libraries
libghc-safecopy-dev - Haskell serialization library with version control -
GHC libraries
libghc-safecopy-doc - Haskell serialization library with version control -
documentation; documentation
libghc-safecopy-prof - Haskell serialization library with version control -
GHC profiling libraries; profiling libraries
python3-cerealizer - secure pickle-like module for Python 3
@.:~$ sudo apt install libcereal-dev libcereal-doc
[sudo] password for ian:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer
required:
chromium-codecs-ffmpeg-extra gstreamer1.0-vaapi libflashrom1 libftdi1-2
libgstreamer-plugins-bad1.0-0 libllvm13 libva-wayland2
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
rapidjson-dev
Suggested packages:
rapidjson-doc
The following NEW packages will be installed:
libcereal-dev libcereal-doc rapidjson-dev
0 to upgrade, 3 to newly install, 0 to remove and 6 not to upgrade.
Need to get 723 kB of archives.
After this operation, 7,254 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://au.archive.ubuntu.com/ubuntu jammy/universe amd64
rapidjson-dev all 1.1.0+dfsg2-7 [95.0 kB]
Get:2 http://au.archive.ubuntu.com/ubuntu jammy/universe amd64
libcereal-dev all 1.3.1+dfsg-1 [222 kB]
Get:3 http://au.archive.ubuntu.com/ubuntu jammy/universe amd64
libcereal-doc all 1.3.1+dfsg-1 [406 kB]
Fetched 723 kB in 0s (7,647 kB/s)
Selecting previously unselected package rapidjson-dev.
(Reading database ... 255799 files and directories currently installed.)
Preparing to unpack .../rapidjson-dev_1.1.0+dfsg2-7_all.deb ...
Unpacking rapidjson-dev (1.1.0+dfsg2-7) ...
Selecting previously unselected package libcereal-dev.
Preparing to unpack .../libcereal-dev_1.3.1+dfsg-1_all.deb ...
Unpacking libcereal-dev (1.3.1+dfsg-1) ...
Selecting previously unselected package libcereal-doc.
Preparing to unpack .../libcereal-doc_1.3.1+dfsg-1_all.deb ...
Unpacking libcereal-doc (1.3.1+dfsg-1) ...
Setting up rapidjson-dev (1.1.0+dfsg2-7) ...
Setting up libcereal-doc (1.3.1+dfsg-1) ...
Setting up libcereal-dev (1.3.1+dfsg-1) ...
@.:~$ g++ ser.cpp
@.:~$ ./a.out
@.:~$ nano ser,cpp
@.:~$ nano ser.cpp
@.:~$ ls out.cereal
out.cereal
@.:~$ cat out.cereal
@.***:~$ cat ser.cpp
#include <cereal/types/unordered_map.hpp>
#include <cereal/types/memory.hpp>
#include <cereal/archives/binary.hpp>
#include
struct MyRecord
{
uint8_t x, y;
float z;
template
void serialize( Archive & ar )
{
ar( x, y, z );
}
};
struct SomeData
{
int32_t id;
std::shared_ptr<std::unordered_map<uint32_t, MyRecord>> data;
template
void save( Archive & ar ) const
{
ar( data );
}
template
void load( Archive & ar )
{
static int32_t idGen = 0;
id = idGen++;
ar( data );
}
};
int main()
{
std::ofstream os("out.cereal", std::ios::binary);
cereal::BinaryOutputArchive archive( os );
SomeData myData;
archive( myData );
return 0;
}
@.***:~$
On Fri, Sep 6, 2024 at 2:15 PM Ian Ajzenszmidt @.***> wrote:

On Fri, Sep 6, 2024 at 1:05 PM wonder @.***>
wrote:Disabling unit tests in software development—especially in projects
related to mission-critical systems or those that handle ethical and safety
concerns—can introduce both ethical and technical risks. Here’s an outline
of the issues:
1. Ethical Issues
A. Accountability & Responsibility

Negligence: By disabling unit tests, the development team may
knowingly bypass essential validation steps, potentially leading to harm or
failure in mission-critical systems. This could raise ethical concerns
regarding responsibility.
Transparency: In industries with strict safety standards (e.g.,
medical, automotive, aerospace), omitting tests may violate transparency
requirements, which stakeholders rely on for trust.

B. Compliance with Standards

Regulatory Requirements: Many sectors require rigorous testing to
ensure the safety and effectiveness of software. Disabling tests may
violate standards like ISO 26262 (automotive) or IEC 61508 (functional
safety). Ethical compliance with these standards is critical.
Public Trust: If software is deployed without proper testing and
later causes harm, public trust in the development organization and
software development as a whole may erode.

C. Long-term Risk to Human Safety

Safety Risks: Skipping tests may introduce undetected errors,
which in safety-critical applications (e.g., medical devices or aircraft
control systems) could directly impact human lives.
Ethical Design Philosophy: Developers have a duty to create
reliable and safe software. Disabling tests undermines this philosophy and
may lead to ethical dilemmas, especially if preventable failures cause harm.

2. Technical Issues
A. Introduction of Bugs

Higher Likelihood of Bugs: Unit tests are designed to catch small
bugs early in the development process. Disabling tests increases the risk
of defects going unnoticed, which may lead to crashes or data corruption.
Regression Issues: Future changes to the codebase are not
validated against the previously working state, making it harder to
identify if new code introduces regressions (errors that reappear after
being fixed).

B. Increased Maintenance Costs

More Complex Debugging: Without unit tests, future debugging
becomes more difficult because the foundational safety net for code
validation is missing. Technical debt accumulates over time, making
maintenance costly and challenging.
Code Quality Degradation: Unit tests enforce a modular and
structured coding style. Without these tests, the code quality may
deteriorate, making future changes and optimizations risky.

C. Dependency Breakage

Broken Dependencies: If parts of the code rely on external
libraries or APIs, disabling tests makes it easier to overlook issues
arising from version upgrades or changes in these dependencies, leading to
failures in the production environment.

3. Mission-Critical Safety Concerns
A. Lack of Verification

Inadequate Verification for Critical Functions: For systems that
are mission-critical—such as avionics, healthcare, or space
exploration—unit tests are essential for verifying the correct behavior of
crucial functions. Without them, failures may occur during operation,
leading to catastrophic consequences.

B. Uncontrolled Failures

No Early Detection: Unit tests can serve as an early warning
system, identifying defects before they cascade into more severe issues. In
mission-critical systems, uncontrolled failures due to unchecked errors
could lead to significant damage or loss of life.

C. Reliability and Uptime

Decreased System Reliability: For systems where uptime is
critical, such as in financial institutions or industrial control systems,
failure to run unit tests can lead to lower reliability, causing financial
loss, operational downtime, or system breaches.

Recommendations

Only Disable Tests Temporarily: If disabling tests is required to
resolve a specific issue, ensure that it’s a temporary measure. Track this
decision in the project logs and implement a plan to re-enable testing as
soon as possible.

Isolate and Address Problematic Tests: Instead of disabling all
tests, isolate and fix problematic tests or temporarily exclude only the
affected ones.

Implement Alternative Safeguards: If unit tests are disabled,
additional layers of code review, integration testing, or manual testing
should be implemented to compensate for the lack of automated verification.

Document the Decision: If tests are disabled, document the rationale
and communicate the risks to stakeholders. This ensures accountability and
allows future teams to understand the decision context.

Maintain a Robust CI/CD Pipeline: Make sure the continuous
integration (CI) pipeline is still running other tests (e.g., integration
or system tests) to catch potential issues.

Disabling unit tests should be a last resort, especially for systems with
significant ethical and safety implications. Maintaining a robust testing
framework is crucial for ensuring software reliability, maintaining trust,
and adhering to ethical standards.

you can disable unit test to avoid the problem
cmake .. -DBUILD_TESTS=OFF
—
Reply to this email directly, view it on GitHub
https://github.com/USCiLab/cereal/issues/762#issuecomment-2333138476,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABGRK55B666BWTJEDPJBS23ZVELYZAVCNFSM6AAAAABNXWNV7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMZTGEZTQNBXGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


Please add Spanish Book Names

Thanks in advance!!

Hi @oscampo
Would you mind helping add the Spanish translation book names?
This is the repo to have different translations,
ref: https://github.com/AntiochTechnology/bible-reference-toolkit/tree/master/packages/bible-book-names-intl/src/data/translations
It is a JSON file in a spercific structure, there are 3 langauges there, if you can help for Spanish, that will be great
feel free to ping me if need help

this is duplicated of https://github.com/tim-hub/obsidian-bible-reference/issues/134

Hi @oscampo
Would you mind helping add the Spanish translation book names?
This is the repo to have different translations,
ref: https://github.com/AntiochTechnology/bible-reference-toolkit/tree/master/packages/bible-book-names-intl/src/data/translations
It is a JSON file in a spercific structure, there are 3 langauges there, if you can help for Spanish, that will be great
feel free to ping me if need help
Great! I just created the file "sp.json" following the format you suggest. Here is the file:
spanishBookNames.zip

Hi,
Any problem with the json file ? I saw some reports of errors in the build, but they are related to my file?... sorry I'm checking the report but I can't find which are the errors on my file, because I only see some errors related to another file with book names in english

Hi,
Any problem with the json file ? I saw some reports of errors in the build, but they are related to my file?... sorry I'm checking the report but I can't find which are the errors on my file, because I only see some errors related to another file with book names in english

I think there are some small things need to update.
I think I need to update the markdown file to make it clear.
The tests will check the files structure and whether there are duplication.

For example, short names can be empty array but not be the same as the full name.

Books short names have to be unique to each other.

Will check tomorrow and update the readme and let you know the reason

Ok... I understand... maybe there is a problem with the name "Job" because is the same for the name of the book end for the short name

@tim-hub I check the json file and updated with unique or blank shortnames

@tim-hub I check the json file and updated with unique or blank shortnames

Thanks

Hi @tim-hub I check you merged sp.json last week, but the obsidian plugin is not updated. Any idea when the version with spanish book names will be available?

Sorry for that, the lib need to be updated to use the Spanish translation

Working on it

@oscampo
This should be fixed in version 2.2.0, Thanks for the patience.
https://github.com/tim-hub/obsidian-bible-reference/releases/tag/2.2.0


pip install not working.

Won't let me install within a new python environment.

maybe you can create a env python =3.6


Add CI check that translation source exists

Require all submitted translation docs have a counterpart file in the site/en-snapshot/ directory.
Tested in https://github.com/lamberta/tf-docs-l10n/pull/29

Can I remove this check from our pipeline?

Can I remove this check from our pipeline?

Yes. Though this CI will only affect pull requests that come in after this is merged. A general cleanup script might be useful.

Also, most of the sync problems happen after the pull request when we move our English files around without updating translations. But I'm working with the GitLocalize folks to make that part of their UI.


Export should allow resource to supply name to generated instance

Summary of the new feature / enhancement
Currently, when dsc calls export, for each returned instance, it generates the name property as an incrementing value prefixed by the resource type.  This means the end user needs to manually modify each instance if they want it a bit more descriptive.
Proposed technical implementation details (optional)
Resources should be able to return a _name type metadata as part of export that would be used instead.

Should the resources return the _metadata object with the name annotation instead, to keep all metadata processing limited to that field?
e.g. instead of returning an instance like:
scope: machine
updateAutomatically: false
_exist: true
_name: TSToy Machine Configuration

The instance would return:
scope: machine
updateAutomatically: false
_exist: true
metadata:
  Microsoft.Dsc:
    export:
      _name: TSToy Machine Configuration

And DSC / other integrators would be able to handle it appropriately.
I've been thinking about the contract for metadata and I think having a single _metadata object is probably a good idea, especially if we scope the DSC-engine-specific metadata to a top-level property - then people can comfortably add whatever other metadata to that object, as long as whatever they return in metadata."Microsoft.DSC" matches our schemas.


fix tagging to work with None

bug where stdout is None raises error. Stripping happens in pypyr.steps.cmd in pypyr 4.2.0

Codecov Report

Merging #27 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #27   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           11        11
  Lines          257       257
  Branches        32        32
=========================================
  Hits           257       257

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 0ef2d74...aec6d2b. Read the comment docs.


[NEW ALGORITHM] Adding Ternary Search and Exponential Search in Searching Algorithms folder

Description:
Ternary search is a search algorithm that is used to find the position of a target value within a sorted array. It operates on the principle of dividing the array into three parts . The basic idea is to narrow down the search space by comparing the target value with elements at two points that divide the array into three equal parts.
Exponential search basically involves  finding range where element is present ,Doing Binary Search in above found range.
Checklist:

[x] Contributor in GSSoC-ext
[x] Want to work on it
[x]  Part of Hacktober-fest

Additional Information:
Please assign me this task as after this searching algorithms folder would be almost completed.

You can start


S3 modules are not downloaded when sources added/changed

This is probably similar to #20 and #764, but those discussions are very focused on pulling from git so maybe a different issue.
If I run a terragrunt plan the modules referenced from S3 sources are downloaded fine. If I then use a new module source or change a module source then I get the following error because the modules are not updated:
Error: Module not installed

  on resources-route53.tf line 1:
   1: module "appx_domain" {

This module is not yet installed. Run "terraform init" to install all modules
required by this configuration.

I can work around this by manually deleting the cache so that the modules are pulled again from scratch, but it would be great if I didn't have to do this.

Have you tried running terragrunt init?

I haven't, but I don't run terragrunt init under usual operation as terragrunt performs that action for me, so it seems like I shouldn't need to do it in this scenario too.

Terragrunt does auto-init, but only in specific circumstances. As per https://github.com/gruntwork-io/terragrunt/issues/388, we have not yet implemented it to detect all possible scenarios and run init automatically for them. PR welcome. In the meantime, if you add a module or provider, or change the version of a module or provide, you'll need to run terragrunt init yourself.


Capitalize the first letter of the to.first_name by default

It's a sensible default.

@akshaycj I didn't have a chance to test this. Why did you merge these?

@xarg I'm really sorry. How should i revert this?

Use git revert


[Docs] Update config to add WandB LoggerHook

Motivation
To better use mmdetection3d functionality.
Modification
It's a few lines modified to add more logger hooks to docs.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Tagging new release

Hello,
Some updates has been done from latest release can you tag a new version (fix and new features like proxmox_cloud_init_disk).
Regards,

Keep it opens


refactor(html/minifier): Reorganize minification steps

Description:
Re-organize minification steps into different modules to increase maintainability.
cc @alexander-akait

I qlso prefer less visitor
2022년 4월 26일 (화) 오전 9:32, Alexander Akait @.***>님이 작성:

@.**** commented on this pull request.
I did not do this because it bad for performance and HTML minifier will be
small (there are not many things to compress) - less visitors = better
perf, but let's ask @kdy1 https://github.com/kdy1
—
Reply to this email directly, view it on GitHub
https://github.com/swc-project/swc/pull/4441#pullrequestreview-952578068,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHELSJ7BZAIBOLQYMJZBS6DVG42QJANCNFSM5UKFDKOA
.
You are receiving this because you were mentioned.Message ID:
@.***>

Ok, but can we split them into different functions while still keeping one visitor?

Yeah, I think it's better for the minfier.
Actually es minifier does same thing

Yes, we can, but currenty we have very many functions :smile: Make sense to revisit it late when we implemented collapsing whitespaces/removing optional tags (i.e. we can remove
// because HTML spec allow to not close them)/ and maybe some more. But HTML minifier will not be big because there are not many things to compress, I am thinking we will finish minifier in near future

I think @alexander-akait is right

currenty we have very many functions

It looks there're four functions, currently, or am I missing anything?
My motivation is to re-organize them as soon as possible, which avoid messing the single lib.rs file, and if there're much logic it will be harder to re-organize.

@g-plane There is refactor https://github.com/swc-project/swc/pull/4427 to reduce them

Should I wait for that PR or just close this PR?

Let's wait, I will implement more compress features and we will revisit it


Dockerfile: zip ext twice

Update Dockerfile: zip extension should be installed only once.
Linked to issue 3170:
https://github.com/RSS-Bridge/rss-bridge/issues/3170

Ah didnt this PR before I created one. Thanks.


Huge delay on opening Camera - UWP

Hi,
I've essentially been using this to try and open up a camera page. Its however taking over a minute to actually open the camera page. I'm using xamarin forms and deploying to the windows 10 UWP platform.
using Plugin.Media;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;

namespace Vigour.contentpages
{
    public partial class CameraPage : ContentPage
    {
        public CameraPage()
        {
            InitializeComponent();
        }

        private void print(String s)
        {
            Debug.WriteLine(s);
        }

        // when the button in the xaml file with parameter Clicked="buttonClicked" is clicked,
        // the method is called.
        private async void buttonClicked(object sender, EventArgs e)
        {

            print(CrossMedia.Current.IsCameraAvailable.ToString());

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                print("Camera is availible");
                await DisplayAlert("No Camera", ":( No camera available.", "OK");
                return;
            }

            print("Start taking photo");
            var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
            {
                Directory = "Sample",
                Name = "test.jpg"
            });

            print("Saved photo");
            if (file == null)
                return;

            await DisplayAlert("File Location", file.Path, "OK");

            image.Source = ImageSource.FromStream(() =>
            {
                var stream = file.GetStream();
                file.Dispose();
                return stream;
            });
        }
    }

}

On Windows 10 mobile or Windows 10 desktop?
On desktop it comes up in a pop up and opens for me in under a second.

Windows 10 Phone, Lumia 640

I have the 635 and will test out today :)
On Wed, Feb 10, 2016 at 8:38 AM, Harry Blum<EMAIL_ADDRESS>wrote:

Windows 10 Phone, Lumia 640
—
Reply to this email directly or view it on GitHub
https://github.com/jamesmontemagno/Xamarin.Plugins/issues/217#issuecomment-182468655
.

--
James Montemagno
http://www.montemagno.com
@jamesmontemagno http://www.twitter.com/jamesmontemagno

Great thanks james!

Did you manage to test it?

Just test it and it takes about 2 seconds for the camera app to launch and another 4 or 5 to actually show the finder. It is a slow phone of course. Just using standard apis. All I am doing is TakePhotoAsync.
What build are you on?
I am on Version 1511
OS Build 10.0.10586.71

Hi guys, this delay is caused by CrossMedia.Current.IsCameraAvailable. Once removed, camera shows up within secs - but bad idea to remove it, I guess. This also aplies only to UWP and W81.

@Savier9  that could not possibly be the issue about anything in XAML parsing because W81 and UWP do not use anything custom at all: https://github.com/jamesmontemagno/Xamarin.Plugins/blob/master/Media/Media/Media.Plugin.WindowsStore/MediaImplementation.cs the code is there.
I also just tested it on a lumia 635 and my samsung machine and it worked just fine within seconds.
Which did you remove as far as code goes. Do you have a better example?

Ahhh @Savier9 I assume this code looks proplemenatic:
  print(CrossMedia.Current.IsCameraAvailable.ToString());

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {

``

Can you try do add the Initailization first:

await CrossMedia.Current.Initialize();
print(CrossMedia.Current.IsCameraAvailable.ToString());
        if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
        {

Yeah, thats it, init solved the issue :+1:

Nice, I will document and figure out what is going on there. Probably a deadlock of some sort. Thanks!

I forgot to say, that Im using windows emulators. I have encountered this error earlier in VS2012, where assembly names couldnt contain dots, but that was fixed.
The parsing error comes from this XAML https://github.com/jamesmontemagno/Xamarin.Plugins/blob/master/Media/Media/Media.Plugin.WindowsPhone81/CameraCaptureUI.xaml
and the same error was thrown with UWP and 81 RT
I have validated the xaml and there is no typo. So I just referenced all projects manually and parsing error was gone. That makes me think something suspicious is within the nuget package.

by the way, great job youre doing here :)

Worked like a charm when I added
await CrossMedia.Current.Initialize();
It is still missing from the official plugin / docs, but it works fine when you add that line. Thanks!


how to cook v4l2 with a sound

https://github.com/Genymobile/scrcpy/blob/master/doc/v4l2.md works like a charm but I have no clue how to get a sound in this case

Related: https://github.com/Genymobile/scrcpy/pull/3978#issuecomment-1546044049

I've checked again and it seems it got handled nowadays.
scrcpy --v4l2-sink=/dev/video2 --no-window

it simply works, so cool.
keep on bringing the awesome! many thanks


Create SECURITY.md

[ ] Redmine Issue: https://redmine.pfsense.org/issues/NNNN
[ ] Ready for review

No need to add a generic template file. Should we choose to add one, we'll add it directly with appropriate content. Thanks.


fix cli crash when executing 'copy-config --target startup  --source running'

Hi,
I try to fix a bug that cli crash when executing 'copy-config --target startup  --source running'.

Hi,
thanks, I modified your patch slightly before merging.
Regards,
Michal


d1: README fixes

Tidied up some of the README language.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR @elithrar 🙌🏼
Please check the previous comment about the CLA ⬆
https://github.com/prisma/prisma/pull/23476#issuecomment-1994556308
I'll review the PR and merge it once it passes the requirements.

CLA signed.


Fixed extractions after first ZIP64 entry is read from stream

When a ZIP64 entry is extracted from an archive, the header for the next entry is read out of order. This commit reads the header again, then resets the position of the RewindableStream back to the beginning of the entry, just after the 4 byte header signature. This ensures the correct header signature data and reader (in the correct position) are fed to ReadHeader. Previously this would have read the data at an incorrect offset and would not yield a viable ZipHeader.
I haven't done extensive testing with this nor did I write any automated tests.

Not sure why tests are failing here... is format formatting issues? Running all tests through VS pass.

format is using csharpier to enforce a code style.  The dotnet tool is available locally and dotnet csharpier . should fix the formatting

Thanks!


Doesn't work with Photoshop Beta

After patching and running Photoshop Beta last update, there is an unexpected error that prevents the program from running.

Okay thanks for the report.
At the moment I've no windows system nor Photoshop. And due to work not the time to go into it.
I recommend using an older version or instead of this patch the
CCloader + Photoshop 2019 combo.


chore: Remove unused code & fix lint issues in src/meltano/core/error.py

The tests will fail because some elements from this file are imported (but unused) elsewhere. Those imports have been removed in other PRs related to #6464.
Relates to #6464

fyi - i reviewed/approved the cli changes so that should let the integration test go green.


New design

Once we get design materials we should change the current theme and style of the UI. In the meantime we shouldn't worry about it and we mostly will do it in reasonable freestyle way.

Intro
I'm not a designer, but because we need something for the release and to speed up the development, I started to work on a design. I really appreciate if you comment to the designs to help me.
Description
If you would like to check the design go to figma. The commenting option is at the top left corner (you will have to create an account for commenting). In case you would like to start the implementation, I added @thelinuxlich to Zeplin, so he can invite you if needed, due to I'll have a week off from now. The Zeplin thing can be reached here.
Screenshots
Splash screen

Add / Edit connections & connection list

Dashboard

Dashboard with errors

very cool

Onboarding screens

This is well aligned with the sense of comfort RethinkDB transmits through its developer experience, congratz!

@thelinuxlich, Thank you! I’ll create more designs but we definitely should start to implement it :D I’m busy with the python client preparation for the release. After that, if nobody jumps on it, I can.

I should have some time this weekend
On Mon, 26 Nov 2018 at 3:45 pm, Boros Gábor<EMAIL_ADDRESS>wrote:

@thelinuxlich https://github.com/thelinuxlich, Thank you! I’ll create
more designs but we definitely should start to implement it :D I’m busy
with the python client preparation for the release. After that, if nobody
jumps on it, I can.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/rethinkdb/rethinkdb-desktop/issues/13#issuecomment-441546182,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACbuLYRvdpmSO01F2E53OgtyNw0ZsMkQks5uy5wwgaJpZM4UK4Fn
.

I'm interested in working on this. How do I get access on zeplin?

@PierreAndreis I can share it with you tomorrow

@PierreAndreis Oh hell, I forgot it. Could you please send me your email address?


Custom y-axis labels

Hi,
I'm having a problem with displaying custom labels for y-axis.
function populateGraph(x, y, yLabels, yValues) {
	var chart = new Chartist.Line('#topic-result-overview', {
		labels: x,
		series: [{ name: 'topic-result', data: y }]
	},
		{
			series: {
				'topic-result': {
					lineSmooth: Chartist.Interpolation.step()
				}
			},
			low: 0,
			high: 100,
			showArea: true,
			lineSmooth: false,
			showLine: true,
			chartPadding: 30,
			axisX: {
				showLabel: true,
				showGrid: true,
				offset: 50
			},
			plugins: [
				Chartist.plugins.tooltip()
			],
			axisY: {
				onlyInteger: true,
				labelInterpolationFnc: function (value, index) {
					if (yLabels !== null && yLabels.length > 0) {
						console.log("Label: ", yLabels[index])
						console.log("Value: ", yValues[index])
						return yLabels[index];
					}
					else {
						return value;
					}
				},
				stretch: true
			}
		});
}
And I'm getting results like on image below.

If you check console log you will notice that my labels LOW, MID, HIGH have values 0, 50, 100 respectively, but they are not shown on y-axis properly. Can you please help me with this.

Hello @bkostic 👋
Chartist has recently been updated to version 1.0 with some new exciting changes like ESM and TypeScript support. The migration guide can be found right here.
Please let me know if the issue is still relevant to you so we can further look into it!