diff --git a/WORKSPACE b/WORKSPACE index a7c141d2a1..b5dde05e14 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -185,14 +185,13 @@ new_git_repository( # Java support (with junit 5) JUNIT_JUPITER_VERSION = "5.9.2" JUNIT_PLATFORM_VERSION = "1.9.2" -RULES_JVM_EXTERNAL_TAG = "4.4.2" -RULES_JVM_EXTERNAL_SHA = "735602f50813eb2ea93ca3f5e43b1959bd80b213b836a07a62a29d757670b77b" +RULES_JVM_EXTERNAL_TAG = "4.5" +CONTRIB_RULES_JVM_TAG = "v0.9.0" -http_archive( +git_repository( name = "rules_jvm_external", - sha256 = RULES_JVM_EXTERNAL_SHA, - strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, - url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG, + tag = RULES_JVM_EXTERNAL_TAG, + remote = "https://github.com/bazelbuild/rules_jvm_external.git", ) load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps") @@ -218,14 +217,10 @@ maven_install( ], ) -CONTRIB_RULES_JVM_VERSION = "0.9.0" -CONTRIB_RULES_JVM_SHA = "548f0583192ff79c317789b03b882a7be9b1325eb5d3da5d7fdcc4b7ca69d543" - -http_archive( +git_repository( name = "contrib_rules_jvm", - sha256 = CONTRIB_RULES_JVM_SHA, - strip_prefix = "rules_jvm-%s" % CONTRIB_RULES_JVM_VERSION, - url = "https://github.com/bazel-contrib/rules_jvm/archive/refs/tags/v%s.tar.gz" % CONTRIB_RULES_JVM_VERSION, + tag = CONTRIB_RULES_JVM_TAG, + remote = "https://github.com/bazel-contrib/rules_jvm.git", ) load("@contrib_rules_jvm//:repositories.bzl", "contrib_rules_jvm_deps") diff --git a/ortools/linear_solver/python/pywrap_model_builder_helper.cc b/ortools/linear_solver/python/pywrap_model_builder_helper.cc index b1d7a7f8d9..de3bce8e6a 100644 --- a/ortools/linear_solver/python/pywrap_model_builder_helper.cc +++ b/ortools/linear_solver/python/pywrap_model_builder_helper.cc @@ -21,6 +21,7 @@ #include "Eigen/Core" #include "Eigen/SparseCore" #include "absl/strings/str_cat.h" +#include "absl/strings/string_view.h" #include "ortools/linear_solver/linear_solver.pb.h" #include "ortools/linear_solver/model_exporter.h" #include "ortools/linear_solver/wrappers/model_builder_helper.h" @@ -152,7 +153,7 @@ PYBIND11_MODULE(pywrap_model_builder_helper, m) { .def("add_var", &ModelBuilderHelper::AddVar) .def("add_var_ndarray", [](ModelBuilderHelper* helper, std::vector shape, double lb, - double ub, bool is_integral, const std::string& name_prefix) { + double ub, bool is_integral, absl::string_view name_prefix) { int size = shape[0]; for (int i = 1; i < shape.size(); ++i) { size *= shape[i]; @@ -176,7 +177,7 @@ PYBIND11_MODULE(pywrap_model_builder_helper, m) { .def("add_var_ndarray_with_bounds", [](ModelBuilderHelper* helper, py::array_t lbs, py::array_t ubs, py::array_t are_integral, - const std::string& name_prefix) { + absl::string_view name_prefix) { py::buffer_info buf_lbs = lbs.request(); py::buffer_info buf_ubs = ubs.request(); py::buffer_info buf_are_integral = are_integral.request(); @@ -289,15 +290,14 @@ PYBIND11_MODULE(pywrap_model_builder_helper, m) { // other things in parallel, e.g., log and interrupt. py::call_guard()) .def("solve_serialized_request", - [](ModelSolverHelper* solver, const std::string& request_str) { + [](ModelSolverHelper* solver, absl::string_view request_str) { std::string result; { // The GIL is released during the solve to allow Python threads // to do other things in parallel, e.g., log and interrupt. py::gil_scoped_release release; MPModelRequest request; - - if (!request.ParseFromString(request_str)) { + if (!request.ParseFromString(std::string(request_str))) { throw std::invalid_argument( "Unable to parse request as MPModelRequest."); } diff --git a/ortools/sat/cp_model_solver.cc b/ortools/sat/cp_model_solver.cc index dedf2a05bf..d4a1ccefdb 100644 --- a/ortools/sat/cp_model_solver.cc +++ b/ortools/sat/cp_model_solver.cc @@ -152,10 +152,6 @@ ABSL_FLAG(bool, cp_model_check_intermediate_solutions, false, "When true, all intermediate solutions found by the solver will be " "checked. This can be expensive, therefore it is off by default."); -ABSL_FLAG(std::string, contention_profile, "", - "If non-empty, dump a contention pprof proto to the specified " - "destination at the end of the solve."); - ABSL_FLAG( std::string, cp_model_load_debug_solution, "", "DEBUG ONLY. When this is set to a non-empty file name, " @@ -3952,7 +3948,6 @@ CpSolverResponse SolveCpModel(const CpModelProto& model_proto, Model* model) { if (logger->LoggingIsEnabled()) { model->GetOrCreate()->Log(logger); } - return shared_response_manager->GetResponse(); } diff --git a/ortools/sat/java/CpModelTest.java b/ortools/sat/java/CpModelTest.java index 6899e86718..bcc636b658 100644 --- a/ortools/sat/java/CpModelTest.java +++ b/ortools/sat/java/CpModelTest.java @@ -21,6 +21,7 @@ import com.google.ortools.sat.CpSolverStatus; import com.google.ortools.sat.LinearArgumentProto; import com.google.ortools.util.Domain; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Random; import java.util.function.Consumer; @@ -682,9 +683,7 @@ public final class CpModelTest { final CpModel model = new CpModel(); final IntVar[] entities = new IntVar[20]; - for (int i = 0; i < entities.length; i++) { - entities[i] = model.newIntVar(1, 5, "E" + i); - } + Arrays.setAll(entities, i -> model.newIntVar(1, 5, "E" + i)); final int[] equalities = new int[] {18, 4, 19, 3, 12}; addEqualities(model, entities, equalities); @@ -773,9 +772,7 @@ public final class CpModelTest { new int[allowedAssignmentValues.length][allowedAssignments.length]; for (int i = 0; i < allowedAssignmentValues.length; i++) { final int value = allowedAssignmentValues[i]; - for (int j = 0; j < allowedAssignments.length; j++) { - allAllowedValues[i][j] = value; - } + Arrays.fill(allAllowedValues[i], 0, allowedAssignments.length, value); } final IntVar[] specificEntities = new IntVar[allowedAssignments.length]; for (int i = 0; i < allowedAssignments.length; i++) { @@ -798,9 +795,7 @@ public final class CpModelTest { new int[forbiddenAssignmentsValues.length][forbiddenAssignments.length]; for (int i = 0; i < forbiddenAssignmentsValues.length; i++) { final int value = forbiddenAssignmentsValues[i]; - for (int j = 0; j < forbiddenAssignments.length; j++) { - notAllowedValues[i][j] = value; - } + Arrays.fill(notAllowedValues[i], 0, forbiddenAssignments.length, value); } TableConstraint table = model.addForbiddenAssignments(specificEntities); for (int[] tuple : notAllowedValues) {