scipopt / scip

SCIP - Solving Constraint Integer Programs
Other
406 stars 67 forks source link

Increase max tree depth for nodes from 65534 to 1000000. #41

Closed bdb-git closed 1 year ago

bdb-git commented 1 year ago

Increase the width of the number of nodes from 16 to 32 bits. Pack SCIP_Node differently.

matbesancon commented 1 year ago

Thanks! I the pull request to the main gitlab and will keep you posted here

matbesancon commented 1 year ago

there are some warnings this triggered. Did you compile and test in debug mode?

Some examples:

17:21:10 src/scip/tree.c: In function ‘SCIPnodeMarkPropagated’:
17:21:10 src/scip/tree.c:1287:36: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:21:10     if( node->active && node->depth == tree->repropdepth )
17:21:10                                     ^~
17:21:10 src/scip/tree.c: In function ‘treeFindSwitchForks’:
17:21:10 src/scip/tree.c:2952:72: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:21:10        if( tree->focuslpfork != NULL && (int)(tree->focuslpfork->depth) > fork->depth )
17:21:10                                                                         ^
17:21:10 src/scip/tree.c:2984:82: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:21:10        if( tree->focuslpstatefork != NULL && (int)(tree->focuslpstatefork->depth) > fork->depth )
17:21:10                                                                                   ^
17:21:10 src/scip/tree.c:3018:74: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:21:10        if( tree->focussubroot != NULL && (int)(tree->focussubroot->depth) > fork->depth )
17:21:10                                                                           ^
17:21:10 In file included from src/scip/tree.c:38:0:
17:21:10 src/scip/tree.c: In function ‘SCIPnodeFocus’:
17:21:10 src/scip/tree.c:4372:38: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:21:10        *node != NULL ? (*node)->depth : -1, fork != NULL ? fork->depth : -1, /*lint !e705 */
17:21:10                                       ^
17:21:10 src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:21:10  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:21:10                                                                                                            ^~~~~~~~~~~
17:21:10 src/scip/tree.c:4372:71: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:21:10        *node != NULL ? (*node)->depth : -1, fork != NULL ? fork->depth : -1, /*lint !e705 */
17:21:10                                                                        ^
17:21:10 src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:21:10  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:21:10                                                                                                            ^~~~~~~~~~~
17:21:10 src/scip/tree.c:4373:38: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:21:10        lpfork != NULL ? lpfork->depth : -1, lpstatefork != NULL ? lpstatefork->depth : -1, /*lint !e705 */
17:21:10                                       ^
17:21:10 src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:21:10  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:21:10                                                                                                            ^~~~~~~~~~~
17:21:10 src/scip/tree.c:4373:85: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:21:10        lpfork != NULL ? lpfork->depth : -1, lpstatefork != NULL ? lpstatefork->depth : -1, /*lint !e705 */
17:21:10                                                                                      ^
17:21:10 src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:21:10  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:21:10                                                                                                            ^~~~~~~~~~~
17:21:10 src/scip/tree.c:4374:40: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:21:10        subroot != NULL ? subroot->depth : -1, *cutoff); /*lint !e705 */
17:21:10                                         ^
17:21:10 src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:21:10  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:21:10                                                                                                            ^~~~~~~~~~~
matbesancon commented 1 year ago

More complete list:

17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘treeFindSwitchForks’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:2952:72: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34        if( tree->focuslpfork != NULL && (int)(tree->focuslpfork->depth) > fork->depth )
17:46:34                                                                         ^
17:46:34 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/def.h:46:0,
17:46:34                  from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:37:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:2970:53: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34        assert(lpfork == NULL || (int)(lpfork->depth) <= fork->depth);
17:46:34                                                      ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:2984:82: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34        if( tree->focuslpstatefork != NULL && (int)(tree->focuslpstatefork->depth) > fork->depth )
17:46:34                                                                                   ^
17:46:34 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/def.h:46:0,
17:46:34                  from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:37:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:3004:63: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34        assert(lpstatefork == NULL || (int)(lpstatefork->depth) <= fork->depth);
17:46:34                                                                ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:3018:74: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34        if( tree->focussubroot != NULL && (int)(tree->focussubroot->depth) > fork->depth )
17:46:34                                                                           ^
17:46:34 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:38:0:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPnodeFocus’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4372:38: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:34        *node != NULL ? (*node)->depth : -1, fork != NULL ? fork->depth : -1, /*lint !e705 */
17:46:34                                       ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:34  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:34                                                                                                            ^~~~~~~~~~~
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4372:71: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:34        *node != NULL ? (*node)->depth : -1, fork != NULL ? fork->depth : -1, /*lint !e705 */
17:46:34                                                                        ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:34  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:34                                                                                                            ^~~~~~~~~~~
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4373:38: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:34        lpfork != NULL ? lpfork->depth : -1, lpstatefork != NULL ? lpstatefork->depth : -1, /*lint !e705 */
17:46:34                                       ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:34  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:34                                                                                                            ^~~~~~~~~~~
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4373:85: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:34        lpfork != NULL ? lpfork->depth : -1, lpstatefork != NULL ? lpstatefork->depth : -1, /*lint !e705 */
17:46:34                                                                                      ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:34  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:34                                                                                                            ^~~~~~~~~~~
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4374:40: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:34        subroot != NULL ? subroot->depth : -1, *cutoff); /*lint !e705 */
17:46:34                                         ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:34  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:34                                                                                                            ^~~~~~~~~~~
17:46:34 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/def.h:46:0,
17:46:34                  from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:37:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4417:77: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34           || (tree->focussubroot != NULL && (int)(tree->focussubroot->depth) > subroot->depth));
17:46:34                                                                              ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeIsPathComplete’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8277:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:34                                                                     ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetFocusNode’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8320:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:34                                                                     ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetFocusDepth’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8337:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:34                                                                     ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetCurrentNode’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8395:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:34                                                                     ^
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetCurrentDepth’:
17:46:34 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8412:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:34     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:34                                                                     ^
17:46:34 [ 62%] Building C object src/CMakeFiles/scip.dir/scip/var.c.o
17:46:34 [ 62%] Building C object src/CMakeFiles/scip.dir/scip/visual.c.o
17:46:34 [ 62%] Building C object src/CMakeFiles/libscip.dir/scip/stat.c.o
17:46:34 cc1: all warnings being treated as errors
17:46:34 src/CMakeFiles/scip.dir/build.make:4989: recipe for target 'src/CMakeFiles/scip.dir/scip/tree.c.o' failed
17:46:34 make[3]: *** [src/CMakeFiles/scip.dir/scip/tree.c.o] Error 1
17:46:34 make[3]: *** Waiting for unfinished jobs....
17:46:34 [ 62%] Building C object src/CMakeFiles/libscip.dir/scip/symmetry.c.o
17:46:34 [ 62%] Building C object src/CMakeFiles/libscip.dir/scip/syncstore.c.o
17:46:34 [ 62%] Building C object src/CMakeFiles/libscip.dir/scip/table.c.o
17:46:34 [ 62%] Building C object src/CMakeFiles/libscip.dir/scip/tree.c.o
17:46:34 [ 62%] Building C object src/CMakeFiles/libscip.dir/scip/var.c.o
17:46:35 [ 63%] Building C object src/CMakeFiles/libscip.dir/scip/visual.c.o
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘treeFindSwitchForks’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:2952:72: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35        if( tree->focuslpfork != NULL && (int)(tree->focuslpfork->depth) > fork->depth )
17:46:35                                                                         ^
17:46:35 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/def.h:46:0,
17:46:35                  from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:37:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:2970:53: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35        assert(lpfork == NULL || (int)(lpfork->depth) <= fork->depth);
17:46:35                                                      ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:2984:82: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35        if( tree->focuslpstatefork != NULL && (int)(tree->focuslpstatefork->depth) > fork->depth )
17:46:35                                                                                   ^
17:46:35 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/def.h:46:0,
17:46:35                  from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:37:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:3004:63: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35        assert(lpstatefork == NULL || (int)(lpstatefork->depth) <= fork->depth);
17:46:35                                                                ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:3018:74: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35        if( tree->focussubroot != NULL && (int)(tree->focussubroot->depth) > fork->depth )
17:46:35                                                                           ^
17:46:35 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:38:0:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPnodeFocus’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4372:38: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:35        *node != NULL ? (*node)->depth : -1, fork != NULL ? fork->depth : -1, /*lint !e705 */
17:46:35                                       ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:35  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:35                                                                                                            ^~~~~~~~~~~
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4372:71: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:35        *node != NULL ? (*node)->depth : -1, fork != NULL ? fork->depth : -1, /*lint !e705 */
17:46:35                                                                        ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:35  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:35                                                                                                            ^~~~~~~~~~~
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4373:38: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:35        lpfork != NULL ? lpfork->depth : -1, lpstatefork != NULL ? lpstatefork->depth : -1, /*lint !e705 */
17:46:35                                       ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:35  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:35                                                                                                            ^~~~~~~~~~~
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4373:85: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:35        lpfork != NULL ? lpfork->depth : -1, lpstatefork != NULL ? lpstatefork->depth : -1, /*lint !e705 */
17:46:35                                                                                      ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:35  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:35                                                                                                            ^~~~~~~~~~~
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4374:40: error: signed and unsigned type in conditional expression [-Werror=sign-compare]
17:46:35        subroot != NULL ? subroot->depth : -1, *cutoff); /*lint !e705 */
17:46:35                                         ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/set.h:1766:107: note: in definition of macro ‘SCIPsetDebugMsg’
17:46:35  #define SCIPsetDebugMsg(set, ...)       while ( FALSE ) SCIPsetPrintDebugMessage(set, __FILE__, __LINE__, __VA_ARGS__)
17:46:35                                                                                                            ^~~~~~~~~~~
17:46:35 In file included from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/def.h:46:0,
17:46:35                  from /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:37:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:4417:77: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35           || (tree->focussubroot != NULL && (int)(tree->focussubroot->depth) > subroot->depth));
17:46:35                                                                              ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeIsPathComplete’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8277:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:35                                                                     ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetFocusNode’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8320:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:35                                                                     ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetFocusDepth’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8337:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:35                                                                     ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetCurrentNode’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8395:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:35                                                                     ^
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c: In function ‘SCIPtreeGetCurrentDepth’:
17:46:35 /scratch/opt/jenkins/workspace/SCIP_cmake_applications_examples_unittests_mergerequest/src/scip/tree.c:8412:68: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
17:46:35     assert(tree->pathlen == 0 || tree->path[tree->pathlen-1]->depth == tree->pathlen-1);
17:46:35                                                                     ^
matbesancon commented 1 year ago

I made the modifications on the PR on the gitlab side of things, everything should pass now

bdb-git commented 1 year ago

Thanks. I did not compile in debug mode. Sorry. I think I see why there is a problem. previously 23-bit unsigned ints became 32-bit, and is thus problematic wrt to comparison with signed integers, right?

matbesancon commented 1 year ago

yes exactly. I converted to long before comparisons, and removed an assert that exploited overflows. You can view the final diff here: https://github.com/scipopt/scip/pull/42

matbesancon commented 1 year ago

ah and a gitlab account should be created for you next week here :)

bdb-git commented 1 year ago

Cool. Thanks!

BTW, instead of converting to int or long, why not make the depth field simply an int? Is it guaranteed to be 32-bit on all the platforms you support?

That would make the code cleaner and safer, or am I missing anything?

matbesancon commented 1 year ago

Not sure about safer, we shouldn't have any negative in any case (I agree the type is not the place to ensure this in C).

Is it guaranteed to be 32-bit on all the platforms you support?

That I have a doubt about too, but I don't think we should have anything smaller than 32?

matbesancon commented 1 year ago

Hi! We finally got around to merge this into scip master, the changes will appear soon on the github mirror too. Thanks!