From f5664debeeebf7409c96622cd87fd72a4785777d Mon Sep 17 00:00:00 2001 From: Marc Pfetsch Date: Mon, 19 Feb 2024 10:53:24 +0100 Subject: [PATCH 1/4] remove replacement of RelWithDebInfo settings --- CHANGELOG | 6 ++++++ CMakeLists.txt | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 52d4b1e12a..4bea83529f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -12,6 +12,12 @@ Fixed bugs Miscellaneous ------------- +Build system +------------ + +### Cmake + +- removed replacement of the settings of RelWithDebInfo @section RN900 SCIP 9.0.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 465b28f667..778c454982 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,9 +10,6 @@ if(POLICY CMP0091) cmake_policy(SET CMP0091 NEW) endif() -set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_DEBUG} ${CMAKE_C_FLAGS_RELEASE}") -set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_DEBUG} ${CMAKE_CXX_FLAGS_RELEASE}") - set(SCIP_VERSION_MAJOR 9) set(SCIP_VERSION_MINOR 0) set(SCIP_VERSION_PATCH 0) From 5667b3c357166cb6c2fdf058e6af86db85fbd437 Mon Sep 17 00:00:00 2001 From: Marc Pfetsch Date: Mon, 19 Feb 2024 11:02:00 +0100 Subject: [PATCH 2/4] turn off 530 which is triggered in C++ by docast --- pclint/scip.lnt | 1 + 1 file changed, 1 insertion(+) diff --git a/pclint/scip.lnt b/pclint/scip.lnt index 8ecf92ebed..6684f4d157 100644 --- a/pclint/scip.lnt +++ b/pclint/scip.lnt @@ -120,6 +120,7 @@ // is likely uninitialized -emacro(530,va_*) -ecall(530,vsnprintf) +-emacro(530,SCIPalloc*) // ignoring return value of function -esym(534,printf,fprintf,fclose,fputs,fputc,fseek,fflush,strcat,strcpy,SCIPfclose,SCIPfseek,memset,memcpy,memmove) From eee0a9f1daa578df12e3a4bd85113a9451a4468a Mon Sep 17 00:00:00 2001 From: Leon Eifler Date: Mon, 26 Feb 2024 12:36:40 +0100 Subject: [PATCH 3/4] disable incorrect objectivestop in presolving --- CHANGELOG | 1 + src/scip/cons_components.c | 1 + src/scip/heur_dualval.c | 3 +++ src/scip/heur_lpface.c | 2 ++ src/scip/heur_repair.c | 3 +++ src/scip/heur_subnlp.c | 1 + src/scip/heuristics.c | 3 +++ src/scip/scip_copy.c | 1 + 8 files changed, 15 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 4bea83529f..733c0beadb 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,6 +7,7 @@ Fixed bugs ---------- - fixed bug in detection of double lex matrices due to wrong memory allocation +- fixed bug where parameter `limits/objectivestop` was copied to subscips in plugins which have different objectives Miscellaneous diff --git a/src/scip/cons_components.c b/src/scip/cons_components.c index d0c7978903..d59ac965c7 100644 --- a/src/scip/cons_components.c +++ b/src/scip/cons_components.c @@ -494,6 +494,7 @@ SCIP_RETCODE createSubscip( /* disable solution limits */ SCIP_CALL( SCIPsetIntParam(*subscip, "limits/solutions", -1) ); SCIP_CALL( SCIPsetIntParam(*subscip, "limits/bestsol", -1) ); + SCIP_CALL( SCIPresetParam(*subscip, "limits/objectivestop") ); /* reduce the effort spent for hash tables; however, if the debug solution is enabled and valid in this subtree, * hash tables are needed for installing the debug solution diff --git a/src/scip/heur_dualval.c b/src/scip/heur_dualval.c index c3965b0339..e225cab8af 100644 --- a/src/scip/heur_dualval.c +++ b/src/scip/heur_dualval.c @@ -971,6 +971,9 @@ SCIP_RETCODE createSubSCIP( /* copy parameter settings */ SCIP_CALL( SCIPcopyParamSettings(scip, heurdata->subscip) ); + /* disable objective stop in subscip */ + SCIP_CALL( SCIPresetParam(heurdata->subscip, "limits/objectivestop") ); + /* create problem in sub-SCIP */ /* get name of the original problem and add "dualval" */ diff --git a/src/scip/heur_lpface.c b/src/scip/heur_lpface.c index ee1ce93b62..4f3c456620 100644 --- a/src/scip/heur_lpface.c +++ b/src/scip/heur_lpface.c @@ -475,6 +475,8 @@ SCIP_RETCODE setSubscipLimits( /* set also the other two limits */ SCIP_CALL( SCIPsetRealParam(subscip, "limits/time", timelimit) ); SCIP_CALL( SCIPsetRealParam(subscip, "limits/memory", memorylimit) ); + /* disable objective stop */ + SCIP_CALL( SCIPresetParam(subscip, "limits/objectivestop") ); return SCIP_OKAY; } diff --git a/src/scip/heur_repair.c b/src/scip/heur_repair.c index 7c792aa48e..17aeb55d04 100644 --- a/src/scip/heur_repair.c +++ b/src/scip/heur_repair.c @@ -940,6 +940,9 @@ SCIP_RETCODE applyRepair( SCIP_CALL( SCIPsetRealParam(subscip, "limits/memory", memorylimit) ); SCIP_CALL( SCIPsetObjlimit(subscip,1.0) ); + /* disable objective stop */ + SCIP_CALL( SCIPresetParam(subscip, "limits/objectivestop") ); + /* forbid recursive call of heuristics and separators solving sub-SCIPs */ SCIP_CALL( SCIPsetSubscipsOff(subscip, TRUE) ); diff --git a/src/scip/heur_subnlp.c b/src/scip/heur_subnlp.c index d6ab502bdc..cd24773488 100644 --- a/src/scip/heur_subnlp.c +++ b/src/scip/heur_subnlp.c @@ -392,6 +392,7 @@ SCIP_RETCODE createSubSCIP( SCIP_CALL( SCIPresetParam(heurdata->subscip, "limits/solutions") ); SCIP_CALL( SCIPresetParam(heurdata->subscip, "limits/time") ); SCIP_CALL( SCIPresetParam(heurdata->subscip, "limits/totalnodes") ); + SCIP_CALL( SCIPresetParam(heurdata->subscip, "limits/objectivestop") ); /* we remember here which way (continuous or not) we went, in case all binary and integer vars get fixed in root */ heurdata->continuous = SCIPgetNBinVars(heurdata->subscip) == 0 && SCIPgetNIntVars(heurdata->subscip) == 0; diff --git a/src/scip/heuristics.c b/src/scip/heuristics.c index cc71d98957..5ff64f3836 100644 --- a/src/scip/heuristics.c +++ b/src/scip/heuristics.c @@ -988,6 +988,9 @@ SCIP_RETCODE SCIPcopyLargeNeighborhoodSearch( /* copy parameter settings */ SCIP_CALL( SCIPcopyParamSettings(sourcescip, subscip) ); + /* disable objective stop in subscip since objective might be changed */ + SCIP_CALL( SCIPresetParam(subscip, "limits/objectivestop") ); + /* create linear constraints from LP rows of the source problem */ SCIP_CALL( createRows(sourcescip, subscip, varmap) ); } diff --git a/src/scip/scip_copy.c b/src/scip/scip_copy.c index 169a5047e6..9dc60b8a2a 100644 --- a/src/scip/scip_copy.c +++ b/src/scip/scip_copy.c @@ -3326,6 +3326,7 @@ SCIP_RETCODE SCIPcopyLimits( SCIP_CALL( SCIPsetIntParam(targetscip, "limits/solutions", -1) ); SCIP_CALL( SCIPsetLongintParam(targetscip, "limits/stallnodes", -1LL) ); SCIP_CALL( SCIPsetLongintParam(targetscip, "limits/totalnodes", -1LL) ); + SCIP_CALL( SCIPsetRealParam(targetscip, "limits/objectivestop", SCIP_INVALID) ); return SCIP_OKAY; } From e229d60fd0e8c0837402b9db1699f87b36e36d6b Mon Sep 17 00:00:00 2001 From: Stefan Vigerske Date: Wed, 28 Feb 2024 14:55:34 +0700 Subject: [PATCH 4/4] increase version to 9.0.1 --- CMakeLists.txt | 2 +- doc/xternal.c | 2 +- make/make.project | 2 +- scripts/makedist.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 778c454982..f1420879cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ endif() set(SCIP_VERSION_MAJOR 9) set(SCIP_VERSION_MINOR 0) -set(SCIP_VERSION_PATCH 0) +set(SCIP_VERSION_PATCH 1) set(SCIP_VERSION_SUB 0) set(SCIP_VERSION_API 114) diff --git a/doc/xternal.c b/doc/xternal.c index 9f82a6f96e..de54e75302 100644 --- a/doc/xternal.c +++ b/doc/xternal.c @@ -104,7 +104,7 @@ * * \verbinclude output.log * - * @version 9.0.0 + * @version 9.0.1 * * \image html scippy.png */ diff --git a/make/make.project b/make/make.project index 5382c14136..3288ce1516 100644 --- a/make/make.project +++ b/make/make.project @@ -95,7 +95,7 @@ CLOCKTYPE = 1 # set SCIP version here for external projects SCIP_VERSION_MAJOR = 9 SCIP_VERSION_MINOR = 0 -SCIP_VERSION_PATCH = 0 +SCIP_VERSION_PATCH = 1 SCIP_VERSION_SUB = 0 SCIP_VERSION_API = 114 SCIP_VERSION = $(SCIP_VERSION_MAJOR).$(SCIP_VERSION_MINOR).$(SCIP_VERSION_PATCH).$(SCIP_VERSION_SUB) diff --git a/scripts/makedist.sh b/scripts/makedist.sh index ea761e3470..f57715d533 100755 --- a/scripts/makedist.sh +++ b/scripts/makedist.sh @@ -6,7 +6,7 @@ # For release versions, only use VERSION="x.x.x". # For development versions, use VERSION="x.x.x.x" with subversion number. -VERSION="9.0.0" +VERSION="9.0.1" NAME="scip-$VERSION" if test ! -e release then