Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 13 additions & 15 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,21 @@ jobs:
strategy:
matrix:
version:
- {ubuntu: 'ubuntu-22.04', python: '3.10', cc: gcc-12, cxx: g++-12, run_tox_tests: true}
# NOTE: Temporarily removing support for the second compiler of the
# older Ubuntu LTS because clang-15 does not support certain C++20
# features we would like to use (e.g., `ranges` and `views`
# libraries).
# - {ubuntu: 'ubuntu-22.04', python: '3.10', cc: clang-15, cxx: clang++-15, run_tox_tests: false}
- {ubuntu: 'ubuntu-24.04', python: '3.10', cc: gcc-14, cxx: g++-14, run_tox_tests: true}
- {ubuntu: 'ubuntu-24.04', python: '3.10', cc: clang-18, cxx: clang++-18, run_tox_tests: false}
- {ubuntu: 'ubuntu-24.04', python: '3.12', cc: gcc-14, cxx: g++-14, run_tox_tests: true}
- {ubuntu: 'ubuntu-24.04', python: '3.12', cc: clang-20, cxx: clang++-20, run_tox_tests: false}
- {ubuntu: 'ubuntu-26.04', python: '3.14', cc: gcc-15, cxx: g++-15, run_tox_tests: false}
- {ubuntu: 'ubuntu-26.04', python: '3.14', cc: gcc-16, cxx: g++-16, run_tox_tests: true}
Comment thread
FlorianPommerening marked this conversation as resolved.
- {ubuntu: 'ubuntu-26.04', python: '3.14', cc: clang-21, cxx: clang++-21, run_tox_tests: false}
- {ubuntu: 'ubuntu-26.04', python: '3.14', cc: clang-22, cxx: clang++-22, run_tox_tests: false}
env:
CC: ${{ matrix.version.cc }}
CXX: ${{ matrix.version.cxx }}
CPLEX_URL: ${{ secrets.CPLEX2211_LINUX_URL }}
cplex_DIR: /home/runner/lib/ibm/ILOG/CPLEX_Studio2211/cplex
CPLEX_LIB: /home/runner/lib/ibm/ILOG/CPLEX_Studio2211/cplex/bin/x86-64_linux/libcplex2211.so
soplex_DIR: /home/runner/lib/soplex-7.1.0
SOPLEX_LIB: /home/runner/lib/soplex-7.1.0/lib/
SOPLEX_INCLUDE: /home/runner/lib/soplex-7.1.0/include/
soplex_DIR: /home/runner/lib/soplex-7.1.2
SOPLEX_LIB: /home/runner/lib/soplex-7.1.2/lib/
SOPLEX_INCLUDE: /home/runner/lib/soplex-7.1.2/include/
steps:
- name: Clone repository
uses: actions/checkout@v3
Expand All @@ -51,7 +49,7 @@ jobs:
sudo apt-get -y install zlib1g-dev libgmp3-dev ${{ matrix.version.cc }}
mkdir /home/runner/lib

# In 22.04 g++-12 is not automatically installed when gcc-12 gets
# On Ubuntu, g++-* is not automatically installed when gcc-* gets
# installed, so we do it separately. We do not use an unconditional
# install for any value of cxx because there is no separate package for
# clang++.
Expand All @@ -75,7 +73,7 @@ jobs:
run: |
git clone https://github.com/scipopt/soplex.git
cd soplex
git checkout release-710
git checkout release-712
cd ..
cmake -S soplex -B build
cmake --build build
Expand Down Expand Up @@ -116,8 +114,8 @@ jobs:
strategy:
matrix:
version:
- {ubuntu: ubuntu-22.04, python: '3.10'}
- {ubuntu: ubuntu-24.04, python: '3.10'}
- {ubuntu: ubuntu-24.04, python: '3.12'}
- {ubuntu: ubuntu-26.04, python: '3.14'}
env:
CPLEX_URL: ${{ secrets.CPLEX2211_LINUX_URL }}
steps:
Expand Down
10 changes: 5 additions & 5 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ Note that on Windows, setting up the environment variable might require using `/
**Important:** The GNU Multiple Precision library (GMP) is critical for the performance of SoPlex but the build does not complain if it is not present.
Make sure that the build uses the library (check the output of CMake for `Found GMP`).

We require at least SoPlex 7.1.0, which can be built from source as follows (adapt the paths if you install a different version or want to use a different location):
We require at least SoPlex 7.1.2, which can be built from source as follows (adapt the paths if you install a different version or want to use a different location):
```bash
sudo apt install libgmp3-dev
wget https://github.com/scipopt/soplex/archive/refs/tags/release-710.tar.gz -O - | tar -xz
cmake -S soplex-release-710 -B build
wget https://github.com/scipopt/soplex/archive/refs/tags/release-712.tar.gz -O - | tar -xz
cmake -S soplex-release-712 -B build
cmake --build build
export soplex_DIR=/opt/soplex-7.1.0
export soplex_DIR=/opt/soplex-7.1.2
cmake --install build --prefix $soplex_DIR
rm -rf soplex-release-710 build
rm -rf soplex-release-712 build
```

After installation, permanently set the environment variable `soplex_DIR` to the value you used during the installation.
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ This version of Fast Downward has been tested with the following software versio

| OS | Python | C++ compiler | CMake |
| ------------ | ------ | ------------------------------------------ | ----- |
| Ubuntu 24.04 | 3.10 | GCC 14, Clang 18 | 3.31 |
| Ubuntu 22.04 | 3.10 | GCC 12 | 3.31 |
| Ubuntu 26.04 | 3.14 | GCC 15, GCC 16, Clang 21, Clang 22 | 4.2 |
| Ubuntu 24.04 | 3.12 | GCC 14, Clang 20 | 3.31 |
| macOS 15 | 3.14 | AppleClang 17 | 4.2 |
| macOS 14 | 3.14 | AppleClang 15 | 4.2 |
| Windows 10 | 3.9 | Visual Studio Enterprise 2022 (MSVC 19.44) | 3.31 |

We test LP support with CPLEX 22.1.1 and SoPlex 7.1.1. On Ubuntu we
We test LP support with CPLEX 22.1.1 and SoPlex 7.1.2. On Ubuntu we
test both CPLEX and SoPlex. On Windows we currently only test CPLEX,
and on macOS we do not test LP solvers (yet).

Expand Down
2 changes: 1 addition & 1 deletion misc/releases/templates/_Dockerfile.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \

# Set up some environment variables.
ENV CXX g++
ENV SOPLEX_REVISION release-711
ENV SOPLEX_REVISION release-712
ENV soplex_DIR /opt/soplex

# Install SoPlex.
Expand Down
2 changes: 1 addition & 1 deletion misc/releases/templates/_Vagrantfile.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Vagrant.configure("2") do |config|
export soplex_DIR="/opt/soplex"
EOM
source /etc/profile.d/downward-soplex.sh
git clone --depth 1 --branch release-711 https://github.com/scipopt/soplex.git soplex
git clone --depth 1 --branch release-712 https://github.com/scipopt/soplex.git soplex
cd soplex
cmake -DCMAKE_INSTALL_PREFIX="$soplex_DIR" -S . -B build
cmake --build build
Expand Down
14 changes: 14 additions & 0 deletions src/search/open_lists/epsilon_greedy_open_list.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,21 @@ class EpsilonGreedyOpenList : public OpenList<Entry> {
}

bool operator>(const HeapNode &other) const {
/*
g++-16 (and possibly later versions) use (a <=> b) < 0 to compare pairs.
This triggers a spurious zero-as-null-pointer-constant warning, which we
ignore here.
*/
#ifdef __GNUG__
#pragma GCC diagnostic push
#if (__GNUG__ >= 15)
#pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
#endif
#endif
return make_pair(h, id) > make_pair(other.h, other.id);
#ifdef __GNUG__
#pragma GCC diagnostic pop
#endif
}
};

Expand Down
Loading