From 7bd6727bfc9ea8f59ca62b3121fb3684ef6ba4b2 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 11 Mar 2024 08:38:16 -0500 Subject: [PATCH 01/15] Make the library modular usable. --- Jamfile.v2 | 5 ----- build.jam | 29 +++++++++++++++++++++++++++++ example/Jamfile.v2 | 34 ++++++++++++---------------------- test/Jamfile.v2 | 24 +++++++++++++----------- 4 files changed, 54 insertions(+), 38 deletions(-) delete mode 100644 Jamfile.v2 create mode 100644 build.jam diff --git a/Jamfile.v2 b/Jamfile.v2 deleted file mode 100644 index 8333597f0..000000000 --- a/Jamfile.v2 +++ /dev/null @@ -1,5 +0,0 @@ -import testing ; - -# Tests from Jamfiles in individual library test subdirectories -build-project example ; # test-suite interprocess_example -build-project test ; # test-suite interprocess_test \ No newline at end of file diff --git a/build.jam b/build.jam new file mode 100644 index 000000000..f05a3d3d0 --- /dev/null +++ b/build.jam @@ -0,0 +1,29 @@ +# Copyright René Ferdinand Rivera Morell 2023 +# 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) + +import project ; + +project /boost/interprocess + : common-requirements + /boost/assert//boost_assert + /boost/config//boost_config + /boost/container//boost_container + /boost/core//boost_core + /boost/intrusive//boost_intrusive + /boost/move//boost_move + /boost/static_assert//boost_static_assert + /boost/type_traits//boost_type_traits + /boost/unordered//boost_unordered + /boost/winapi//boost_winapi + include + ; + +explicit + [ alias boost_interprocess ] + [ alias all : boost_interprocess example test ] + ; + +call-if : boost-library interprocess + ; diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 22da3e089..223d906fd 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -15,38 +15,28 @@ # the run rule for each source, the result is a list of all # the run rules, which we can pass on to the test_suite rule: +project : requirements + acc:-lrt + acc-pa_risc:-lrt + gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32" + hpux,gcc:"-Wl,+as,mpas" + windows,clang:"-lole32 -loleaut32 -lpsapi -ladvapi32" + linux:"-lrt" + /boost/multi_index//boost_multi_index + ; + rule test_all { local all_rules = ; for local fileb in [ glob comp*.cpp ] { - all_rules += [ link $(fileb) - : # additional args - acc:-lrt - acc-pa_risc:-lrt - gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32" - hpux,gcc:"-Wl,+as,mpas" - windows,clang:"-lole32 -loleaut32 -lpsapi -ladvapi32" - linux:"-lrt" - : # test-files - : # requirements - ] ; + all_rules += [ link $(fileb) ] ; } for local fileb in [ glob doc_*.cpp ] { - all_rules += [ run $(fileb) - : # additional args - : # test-files - : # requirements - acc:-lrt - acc-pa_risc:-lrt - gcc-mingw:"-lole32 -loleaut32 -lpsapi -ladvapi32" - hpux,gcc:"-Wl,+as,mpas" - windows,clang:"-lole32 -loleaut32 -lpsapi -ladvapi32" - linux:"-lrt" - ] ; + all_rules += [ run $(fileb) ] ; } return $(all_rules) ; diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index a09bf8f28..b2f54cf74 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -15,23 +15,25 @@ # the run rule for each source, the result is a list of all # the run rules, which we can pass on to the test_suite rule: +project : requirements + /boost/date_time//boost_date_time + /boost/multi_index//boost_multi_index + acc:-lrt + acc-pa_risc:-lrt + gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32" + hpux,gcc:"-Wl,+as,mpas" + windows,clang:"-lole32 -loleaut32 -lpsapi -ladvapi32" + linux:"-lrt" + /boost/chrono//boost_chrono + ; + rule test_all { local all_rules = ; for local fileb in [ glob *.cpp ] { - all_rules += [ run $(fileb) - : # additional args - : # test-files - : # requirements - acc:-lrt - acc-pa_risc:-lrt - gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32" - hpux,gcc:"-Wl,+as,mpas" - windows,clang:"-lole32 -loleaut32 -lpsapi -ladvapi32" - linux:"-lrt" - ] ; + all_rules += [ run $(fileb) ] ; } return $(all_rules) ; From 144c70189576f7bdfd75f561272de4ababef399c Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Fri, 29 Mar 2024 21:15:59 -0500 Subject: [PATCH 02/15] Switch to library requirements instead of source. As source puts extra source in install targets. --- build.jam | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/build.jam b/build.jam index f05a3d3d0..e4b8f6afc 100644 --- a/build.jam +++ b/build.jam @@ -7,16 +7,16 @@ import project ; project /boost/interprocess : common-requirements - /boost/assert//boost_assert - /boost/config//boost_config - /boost/container//boost_container - /boost/core//boost_core - /boost/intrusive//boost_intrusive - /boost/move//boost_move - /boost/static_assert//boost_static_assert - /boost/type_traits//boost_type_traits - /boost/unordered//boost_unordered - /boost/winapi//boost_winapi + /boost/assert//boost_assert + /boost/config//boost_config + /boost/container//boost_container + /boost/core//boost_core + /boost/intrusive//boost_intrusive + /boost/move//boost_move + /boost/static_assert//boost_static_assert + /boost/type_traits//boost_type_traits + /boost/unordered//boost_unordered + /boost/winapi//boost_winapi include ; From 27c9bd2d4136320155ebcade7ec9a85c3180183f Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Thu, 25 Apr 2024 08:48:21 -0500 Subject: [PATCH 03/15] Add missing b2 testing module import. --- example/Jamfile.v2 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 223d906fd..66bfcc51a 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -11,6 +11,8 @@ # Boost Software License, Version 1.0. (See accompanying file # LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +import testing ; + # this rule enumerates through all the sources and invokes # the run rule for each source, the result is a list of all # the run rules, which we can pass on to the test_suite rule: From 350e9f352399a0edac04166b810ad65df29d060a Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 5 May 2024 09:00:01 -0500 Subject: [PATCH 04/15] Add requires-b2 check to top-level build file. --- build.jam | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.jam b/build.jam index e4b8f6afc..06a04baf8 100644 --- a/build.jam +++ b/build.jam @@ -3,6 +3,8 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) +require-b2 5.1 ; + import project ; project /boost/interprocess From 7b2fa067b2c7f8c78995b9cd891083f3c34b0679 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Mon, 13 May 2024 21:45:55 -0500 Subject: [PATCH 05/15] Update dependencies. --- build.jam | 1 - 1 file changed, 1 deletion(-) diff --git a/build.jam b/build.jam index 06a04baf8..ecbe54b7b 100644 --- a/build.jam +++ b/build.jam @@ -17,7 +17,6 @@ project /boost/interprocess /boost/move//boost_move /boost/static_assert//boost_static_assert /boost/type_traits//boost_type_traits - /boost/unordered//boost_unordered /boost/winapi//boost_winapi include ; From e2fcbc7191811d366776009d17eea61b079a7e4f Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Tue, 14 May 2024 07:33:17 -0500 Subject: [PATCH 06/15] Add missing test deps. --- example/Jamfile.v2 | 1 + 1 file changed, 1 insertion(+) diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 66bfcc51a..2b86776d3 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -25,6 +25,7 @@ project : requirements windows,clang:"-lole32 -loleaut32 -lpsapi -ladvapi32" linux:"-lrt" /boost/multi_index//boost_multi_index + /boost/unordered//boost_unordered ; rule test_all From 45de5e3ea2b0d5710c9a58f26f58c56d9a8f2bea Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Fri, 14 Jun 2024 11:33:55 -0500 Subject: [PATCH 07/15] Bump B2 require to 5.2 --- build.jam | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/build.jam b/build.jam index ecbe54b7b..b1c1bc6ff 100644 --- a/build.jam +++ b/build.jam @@ -3,9 +3,7 @@ # (See accompanying file LICENSE_1_0.txt or copy at # http://www.boost.org/LICENSE_1_0.txt) -require-b2 5.1 ; - -import project ; +require-b2 5.2 ; project /boost/interprocess : common-requirements From 2c5945d2727d223138353bc09556e2365ebbba06 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 20 Jul 2024 19:39:54 -0500 Subject: [PATCH 08/15] Change all references to . --- test/Jamfile.v2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index b2f54cf74..39b73ef61 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -16,8 +16,8 @@ # the run rules, which we can pass on to the test_suite rule: project : requirements - /boost/date_time//boost_date_time - /boost/multi_index//boost_multi_index + /boost/date_time//boost_date_time + /boost/multi_index//boost_multi_index acc:-lrt acc-pa_risc:-lrt gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32" From 12c7790a7b6ac7471d48eb76eed6a04caf532236 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 20 Jul 2024 22:52:03 -0500 Subject: [PATCH 09/15] Update copyright dates. --- build.jam | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.jam b/build.jam index b1c1bc6ff..74fd2752b 100644 --- a/build.jam +++ b/build.jam @@ -1,4 +1,4 @@ -# Copyright René Ferdinand Rivera Morell 2023 +# Copyright René Ferdinand Rivera Morell 2023-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) From decdab79b58aae4d57d4fc1921b4173005606aa5 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Tue, 23 Jul 2024 22:34:22 -0500 Subject: [PATCH 10/15] Move inter-lib dependencies to a project variable and into the build targets. --- build.jam | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/build.jam b/build.jam index 74fd2752b..0fcf65526 100644 --- a/build.jam +++ b/build.jam @@ -5,24 +5,27 @@ require-b2 5.2 ; +constant boost_dependencies : + /boost/assert//boost_assert + /boost/config//boost_config + /boost/container//boost_container + /boost/core//boost_core + /boost/intrusive//boost_intrusive + /boost/move//boost_move + /boost/static_assert//boost_static_assert + /boost/type_traits//boost_type_traits + /boost/winapi//boost_winapi ; + project /boost/interprocess : common-requirements - /boost/assert//boost_assert - /boost/config//boost_config - /boost/container//boost_container - /boost/core//boost_core - /boost/intrusive//boost_intrusive - /boost/move//boost_move - /boost/static_assert//boost_static_assert - /boost/type_traits//boost_type_traits - /boost/winapi//boost_winapi include ; explicit - [ alias boost_interprocess ] + [ alias boost_interprocess : : : : $(boost_dependencies) ] [ alias all : boost_interprocess example test ] ; call-if : boost-library interprocess ; + From e70e0757a86d77f102c76594fc8e9258b27baa22 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 28 Jul 2024 11:00:08 -0500 Subject: [PATCH 11/15] Adjust doc build to avoid boost-root references. --- doc/Jamfile.v2 | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/Jamfile.v2 b/doc/Jamfile.v2 index b6d81f2d6..d8b52e275 100644 --- a/doc/Jamfile.v2 +++ b/doc/Jamfile.v2 @@ -15,15 +15,15 @@ path-constant here : . ; doxygen autodoc : - [ glob ../../../boost/interprocess/*.hpp ] - [ glob ../../../boost/interprocess/allocators/*.hpp ] - [ glob ../../../boost/interprocess/containers/*.hpp ] - [ glob ../../../boost/interprocess/indexes/*.hpp ] - [ glob ../../../boost/interprocess/ipc/*.hpp ] - [ glob ../../../boost/interprocess/mem_algo/*.hpp ] - [ glob ../../../boost/interprocess/smart_ptr/*.hpp ] - [ glob ../../../boost/interprocess/streams/*.hpp ] - [ glob ../../../boost/interprocess/sync/*.hpp ] + [ glob ../include/boost/interprocess/*.hpp ] + [ glob ../include/boost/interprocess/allocators/*.hpp ] + [ glob ../include/boost/interprocess/containers/*.hpp ] + [ glob ../include/boost/interprocess/indexes/*.hpp ] + [ glob ../include/boost/interprocess/ipc/*.hpp ] + [ glob ../include/boost/interprocess/mem_algo/*.hpp ] + [ glob ../include/boost/interprocess/smart_ptr/*.hpp ] + [ glob ../include/boost/interprocess/streams/*.hpp ] + [ glob ../include/boost/interprocess/sync/*.hpp ] : EXTRACT_ALL=NO HIDE_UNDOC_MEMBERS=YES From 2685610dd543d1f740edb0153ada9155399738a5 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sun, 28 Jul 2024 22:45:48 -0500 Subject: [PATCH 12/15] Adjust doc build to avoid boost-root references. --- doc/interprocess.qbk | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/interprocess.qbk b/doc/interprocess.qbk index 63544173c..887f308c6 100644 --- a/doc/interprocess.qbk +++ b/doc/interprocess.qbk @@ -4288,7 +4288,7 @@ be also useful to build small databases for embedded systems limiting the size o the used memory to a predefined memory chunk, instead of letting the database fragment the heap memory. -[*Note:] The external memory supplied by the user shall be aligned to the maximum value between +[*Note:] The external memory supplied by the user shall be aligned to the maximum value between `alignof(max_align_t)` and the alignment of the strictest over-aligned type to be built inside that memory. @@ -6585,7 +6585,7 @@ will manage the index. `segment_manager` will define interesting internal types For example, the index type `flat_map_index` based in `boost::interprocess::flat_map` is just defined as: -[import ../../../boost/interprocess/indexes/flat_map_index.hpp] +[import ../include/boost/interprocess/indexes/flat_map_index.hpp] [flat_map_index] @@ -6679,8 +6679,8 @@ define `BOOST_INTERPROCESS_SHARED_DIR_FUNC` and implement the following function [c++] - namespace boost { - namespace interprocess { + namespace boost { + namespace interprocess { namespace ipcdetail { void get_shared_dir(std::string &shared_dir); //wstring overload is only needed for Windows systems @@ -6708,13 +6708,13 @@ those heavy headers. On systems without POSIX shared memory support, shared memory objects are implemented as memory mapped files, using a directory placed in "/tmp" that can include (if `BOOST_INTERPROCESS_HAS_KERNEL_BOOTTIME` is defined) the last bootup time (if the OS supports it). As in Windows, in any error case obtaining this directory the library throws an error . When your shared directory is a compile-time constant, -define `BOOST_INTERPROCESS_SHARED_DIR_PATH` when using the library and that path will be used to place shared memory files. When you have -to determine the shared directory at runtime, define `BOOST_INTERPROCESS_SHARED_DIR_FUNC` and implement the function +define `BOOST_INTERPROCESS_SHARED_DIR_PATH` when using the library and that path will be used to place shared memory files. When you have +to determine the shared directory at runtime, define `BOOST_INTERPROCESS_SHARED_DIR_FUNC` and implement the function [c++] - namespace boost { - namespace interprocess { + namespace boost { + namespace interprocess { namespace ipcdetail { void get_shared_dir(std::string &shared_dir); } @@ -7103,7 +7103,7 @@ thank them: * [@https://svn.boost.org/trac/boost/ticket/10229 Trac #10229 (['"Compiling errors in interprocess\detail\os_file_functions.hpp"])]. * [@https://svn.boost.org/trac/boost/ticket/10506 Trac #10506 (['"Infinite loop in create_or_open_file"])]. * [@https://github.com/boostorg/interprocess/pull/11 GitHub Pull #11 (['"Compile fix for BOOST_USE_WINDOWS_H"])]. - + * Reorganized Doxygen marks to obtain a better header reference. [endsect] From ac5380d41a7048ade87f5c208a25d0e18593fdfe Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 3 Aug 2024 15:40:59 -0500 Subject: [PATCH 13/15] Update build deps. --- example/Jamfile.v2 | 1 + 1 file changed, 1 insertion(+) diff --git a/example/Jamfile.v2 b/example/Jamfile.v2 index 2b86776d3..6a306f2e4 100644 --- a/example/Jamfile.v2 +++ b/example/Jamfile.v2 @@ -18,6 +18,7 @@ import testing ; # the run rules, which we can pass on to the test_suite rule: project : requirements + /boost/interprocess//boost_interprocess acc:-lrt acc-pa_risc:-lrt gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32" From de388cff30d2ac7a066e3c7afa015305a63e356a Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 3 Aug 2024 15:44:12 -0500 Subject: [PATCH 14/15] Update build deps. --- test/Jamfile.v2 | 1 + 1 file changed, 1 insertion(+) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 39b73ef61..02db51629 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -16,6 +16,7 @@ # the run rules, which we can pass on to the test_suite rule: project : requirements + /boost/interprocess//boost_interprocess /boost/date_time//boost_date_time /boost/multi_index//boost_multi_index acc:-lrt From 62acbe09cd49344bbeb49892cc51d889caa86b76 Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Wed, 14 Aug 2024 23:38:01 -0500 Subject: [PATCH 15/15] Update build deps. --- test/Jamfile.v2 | 1 - 1 file changed, 1 deletion(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 02db51629..c03c32ca9 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -18,7 +18,6 @@ project : requirements /boost/interprocess//boost_interprocess /boost/date_time//boost_date_time - /boost/multi_index//boost_multi_index acc:-lrt acc-pa_risc:-lrt gcc,windows:"-lole32 -loleaut32 -lpsapi -ladvapi32"