Skip to content

Commit 62d9bb8

Browse files
committed
Merge branch 'latest' into hipo-pne
2 parents 2f6218c + b35c903 commit 62d9bb8

122 files changed

Lines changed: 4020 additions & 1402 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/julia/build_tarballs.jl

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ version = VersionNumber(ENV["HIGHS_RELEASE"])
1212
sources = [GitSource(ENV["HIGHS_URL"], ENV["HIGHS_COMMIT"])]
1313

1414
script = raw"""
15-
export BUILD_SHARED="ON"
16-
export BUILD_STATIC="OFF"
17-
1815
cd $WORKSPACE/srcdir/HiGHS
1916
2017
# Remove system CMake to use the jll version
@@ -23,19 +20,20 @@ apk del cmake
2320
rm -rf build
2421
mkdir build
2522
26-
# Do fully static build only on Windows
27-
if [[ "${BUILD_SHARED}" == "OFF" ]] && [[ "${target}" == *-mingw* ]]; then
28-
export CXXFLAGS="-static"
23+
if [[ "${target}" == *-mingw* ]]; then
24+
LBT=blastrampoline-5
25+
else
26+
LBT=blastrampoline
2927
fi
3028
3129
cmake -S . -B build \
3230
-DCMAKE_INSTALL_PREFIX=${prefix} \
3331
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} \
3432
-DCMAKE_BUILD_TYPE=Release \
35-
-DBUILD_SHARED_LIBS=${BUILD_SHARED} \
36-
-DZLIB_USE_STATIC_LIBS=${BUILD_STATIC} \
37-
-DHIPO=ON -DBUILD_SHARED_EXTRAS_LIB=OFF \
38-
-DBLAS_LIBRARIES="${libdir}/libopenblas.${dlext}"
33+
-DBUILD_SHARED_LIBS=ON \
34+
-DHIPO=ON \
35+
-DBUILD_SHARED_EXTRAS_LIB=OFF \
36+
-DBLA_VENDOR=libblastrampoline
3937
4038
if [[ "${target}" == *-linux-* ]]; then
4139
make -C build -j ${nproc}
@@ -62,7 +60,7 @@ platforms = expand_cxxstring_abis(platforms)
6260
dependencies = [
6361
Dependency("CompilerSupportLibraries_jll"),
6462
Dependency("Zlib_jll"),
65-
Dependency("OpenBLAS32_jll"),
63+
Dependency("libblastrampoline_jll"),
6664
HostBuildDependency(PackageSpec(; name="CMake_jll")),
6765
]
6866

@@ -76,5 +74,5 @@ build_tarballs(
7674
products,
7775
dependencies;
7876
preferred_gcc_version = v"11",
79-
julia_compat = "1.6",
77+
julia_compat = "1.10",
8078
)

.github/workflows/build-wheels-push.yml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,13 @@ jobs:
4848
- [macos-14, macosx_arm64]
4949
- [windows-2022, win_amd64]
5050
- [windows-2022, win32]
51-
python: ["cp39", "cp310", "cp311", "cp312", "cp313", "cp314"]
51+
python: ["cp39", "cp310", "cp311", "cp312", "cp313", "cp314", "cp314t"]
52+
exclude:
53+
# numpy (pulled in by the test suite) has no 32-bit linux free-threaded wheels
54+
- buildplat: [ubuntu-24.04, manylinux_i686]
55+
python: "cp314t"
56+
- buildplat: [ubuntu-24.04, musllinux_i686]
57+
python: "cp314t"
5258
steps:
5359
- uses: actions/checkout@v6
5460
- name: Build wheels
@@ -79,7 +85,13 @@ jobs:
7985
- [macos-14, macosx_arm64]
8086
- [windows-2022, win_amd64]
8187
- [windows-2022, win32]
82-
python: ["cp39", "cp310", "cp311", "cp312", "cp313", "cp314"]
88+
python: ["cp39", "cp310", "cp311", "cp312", "cp313", "cp314", "cp314t"]
89+
exclude:
90+
# numpy (pulled in by the test suite) has no 32-bit linux free-threaded wheels
91+
- buildplat: [ubuntu-24.04, manylinux_i686]
92+
python: "cp314t"
93+
- buildplat: [ubuntu-24.04, musllinux_i686]
94+
python: "cp314t"
8395
steps:
8496
- uses: actions/checkout@v6
8597

.github/workflows/julia-tests.yml

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
name: JuliaCompileAndTest
2-
32
on: [push, pull_request]
4-
# needed to allow julia-actions/cache to delete old caches that it has created
5-
63
concurrency:
74
group: ${{ github.workflow }}-${{ github.ref }}
85
cancel-in-progress: true
9-
6+
# needed to allow julia-actions/cache to delete old caches that it has created
107
permissions:
118
actions: write
129
contents: read
@@ -18,7 +15,7 @@ jobs:
1815
matrix:
1916
triplet: ['x86_64-linux-gnu-cxx11', 'aarch64-apple-darwin', 'x86_64-w64-mingw32-cxx11']
2017
steps:
21-
- uses: actions/checkout@v6
18+
- uses: actions/checkout@v7
2219
- uses: julia-actions/setup-julia@v3
2320
with:
2421
version: "1.7"
@@ -64,7 +61,7 @@ jobs:
6461
os: 'windows-latest'
6562
arch: x64
6663
steps:
67-
- uses: actions/checkout@v6
64+
- uses: actions/checkout@v7
6865
- uses: julia-actions/setup-julia@v3
6966
with:
7067
version: "1.10"
@@ -106,18 +103,7 @@ jobs:
106103
"$(m[1]) = \"$(dir)\"\n",
107104
)
108105
Pkg.develop(; path = joinpath(ENV["GITHUB_WORKSPACE"], "HiGHS_jll"))
109-
- shell: julia --color=yes {0}
110-
run: |
111-
import HiGHS_jll
112-
file = joinpath(ENV["GITHUB_WORKSPACE"], "check", "instances", "flugpl.mps")
113-
run(`$(HiGHS_jll.highs()) --solver=hipo $file`)
114-
run(`$(HiGHS_jll.highs()) $file`)
115106
- shell: julia --color=yes {0}
116107
run: |
117108
using Pkg
118-
# HiGHS uses (N+1)/2 threads. HiGHS.jl parallelises the tests and, in
119-
# the default setting, it may use up to 4 parallel jobs. This means
120-
# HiGHS may attempt to start up to 2(N+1) threads and we get unhandled
121-
# exceptions on macOS and a SIGTERM on linux. To avoid these errors,
122-
# opt out of running the tests in parallel.
123-
Pkg.test("HiGHS"; test_args=["--parallel=false"])
109+
Pkg.test("HiGHS")

.github/workflows/sanitizers-cmake.yml

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ concurrency:
77
cancel-in-progress: true
88

99
jobs:
10-
gcc_relwithdebinfo:
10+
gcc:
1111
runs-on: ${{ matrix.os }}
1212
strategy:
1313
fail-fast: false
1414
matrix:
1515
os: [ubuntu-latest]
16+
config: [Debug, RelWithDebInfo]
1617
sanitizer: [Address, Thread, Leak]
1718
steps:
1819
- uses: actions/checkout@v6
@@ -24,21 +25,22 @@ jobs:
2425
shell: bash
2526
working-directory: ${{github.workspace}}/build
2627
run: |
27-
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDEBUG_MEMORY=${{ matrix.sanitizer }} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
28+
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DDEBUG_MEMORY=${{ matrix.sanitizer }} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
2829
cmake --build . -j2
2930
3031
- name: Run
3132
working-directory: ${{github.workspace}}/build
3233
shell: bash
3334
run: ./bin/highs $GITHUB_WORKSPACE/check/instances/afiro.mps
3435

35-
gcc_debug:
36+
clang:
3637
runs-on: ${{ matrix.os }}
3738
strategy:
3839
fail-fast: false
3940
matrix:
4041
# os: [ubuntu-latest, macos-latest]
4142
os: [ubuntu-latest]
43+
config: [Debug, RelWithDebInfo]
4244
sanitizer: [Address, Thread, Leak]
4345
steps:
4446
- uses: actions/checkout@v6
@@ -50,22 +52,22 @@ jobs:
5052
shell: bash
5153
working-directory: ${{github.workspace}}/build
5254
run: |
53-
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DDEBUG_MEMORY=${{ matrix.sanitizer }} -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
55+
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DDEBUG_MEMORY=${{ matrix.sanitizer }} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
5456
cmake --build . -j2
5557
5658
- name: Run
5759
working-directory: ${{github.workspace}}/build
5860
shell: bash
5961
run: ./bin/highs $GITHUB_WORKSPACE/check/instances/afiro.mps
6062

61-
clang_relwithdebinfo:
63+
no_hipo_macos:
6264
runs-on: ${{ matrix.os }}
6365
strategy:
6466
fail-fast: false
6567
matrix:
66-
# os: [ubuntu-latest, macos-latest]
67-
os: [ubuntu-latest]
68-
sanitizer: [Address, Thread, Leak]
68+
os: [macos-latest]
69+
config: [Debug, RelWithDebInfo]
70+
sanitizer: [Address, Thread]
6971
steps:
7072
- uses: actions/checkout@v6
7173

@@ -76,50 +78,66 @@ jobs:
7678
shell: bash
7779
working-directory: ${{github.workspace}}/build
7880
run: |
79-
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=RelWithDebInfo -DDEBUG_MEMORY=${{ matrix.sanitizer }} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
80-
cmake --build . -j2
81+
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=${{ matrix.config }} -DDEBUG_MEMORY=${{ matrix.sanitizer }}
82+
cmake --build . -j3
8183
8284
- name: Run
8385
working-directory: ${{github.workspace}}/build
8486
shell: bash
8587
run: ./bin/highs $GITHUB_WORKSPACE/check/instances/afiro.mps
8688

87-
clang_debug:
89+
hipo:
8890
runs-on: ${{ matrix.os }}
91+
8992
strategy:
9093
fail-fast: false
9194
matrix:
92-
# os: [ubuntu-latest, macos-latest]
9395
os: [ubuntu-latest]
96+
config: [Debug, RelWithDebInfo]
97+
all_tests: [ON]
9498
sanitizer: [Address, Thread, Leak]
99+
95100
steps:
96101
- uses: actions/checkout@v6
97102

98103
- name: Create Build Environment
99104
run: cmake -E make_directory ${{github.workspace}}/build
100105

101-
- name: Configure CMake and Build
102-
shell: bash
106+
- name: Configure CMake
107+
working-directory: ${{github.workspace}}/build
108+
run: |
109+
cmake $GITHUB_WORKSPACE -DHIPO=ON -DBUILD_OPENBLAS=ON \
110+
-DALL_TESTS=${{ matrix.all_tests }} \
111+
-DCMAKE_BUILD_TYPE=${{ matrix.config }} \
112+
-DDEBUG_MEMORY=${{ matrix.sanitizer }} \
113+
-DNO_AVX512=ON \
114+
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \
115+
-DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
116+
117+
118+
- name: Build
103119
working-directory: ${{github.workspace}}/build
104120
run: |
105-
cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=Debug -DDEBUG_MEMORY=${{ matrix.sanitizer }} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
106121
cmake --build . -j2
107122
108-
- name: Run
123+
- name: Test executable
109124
working-directory: ${{github.workspace}}/build
110-
shell: bash
111-
run: ./bin/highs $GITHUB_WORKSPACE/check/instances/afiro.mps
125+
run: ./bin/highs --solver=hipo $GITHUB_WORKSPACE/check/instances/afiro.mps
112126

113-
hipo:
127+
- name: Test hipo
128+
working-directory: ${{github.workspace}}/build
129+
run: |
130+
./bin/unit_tests [highs_hipo]
131+
132+
hipo_macos:
114133
runs-on: ${{ matrix.os }}
115134

116135
strategy:
117136
fail-fast: false
118137
matrix:
119-
os: [ubuntu-latest]
120-
config: [Debug]
121-
all_tests: [ON]
122-
sanitizer: [Address, Thread, Leak]
138+
os: [macos-latest]
139+
config: [Debug, RelWithDebInfo]
140+
sanitizer: [Address, Thread]
123141

124142
steps:
125143
- uses: actions/checkout@v6
@@ -130,18 +148,15 @@ jobs:
130148
- name: Configure CMake
131149
working-directory: ${{github.workspace}}/build
132150
run: |
133-
cmake $GITHUB_WORKSPACE -DHIPO=ON -DBUILD_OPENBLAS=ON \
134-
-DALL_TESTS=${{ matrix.all_tests }} \
151+
cmake $GITHUB_WORKSPACE -DHIPO=ON \
135152
-DCMAKE_BUILD_TYPE=${{ matrix.config }} \
136153
-DDEBUG_MEMORY=${{ matrix.sanitizer }} \
137-
-DNO_AVX512=ON \
138-
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF
139-
154+
-DALL_TESTS=ON
140155
141156
- name: Build
142157
working-directory: ${{github.workspace}}/build
143158
run: |
144-
cmake --build . -j2
159+
cmake --build . -j3
145160
146161
- name: Test executable
147162
working-directory: ${{github.workspace}}/build

.github/workflows/test-python-ubuntu.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ jobs:
135135
- name: Configure openblas
136136
working-directory: ${{github.workspace}}/pathtoopenblas
137137
run: |
138-
make -j2 PREFIX=${{github.workspace}}/install-openblas
139-
make install PREFIX=${{github.workspace}}/install-openblas
138+
make -j2 DYNAMIC_ARCH=1 NO_AVX512=1 PREFIX=${{github.workspace}}/install-openblas
139+
make install DYNAMIC_ARCH=1 NO_AVX512=1 PREFIX=${{github.workspace}}/install-openblas
140140
ls ${{github.workspace}}/install-openblas
141141
echo ""
142142
ls ${{github.workspace}}/install-openblas/lib

BUILD.bazel

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ cc_library(
118118
],
119119
linkopts = select({
120120
"@rules_cc//cc/compiler:msvc-cl": ["-DEFAULTLIB:shell32.lib"],
121+
"@platforms//os:linux": [
122+
"-Wl,--no-as-needed -ldl",
123+
"-pthread",
124+
],
121125
"//conditions:default": ["-lpthread"],
122126
}),
123127
visibility = ["//visibility:public"],
@@ -226,6 +230,7 @@ TEST_NAMES = [
226230
"TestMipSolver",
227231
"TestPresolve",
228232
"TestPresolveRules",
233+
"TestQpOracle",
229234
"TestQpSolver",
230235
"TestRanging",
231236
"TestRunData",

0 commit comments

Comments
 (0)