diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a4f3ef76..d007d47f 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,14 +7,15 @@
name: CI
on: [ push, pull_request ]
jobs:
- ubuntu-focal:
- runs-on: ubuntu-20.04
+ ubuntu:
+ runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- compiler: [ g++-9, g++-10, clang++-10 ]
+ compiler: [ g++-13, g++-14, clang++-19 ]
+ mpi: [ mpich, libopenmpi-dev ]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
@@ -24,10 +25,8 @@ jobs:
fail-fast: true
- name: Set TOOLSET
run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- - name: Add repository
- run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- name: Install packages
- run: sudo apt install g++-9 g++-10 clang-10 mpich
+ run: sudo apt-get update; sudo apt-get install -y g++-13 g++-14 clang-19 ${{matrix.mpi}}
- name: Checkout main boost
run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- name: Update tools/boostdep
@@ -49,57 +48,10 @@ jobs:
run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam && echo "using mpi ;" >> ~/user-config.jam'
working-directory: ../boost-root
- name: Config info
- run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17,2a
+ run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=14,17,20
working-directory: ../boost-root/libs/config/test
- name: Test
- run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17,2a
- working-directory: ../boost-root/libs/graph_parallel/test
- ubuntu-bionic:
- runs-on: ubuntu-18.04
- strategy:
- fail-fast: false
- matrix:
- compiler: [ g++-7, g++-8, clang++-7, clang++-8 ]
- steps:
- - uses: actions/checkout@v2
- with:
- fetch-depth: '0'
- - uses: mstachniuk/ci-skip@v1
- with:
- commit-filter: '[skip ci];[ci skip];[CI SKIP];[SKIP CI];***CI SKIP***;***SKIP CI***;[windows];[Windows];[WINDOWS];[apple];[Apple];[APPLE]'
- commit-filter-separator: ';'
- fail-fast: true
- - name: Set TOOLSET
- run: echo ${{ matrix.compiler }} | awk '/^g/ { print "TOOLSET=gcc" } /^clang/ { print "TOOLSET=clang" }' >> $GITHUB_ENV
- - name: Add repository
- run: sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- - name: Install packages
- run: sudo apt install g++-7 g++-8 clang-7 clang-8 mpich
- - name: Checkout main boost
- run: git clone -b develop --depth 1 https://github.com/boostorg/boost.git ../boost-root
- - name: Update tools/boostdep
- run: git submodule update --init tools/boostdep
- working-directory: ../boost-root
- - name: Copy files
- run: cp -r $GITHUB_WORKSPACE/* libs/graph_parallel
- working-directory: ../boost-root
- - name: Install deps
- run: python tools/boostdep/depinst/depinst.py graph_parallel
- working-directory: ../boost-root
- - name: Bootstrap
- run: ./bootstrap.sh
- working-directory: ../boost-root
- - name: Generate headers
- run: ./b2 headers
- working-directory: ../boost-root
- - name: Generate user config
- run: 'echo "using $TOOLSET : : ${{ matrix.compiler }} ;" > ~/user-config.jam && echo "using mpi ;" >> ~/user-config.jam'
- working-directory: ../boost-root
- - name: Config info install
- run: ../../../b2 print_config_info toolset=$TOOLSET cxxstd=03,11,14,17
- working-directory: ../boost-root/libs/config/test
- - name: Test
- run: ../../../b2 toolset=$TOOLSET cxxstd=03,11,14,17
+ run: ../../../b2 toolset=$TOOLSET cxxstd=14,17,20
working-directory: ../boost-root/libs/graph_parallel/test
macos:
runs-on: macos-latest
@@ -108,7 +60,7 @@ jobs:
matrix:
toolset: [ clang ]
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
with:
fetch-depth: '0'
- uses: mstachniuk/ci-skip@v1
@@ -138,8 +90,8 @@ jobs:
- name: Generate user-config
run: echo "using mpi ;" > ~/user-config.jam
- name: Config info
- run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a
+ run: ../../../b2 print_config_info toolset=${{ matrix.toolset }} cxxstd=14,17,20
working-directory: ../boost-root/libs/config/test
- name: Test
- run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=03,11,14,17,2a define=CI_SUPPRESS_KNOWN_ISSUES
+ run: ../../../b2 toolset=${{ matrix.toolset }} cxxstd=14,17,20 define=CI_SUPPRESS_KNOWN_ISSUES
working-directory: ../boost-root/libs/graph_parallel/test
diff --git a/build.jam b/build.jam
new file mode 100644
index 00000000..ce35ca77
--- /dev/null
+++ b/build.jam
@@ -0,0 +1,47 @@
+# Copyright René Ferdinand Rivera Morell 2024
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+require-b2 5.2 ;
+
+constant boost_dependencies :
+ /boost/algorithm//boost_algorithm
+ /boost/assert//boost_assert
+ /boost/concept_check//boost_concept_check
+ /boost/config//boost_config
+ /boost/container_hash//boost_container_hash
+ /boost/core//boost_core
+ /boost/detail//boost_detail
+ /boost/dynamic_bitset//boost_dynamic_bitset
+ /boost/filesystem//boost_filesystem
+ /boost/foreach//boost_foreach
+ /boost/function//boost_function
+ /boost/graph//boost_graph
+ /boost/iterator//boost_iterator
+ /boost/lexical_cast//boost_lexical_cast
+ /boost/mpi//boost_mpi
+ /boost/mpl//boost_mpl
+ /boost/optional//boost_optional
+ /boost/property_map//boost_property_map
+ /boost/property_map_parallel//boost_property_map_parallel
+ /boost/random//boost_random
+ /boost/serialization//boost_serialization
+ /boost/smart_ptr//boost_smart_ptr
+ /boost/static_assert//boost_static_assert
+ /boost/tuple//boost_tuple
+ /boost/type_traits//boost_type_traits
+ /boost/variant//boost_variant ;
+
+project /boost/graph_parallel
+ ;
+
+explicit
+ [ alias boost_graph_parallel : build//boost_graph_parallel ]
+ [ alias all : boost_graph_parallel example test ]
+ ;
+
+call-if : boost-library graph_parallel
+ : install boost_graph_parallel
+ ;
+
diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
index 5256fa78..b0874a33 100644
--- a/build/Jamfile.v2
+++ b/build/Jamfile.v2
@@ -6,19 +6,21 @@
import mpi ;
-project boost/graph_parallel
+project
+ : common-requirements Constructs a new METIS reader that will retrieve edges from the input
-stream in. If any errors are encountered while initially parsing
-in, metis_input_exception will be thrown.Defining a Distributed Adjacency List
using namespace boost;
typedef adjacency_list<vecS,
- distributedS<parallel::mpi::bsp_process_group, vecS>,
+ distributedS<graph::distributed::mpi_process_group, vecS>,
directedS>
Graph;
@@ -135,7 +135,7 @@ Distributed Vertex and Edge Properties
typedef adjacency_list<vecS,
- distributedS<parallel::mpi::bsp_process_group, vecS>,
+ distributedS<graph::distributed::mpi_process_group, vecS>,
directedS,
City, Highway>
RoadMap;
diff --git a/doc/html/metis.html b/doc/html/metis.html
index 8ca97457..9f816f03 100644
--- a/doc/html/metis.html
+++ b/doc/html/metis.html
@@ -124,8 +124,9 @@
Member Functions
metis_reader(std::istream& in);
edge_iterator begin(); @@ -266,7 +267,7 @@Member Functions
diff --git a/doc/metis.rst b/doc/metis.rst index 17eb51ae..4a917fa3 100644 --- a/doc/metis.rst +++ b/doc/metis.rst @@ -118,8 +118,9 @@ Member Functions metis_reader(std::istream& in); Constructs a new METIS reader that will retrieve edges from the input -stream ``in``. If any errors are encountered while initially parsing -``in``, ``metis_input_exception`` will be thrown. +stream ``in``. The reader will read from the very beginning of the stream, +and to this end, ``in`` must support seeking. If any errors are encountered +while initially parsing ``in``, ``metis_input_exception`` will be thrown. ----------------------------------------------------------------------------- diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index e8877757..17c6d7dc 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -5,9 +5,12 @@ # http://www.boost.org/LICENSE_1_0.txt) -project : requirements../build//boost_graph_parallel - ../../system/build//boost_system - ../../mpi/build//boost_mpi +using python ; + +project : requirements /boost/graph_parallel//boost_graph_parallel + /boost/system//boost_system + /boost/mpi//boost_mpi + /python//python ; exe breadth_first_search : breadth_first_search.cpp ; diff --git a/include/boost/graph/distributed/adjlist/serialization.hpp b/include/boost/graph/distributed/adjlist/serialization.hpp index d6b14e5d..55fa4e8c 100644 --- a/include/boost/graph/distributed/adjlist/serialization.hpp +++ b/include/boost/graph/distributed/adjlist/serialization.hpp @@ -13,6 +13,7 @@ # include # include # include +# include # include # include # include @@ -91,7 +92,7 @@ namespace detail { namespace parallel for (filesystem::directory_iterator i(filename), end; i != end; ++i) { - if (!filesystem::is_regular(*i)) + if (!filesystem::is_regular_file(*i)) boost::throw_exception(std::runtime_error("directory contains non-regular entries")); std::string process_name = i->path().filename().string(); diff --git a/meta/libraries.json b/meta/libraries.json index c0247bc1..b0528d6c 100644 --- a/meta/libraries.json +++ b/meta/libraries.json @@ -11,7 +11,7 @@ "Iterators" ], "maintainers": [ - "K. Noel Belcourt " + "Jeremy W. Murphy " ], "cxxstd": "03" } diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index b3e062e4..37bfdaca 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -2,15 +2,18 @@ # (C) Copyright 2005, 2006 Trustees of Indiana University # (C) Copyright 2005 Douglas Gregor # -# Distributed under the Boost Software License, Version 1.0. (See accompanying +# Distributed under the Boost Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.) +using python ; -# use-project /boost/mpi : ../build ; +project /boost/graph_parallel/test + : requirements + /boost/graph_parallel//boost_graph_parallel + /boost/system//boost_system + /python//python + ; -project /boost/graph_parallel/test - : requirements ../build//boost_graph_parallel ../../system/build//boost_system ; - import mpi : mpi-test ; if [ mpi.configured ] @@ -46,4 +49,3 @@ test-suite graph_parallel } build-project ../example ; -