passenger 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +32 -2
- data/Rakefile +6 -13
- data/bin/passenger-install-apache2-module +15 -19
- data/bin/passenger-install-nginx-module +42 -44
- data/bin/passenger-status +9 -10
- data/build/common_library.rb +4 -4
- data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +1 -1
- data/build/test_basics.rb +4 -3
- data/dev/copy_boost_headers +54 -40
- data/dev/ruby_server.rb +1 -1
- data/src/agent/Core/Config.h +1 -1
- data/src/agent/Core/Controller/Config.h +1 -1
- data/src/agent/Watchdog/Config.h +1 -1
- data/src/cxx_supportlib/Constants.h +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +8 -1
- data/src/cxx_supportlib/vendor-modified/boost/assert.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +94 -110
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +14 -14
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_flag_impl.hpp +52 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +641 -285
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +593 -260
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +37 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/cas_based_exchange.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/chrono.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +16 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +25 -34
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch32.hpp +204 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_aarch64.hpp +251 -122
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_alpha.hpp +56 -56
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_arm.hpp +129 -129
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +253 -125
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_sparc.hpp +25 -25
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +193 -126
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_arm.hpp +57 -57
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +96 -97
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +24 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_cas_based.hpp +10 -10
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_atomic.hpp +27 -24
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_gcc_sync.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_linux_arm.hpp +17 -17
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extending_cas_based_arithmetic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +12 -12
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +21 -21
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +30 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch32.hpp +170 -98
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_aarch64.hpp +209 -119
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_arm.hpp +95 -95
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +148 -76
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_x86.hpp +293 -123
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_generic.hpp +87 -71
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_msvc_x86.hpp +88 -88
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch32.hpp +4 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_aarch64.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_alpha.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_arm.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_ppc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_sparc.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_gcc_x86.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_arm.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_arch_ops_msvc_x86.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_operations_emulated.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_atomic.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_gcc_sync.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_linux_arm.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_generic.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +110 -49
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_atomic_memory_order_utils.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/has_posix_clock_traits.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/int_sizes.hpp +26 -32
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/integral_conversions.hpp +15 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/interlocked.hpp +69 -30
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/intptr.hpp +8 -8
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/lock_pool.hpp +51 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/memory_order_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/once_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_arm_common.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/ops_gcc_ppc_common.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/storage_traits.hpp +31 -31
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +2 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +2 -5
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_floating_point.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_iec559.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_integral.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_copyable.hpp +20 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_trivially_default_constructible.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_signed.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/make_unsigned.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +90 -16
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_dragonfly_umtx.hpp +80 -11
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +160 -15
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_freebsd_umtx.hpp +327 -38
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_futex.hpp +276 -33
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_generic.hpp +260 -20
- data/src/cxx_supportlib/vendor-modified/boost/atomic/fences.hpp +4 -3
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +14 -18
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_flag.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +13 -13
- data/src/cxx_supportlib/vendor-modified/boost/atomic/posix_clock_traits_fwd.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/thread_pause.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic/wait_result.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/atomic.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +5 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +108 -41
- data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +1235 -1009
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +3 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/algorithm.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_lib.h +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +23 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +0 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +88 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/operator_new_helpers.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +72 -13
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/std_fwd.hpp +13 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +8 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +37 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +72 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +3 -10
- data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +54 -23
- data/src/cxx_supportlib/vendor-modified/boost/container/pmr/devector.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +32 -5
- data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +27 -2
- data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +37 -17
- data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +23 -1
- data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +41 -20
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +5 -8
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_is_avalanching.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +29 -29
- data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +15 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/demangle.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/assert.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_sleep.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/static_assert.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +16 -10
- data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +35 -27
- data/src/cxx_supportlib/vendor-modified/boost/core/scoped_enum.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +20 -9
- data/src/cxx_supportlib/vendor-modified/boost/cregex.hpp +0 -5
- data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +8 -0
- data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/foreach.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_rebind.hpp +9 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +43 -64
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -5
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/eval_if_default.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +103 -117
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/conjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/disjunction.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/negation.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/type_traits/type_identity.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/distance.hpp +32 -38
- data/src/cxx_supportlib/vendor-modified/boost/iterator/enable_if_convertible.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/interoperable.hpp +22 -34
- data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +16 -16
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_adaptor.hpp +162 -309
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_categories.hpp +52 -161
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +3 -11
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +804 -977
- data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_traits.hpp +24 -17
- data/src/cxx_supportlib/vendor-modified/boost/iterator/min_category.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/iterator/minimum_category.hpp +11 -73
- data/src/cxx_supportlib/vendor-modified/boost/iterator/reverse_iterator.hpp +56 -57
- data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +123 -156
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +36 -33
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +43 -50
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +23 -27
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +10 -11
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +6 -7
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/type_traits.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +8 -9
- data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +1 -12
- data/src/cxx_supportlib/vendor-modified/boost/memory_order.hpp +8 -26
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +6 -0
- data/src/cxx_supportlib/vendor-modified/boost/move/detail/unique_ptr_meta_utils.hpp +2 -2
- data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +11 -44
- data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +33 -1
- data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +4 -8
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/na_assert.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/ptr_to_ref.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +2 -6
- data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +0 -13
- data/src/cxx_supportlib/vendor-modified/boost/preprocessor/tuple/limits/to_seq_256.hpp +190 -190
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +12 -2
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/size.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/xoshiro_base.hpp +472 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/random/generalized_inverse_gaussian_distribution.hpp +339 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +12 -14
- data/src/cxx_supportlib/vendor-modified/boost/random/inverse_gaussian_distribution.hpp +226 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/mixmax.hpp +63 -63
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +7 -10
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +8 -11
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +1 -3
- data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +1 -4
- data/src/cxx_supportlib/vendor-modified/boost/random/xoshiro.hpp +488 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/concepts.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/has_member_size.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/detail/msvc_has_iterator_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/has_range_iterator.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/range/iterator_range_core.hpp +4 -1
- data/src/cxx_supportlib/vendor-modified/boost/range/size_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/concepts.hpp +35 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/config.hpp +18 -101
- data/src/cxx_supportlib/vendor-modified/boost/regex/pattern_except.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/object_cache.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/unicode_iterator.hpp +0 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/regex_traits.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/user.hpp +4 -10
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex.hpp +63 -17
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +71 -16
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +22 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/c_regex_traits.hpp +11 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/char_regex_traits.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cpp_regex_traits.hpp +11 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/cregex.hpp +2 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/error_type.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +40 -38
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_category.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/iterator_traits.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_flags.hpp +39 -37
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/match_results.hpp +46 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +4 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/object_cache.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher.hpp +57 -8
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +21 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +18 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regbase.hpp +4 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex.hpp +6 -6
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_format.hpp +23 -18
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_fwd.hpp +9 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_grep.hpp +9 -5
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_iterator.hpp +11 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_match.hpp +10 -7
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_merge.hpp +4 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_raw_buffer.hpp +3 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_replace.hpp +6 -2
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_search.hpp +12 -9
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_split.hpp +6 -3
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_token_iterator.hpp +16 -11
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_traits_defaults.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +2 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/states.hpp +7 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/sub_match.hpp +54 -49
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/syntax_type.hpp +64 -62
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_iterator.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/u32regex_token_iterator.hpp +12 -0
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/unicode_iterator.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +3 -1
- data/src/cxx_supportlib/vendor-modified/boost/regex.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/regex_fwd.hpp +0 -4
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -43
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +7 -7
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +2 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -64
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +3 -3
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +0 -77
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_cxx20_constexpr.hpp +37 -0
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +5 -28
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +41 -40
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +0 -18
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +1 -1
- data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +1 -0
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/integral_constant.hpp +8 -6
- data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +31 -10
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +34 -8
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +6 -4
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +9 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +5 -5
- data/src/cxx_supportlib/vendor-modified/boost/unordered/{unordered_printers.hpp → detail/unordered_printers.hpp} +34 -36
- data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +6 -49
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +6 -1
- data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
- data/src/nginx_module/ContentHandler.c +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +3 -5
- data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +5 -3
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +6 -13
- data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +29 -30
- data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -3
- data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/json.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +1 -1
- data/src/ruby_supportlib/phusion_passenger.rb +8 -8
- metadata +26 -99
- data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +0 -47
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_posix.hpp +0 -41
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +0 -34
- data/src/cxx_supportlib/vendor-modified/boost/align/detail/is_alignment.hpp +0 -28
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +0 -68
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/conditional.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/integral_constant.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_function.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +0 -46
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +0 -42
- data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +0 -64
- data/src/cxx_supportlib/vendor-modified/boost/cerrno.hpp +0 -15
- data/src/cxx_supportlib/vendor-modified/boost/detail/indirect_traits.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/detail/select_type.hpp +0 -36
- data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/internals.hpp +0 -35
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex.cpp +0 -120
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/regex_debug.cpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/static_mutex.cpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/libs/system/src/error_code.cpp +0 -31
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/borland.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/regex/config/cwchar.hpp +0 -207
- data/src/cxx_supportlib/vendor-modified/boost/regex/pending/static_mutex.hpp +0 -182
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex.hpp +0 -797
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_creator.hpp +0 -1598
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +0 -3174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/c_regex_traits.hpp +0 -511
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/char_regex_traits.hpp +0 -81
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cpp_regex_traits.hpp +0 -1237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/cregex.hpp +0 -213
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/error_type.hpp +0 -59
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +0 -1516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/indexed_bit_flag.hpp +0 -54
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_category.hpp +0 -91
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/iterator_traits.hpp +0 -135
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_flags.hpp +0 -161
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/match_results.hpp +0 -716
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/mem_block_cache.hpp +0 -183
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/object_cache.hpp +0 -171
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher.hpp +0 -645
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_common.hpp +0 -1030
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +0 -1947
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_recursive.hpp +0 -1131
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/primary_transform.hpp +0 -146
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/protected_call.hpp +0 -83
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regbase.hpp +0 -180
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex.hpp +0 -166
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_format.hpp +0 -1158
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_fwd.hpp +0 -73
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_grep.hpp +0 -155
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_iterator.hpp +0 -195
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_match.hpp +0 -382
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_merge.hpp +0 -93
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_raw_buffer.hpp +0 -241
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_replace.hpp +0 -99
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_search.hpp +0 -217
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_split.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_token_iterator.hpp +0 -327
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits.hpp +0 -189
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_traits_defaults.hpp +0 -997
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +0 -237
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/states.hpp +0 -321
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/sub_match.hpp +0 -516
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/syntax_type.hpp +0 -105
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_iterator.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/u32regex_token_iterator.hpp +0 -360
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/unicode_iterator.hpp +0 -871
- data/src/cxx_supportlib/vendor-modified/boost/regex/v4/w32_regex_traits.hpp +0 -1229
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc.hpp +0 -79
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_atomic.hpp +0 -63
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp +0 -88
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_pt.hpp +0 -104
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_spin.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count_sync.hpp +0 -72
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_aix.hpp +0 -152
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +0 -185
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +0 -148
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp +0 -170
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp +0 -200
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp +0 -194
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp +0 -179
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp +0 -186
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_pt.hpp +0 -147
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp +0 -174
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_spin.hpp +0 -141
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_sync.hpp +0 -165
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp +0 -163
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +0 -30
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_sync_intrinsics.hpp +0 -69
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_arm.hpp +0 -128
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_nt.hpp +0 -96
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_pt.hpp +0 -86
- data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_sync.hpp +0 -94
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Matt Borland 2022 - 2025.
|
|
3
|
+
* Distributed under the Boost Software License, Version 1.0. (See
|
|
4
|
+
* accompanying file LICENSE_1_0.txt or copy at
|
|
5
|
+
* http://www.boost.org/LICENSE_1_0.txt)
|
|
6
|
+
*
|
|
7
|
+
* See http://www.boost.org for most recent version including documentation.
|
|
8
|
+
*
|
|
9
|
+
* $Id$
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#ifndef BOOST_RANDOM_XOSHIRO_HPP
|
|
13
|
+
#define BOOST_RANDOM_XOSHIRO_HPP
|
|
14
|
+
|
|
15
|
+
#include <boost/random/detail/config.hpp>
|
|
16
|
+
#include <boost/random/detail/xoshiro_base.hpp>
|
|
17
|
+
#include <boost/core/bit.hpp>
|
|
18
|
+
#include <array>
|
|
19
|
+
#include <cstdint>
|
|
20
|
+
|
|
21
|
+
namespace boost {
|
|
22
|
+
namespace random {
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This is xoshiro256++ 1.0, one of our all-purpose, rock-solid generators.
|
|
26
|
+
* It has excellent (sub-ns) speed, a state (256 bits) that is large
|
|
27
|
+
* enough for any parallel application, and it passes all tests we are
|
|
28
|
+
* aware of.
|
|
29
|
+
*
|
|
30
|
+
* For generating just floating-point numbers, xoshiro256+ is even faster.
|
|
31
|
+
*/
|
|
32
|
+
class xoshiro256pp final : public detail::xoshiro_base<xoshiro256pp, 4>
|
|
33
|
+
{
|
|
34
|
+
private:
|
|
35
|
+
|
|
36
|
+
using Base = detail::xoshiro_base<xoshiro256pp, 4>;
|
|
37
|
+
|
|
38
|
+
public:
|
|
39
|
+
|
|
40
|
+
using Base::Base;
|
|
41
|
+
|
|
42
|
+
inline result_type next() noexcept
|
|
43
|
+
{
|
|
44
|
+
const std::uint64_t result = boost::core::rotl(state_[0] + state_[3], 23) + state_[0];
|
|
45
|
+
const std::uint64_t t = state_[1] << 17;
|
|
46
|
+
|
|
47
|
+
state_[2] ^= state_[0];
|
|
48
|
+
state_[3] ^= state_[1];
|
|
49
|
+
state_[1] ^= state_[2];
|
|
50
|
+
state_[0] ^= state_[3];
|
|
51
|
+
|
|
52
|
+
state_[2] ^= t;
|
|
53
|
+
|
|
54
|
+
state_[3] = boost::core::rotl(state_[3], 45);
|
|
55
|
+
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* This is xoshiro256+ 1.0, our best and fastest generator for floating-point
|
|
62
|
+
* numbers. We suggest to use its upper bits for floating-point
|
|
63
|
+
* generation, as it is slightly faster than xoshiro256++/xoshiro256**. It
|
|
64
|
+
* passes all tests we are aware of except for the lowest three bits,
|
|
65
|
+
* which might fail linearity tests (and just those), so if low linear
|
|
66
|
+
* complexity is not considered an issue (as it is usually the case) it
|
|
67
|
+
* can be used to generate 64-bit outputs, too.
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
class xoshiro256d final : public detail::xoshiro_base<xoshiro256d, 4, double>
|
|
71
|
+
{
|
|
72
|
+
private:
|
|
73
|
+
|
|
74
|
+
using Base = detail::xoshiro_base<xoshiro256d, 4, double>;
|
|
75
|
+
|
|
76
|
+
public:
|
|
77
|
+
|
|
78
|
+
using Base::Base;
|
|
79
|
+
|
|
80
|
+
inline std::uint64_t next_int() noexcept
|
|
81
|
+
{
|
|
82
|
+
const std::uint64_t result = state_[0] + state_[3];
|
|
83
|
+
const std::uint64_t t = state_[1] << 17;
|
|
84
|
+
|
|
85
|
+
state_[2] ^= state_[0];
|
|
86
|
+
state_[3] ^= state_[1];
|
|
87
|
+
state_[1] ^= state_[2];
|
|
88
|
+
state_[0] ^= state_[3];
|
|
89
|
+
|
|
90
|
+
state_[2] ^= t;
|
|
91
|
+
|
|
92
|
+
state_[3] = boost::core::rotl(state_[3], 45);
|
|
93
|
+
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
inline result_type next() noexcept
|
|
98
|
+
{
|
|
99
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
100
|
+
return static_cast<double>((next_int() >> 11)) * 0x1.0p-53;
|
|
101
|
+
#else
|
|
102
|
+
return static_cast<double>((next_int() >> 11)) * 1.11022302462515654e-16;
|
|
103
|
+
#endif
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static constexpr result_type (min)() noexcept
|
|
107
|
+
{
|
|
108
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
109
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 0x1.0p-53;
|
|
110
|
+
#else
|
|
111
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 1.11022302462515654e-16;
|
|
112
|
+
#endif
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
static constexpr result_type (max)() noexcept
|
|
116
|
+
{
|
|
117
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
118
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::max)()) * 0x1.0p-53;
|
|
119
|
+
#else
|
|
120
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::max)()) * 1.11022302462515654e-16;
|
|
121
|
+
#endif
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* This is xoshiro256** 1.0, one of our all-purpose, rock-solid
|
|
127
|
+
* generators. It has excellent (sub-ns) speed, a state (256 bits) that is
|
|
128
|
+
* large enough for any parallel application, and it passes all tests we
|
|
129
|
+
* are aware of.
|
|
130
|
+
*
|
|
131
|
+
* For generating just floating-point numbers, xoshiro256+ is even faster.
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
class xoshiro256mm final : public detail::xoshiro_base<xoshiro256mm, 4>
|
|
135
|
+
{
|
|
136
|
+
private:
|
|
137
|
+
|
|
138
|
+
using Base = detail::xoshiro_base<xoshiro256mm, 4>;
|
|
139
|
+
|
|
140
|
+
public:
|
|
141
|
+
|
|
142
|
+
using Base::Base;
|
|
143
|
+
|
|
144
|
+
inline result_type next() noexcept
|
|
145
|
+
{
|
|
146
|
+
const std::uint64_t result = boost::core::rotl(state_[1] * 5, 7) * 9U;
|
|
147
|
+
const std::uint64_t t = state_[1] << 17;
|
|
148
|
+
|
|
149
|
+
state_[2] ^= state_[0];
|
|
150
|
+
state_[3] ^= state_[1];
|
|
151
|
+
state_[1] ^= state_[2];
|
|
152
|
+
state_[0] ^= state_[3];
|
|
153
|
+
|
|
154
|
+
state_[2] ^= t;
|
|
155
|
+
|
|
156
|
+
state_[3] = boost::core::rotl(state_[3], 45);
|
|
157
|
+
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* This is xoshiro512++ 1.0, one of our all-purpose, rock-solid
|
|
164
|
+
* generators. It has excellent (about 1ns) speed, a state (512 bits) that
|
|
165
|
+
* is large enough for any parallel application, and it passes all tests
|
|
166
|
+
* we are aware of.
|
|
167
|
+
*
|
|
168
|
+
* For generating just floating-point numbers, xoshiro512+ is even faster.
|
|
169
|
+
*
|
|
170
|
+
* The state must be seeded so that it is not everywhere zero. If you have
|
|
171
|
+
* a 64-bit seed, we suggest to seed a splitmix64 generator and use its
|
|
172
|
+
* output to fill s.
|
|
173
|
+
*/
|
|
174
|
+
|
|
175
|
+
class xoshiro512pp final : public detail::xoshiro_base<xoshiro512pp, 8>
|
|
176
|
+
{
|
|
177
|
+
private:
|
|
178
|
+
|
|
179
|
+
using Base = detail::xoshiro_base<xoshiro512pp, 8>;
|
|
180
|
+
|
|
181
|
+
public:
|
|
182
|
+
|
|
183
|
+
using Base::Base;
|
|
184
|
+
|
|
185
|
+
inline result_type next() noexcept
|
|
186
|
+
{
|
|
187
|
+
const std::uint64_t result = boost::core::rotl(state_[0] + state_[2], 17) + state_[2];
|
|
188
|
+
|
|
189
|
+
const std::uint64_t t = state_[1] << 11;
|
|
190
|
+
|
|
191
|
+
state_[2] ^= state_[0];
|
|
192
|
+
state_[5] ^= state_[1];
|
|
193
|
+
state_[1] ^= state_[2];
|
|
194
|
+
state_[7] ^= state_[3];
|
|
195
|
+
state_[3] ^= state_[4];
|
|
196
|
+
state_[4] ^= state_[5];
|
|
197
|
+
state_[0] ^= state_[6];
|
|
198
|
+
state_[6] ^= state_[7];
|
|
199
|
+
|
|
200
|
+
state_[6] ^= t;
|
|
201
|
+
|
|
202
|
+
state_[7] = boost::core::rotl(state_[7], 21);
|
|
203
|
+
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* This is xoshiro512** 1.0, one of our all-purpose, rock-solid generators
|
|
210
|
+
* with increased state size. It has excellent (about 1ns) speed, a state
|
|
211
|
+
* (512 bits) that is large enough for any parallel application, and it
|
|
212
|
+
* passes all tests we are aware of.
|
|
213
|
+
*
|
|
214
|
+
* For generating just floating-point numbers, xoshiro512+ is even faster.
|
|
215
|
+
*
|
|
216
|
+
* The state must be seeded so that it is not everywhere zero. If you have
|
|
217
|
+
* a 64-bit seed, we suggest to seed a splitmix64 generator and use its
|
|
218
|
+
* output to fill s.
|
|
219
|
+
*/
|
|
220
|
+
|
|
221
|
+
class xoshiro512mm final : public detail::xoshiro_base<xoshiro512mm, 8>
|
|
222
|
+
{
|
|
223
|
+
private:
|
|
224
|
+
|
|
225
|
+
using Base = detail::xoshiro_base<xoshiro512mm, 8>;
|
|
226
|
+
|
|
227
|
+
public:
|
|
228
|
+
|
|
229
|
+
using Base::Base;
|
|
230
|
+
|
|
231
|
+
inline result_type next() noexcept
|
|
232
|
+
{
|
|
233
|
+
const std::uint64_t result = boost::core::rotl(state_[1] * 5, 7) * 9;
|
|
234
|
+
|
|
235
|
+
const std::uint64_t t = state_[1] << 11;
|
|
236
|
+
|
|
237
|
+
state_[2] ^= state_[0];
|
|
238
|
+
state_[5] ^= state_[1];
|
|
239
|
+
state_[1] ^= state_[2];
|
|
240
|
+
state_[7] ^= state_[3];
|
|
241
|
+
state_[3] ^= state_[4];
|
|
242
|
+
state_[4] ^= state_[5];
|
|
243
|
+
state_[0] ^= state_[6];
|
|
244
|
+
state_[6] ^= state_[7];
|
|
245
|
+
|
|
246
|
+
state_[6] ^= t;
|
|
247
|
+
|
|
248
|
+
state_[7] = boost::core::rotl(state_[7], 21);
|
|
249
|
+
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* This is xoshiro512+ 1.0, our generator for floating-point numbers with
|
|
256
|
+
* increased state size. We suggest to use its upper bits for
|
|
257
|
+
* floating-point generation, as it is slightly faster than xoshiro512**.
|
|
258
|
+
* It passes all tests we are aware of except for the lowest three bits,
|
|
259
|
+
* which might fail linearity tests (and just those), so if low linear
|
|
260
|
+
* complexity is not considered an issue (as it is usually the case) it
|
|
261
|
+
* can be used to generate 64-bit outputs, too.
|
|
262
|
+
*
|
|
263
|
+
* We suggest to use a sign test to extract a random Boolean value, and
|
|
264
|
+
* right shifts to extract subsets of bits.
|
|
265
|
+
*
|
|
266
|
+
* The state must be seeded so that it is not everywhere zero. If you have
|
|
267
|
+
* a 64-bit seed, we suggest to seed a splitmix64 generator and use its
|
|
268
|
+
* output to fill s.
|
|
269
|
+
*/
|
|
270
|
+
|
|
271
|
+
class xoshiro512d final : public detail::xoshiro_base<xoshiro512d, 8, double>
|
|
272
|
+
{
|
|
273
|
+
private:
|
|
274
|
+
|
|
275
|
+
using Base = detail::xoshiro_base<xoshiro512d, 8, double>;
|
|
276
|
+
|
|
277
|
+
public:
|
|
278
|
+
|
|
279
|
+
using Base::Base;
|
|
280
|
+
|
|
281
|
+
inline std::uint64_t next_int() noexcept
|
|
282
|
+
{
|
|
283
|
+
const std::uint64_t result = state_[0] + state_[2];
|
|
284
|
+
|
|
285
|
+
const std::uint64_t t = state_[1] << 11;
|
|
286
|
+
|
|
287
|
+
state_[2] ^= state_[0];
|
|
288
|
+
state_[5] ^= state_[1];
|
|
289
|
+
state_[1] ^= state_[2];
|
|
290
|
+
state_[7] ^= state_[3];
|
|
291
|
+
state_[3] ^= state_[4];
|
|
292
|
+
state_[4] ^= state_[5];
|
|
293
|
+
state_[0] ^= state_[6];
|
|
294
|
+
state_[6] ^= state_[7];
|
|
295
|
+
|
|
296
|
+
state_[6] ^= t;
|
|
297
|
+
|
|
298
|
+
state_[7] = boost::core::rotl(state_[7], 21);
|
|
299
|
+
|
|
300
|
+
return result;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
inline result_type next() noexcept
|
|
304
|
+
{
|
|
305
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
306
|
+
return static_cast<double>((next_int() >> 11)) * 0x1.0p-53;
|
|
307
|
+
#else
|
|
308
|
+
return static_cast<double>((next_int() >> 11)) * 1.11022302462515654e-16;
|
|
309
|
+
#endif
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
static constexpr result_type (min)() noexcept
|
|
313
|
+
{
|
|
314
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
315
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 0x1.0p-53;
|
|
316
|
+
#else
|
|
317
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::min)() >> 11) * 1.11022302462515654e-16;
|
|
318
|
+
#endif
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
static constexpr result_type (max)() noexcept
|
|
322
|
+
{
|
|
323
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
324
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::max)() >> 11) * 0x1.0p-53;
|
|
325
|
+
#else
|
|
326
|
+
return static_cast<double>((std::numeric_limits<std::uint64_t>::max)() >> 11) * 1.11022302462515654e-16;
|
|
327
|
+
#endif
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* This is xoshiro128++ 1.0, one of our 32-bit all-purpose, rock-solid
|
|
333
|
+
* generators. It has excellent speed, a state size (128 bits) that is
|
|
334
|
+
* large enough for mild parallelism, and it passes all tests we are aware
|
|
335
|
+
* of.
|
|
336
|
+
*
|
|
337
|
+
* For generating just single-precision (i.e., 32-bit) floating-point
|
|
338
|
+
* numbers, xoshiro128+ is even faster.
|
|
339
|
+
*
|
|
340
|
+
* The state must be seeded so that it is not everywhere zero.
|
|
341
|
+
*/
|
|
342
|
+
class xoshiro128pp final : public detail::xoshiro_base<xoshiro128pp, 4, std::uint32_t, std::uint32_t>
|
|
343
|
+
{
|
|
344
|
+
private:
|
|
345
|
+
|
|
346
|
+
using Base = detail::xoshiro_base<xoshiro128pp, 4, std::uint32_t, std::uint32_t>;
|
|
347
|
+
|
|
348
|
+
public:
|
|
349
|
+
|
|
350
|
+
using Base::Base;
|
|
351
|
+
|
|
352
|
+
inline result_type next() noexcept
|
|
353
|
+
{
|
|
354
|
+
const std::uint32_t result = boost::core::rotl(state_[0] + state_[3], 7) + state_[0];
|
|
355
|
+
|
|
356
|
+
const std::uint32_t t = state_[1] << 9;
|
|
357
|
+
|
|
358
|
+
state_[2] ^= state_[0];
|
|
359
|
+
state_[3] ^= state_[1];
|
|
360
|
+
state_[1] ^= state_[2];
|
|
361
|
+
state_[0] ^= state_[3];
|
|
362
|
+
|
|
363
|
+
state_[2] ^= t;
|
|
364
|
+
|
|
365
|
+
state_[3] = boost::core::rotl(state_[3], 11);
|
|
366
|
+
|
|
367
|
+
return result;
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* This is xoshiro128** 1.1, one of our 32-bit all-purpose, rock-solid
|
|
373
|
+
* generators. It has excellent speed, a state size (128 bits) that is
|
|
374
|
+
* large enough for mild parallelism, and it passes all tests we are aware
|
|
375
|
+
* of.
|
|
376
|
+
*
|
|
377
|
+
* Note that version 1.0 had mistakenly state_[0] instead of state_[1] as state
|
|
378
|
+
* word passed to the scrambler.
|
|
379
|
+
*
|
|
380
|
+
* For generating just single-precision (i.e., 32-bit) floating-point
|
|
381
|
+
* numbers, xoshiro128+ is even faster.
|
|
382
|
+
*
|
|
383
|
+
* The state must be seeded so that it is not everywhere zero.
|
|
384
|
+
*/
|
|
385
|
+
class xoshiro128mm final : public detail::xoshiro_base<xoshiro128mm, 4, std::uint32_t, std::uint32_t>
|
|
386
|
+
{
|
|
387
|
+
private:
|
|
388
|
+
|
|
389
|
+
using Base = detail::xoshiro_base<xoshiro128mm, 4, std::uint32_t, std::uint32_t>;
|
|
390
|
+
|
|
391
|
+
public:
|
|
392
|
+
|
|
393
|
+
using Base::Base;
|
|
394
|
+
|
|
395
|
+
inline result_type next() noexcept
|
|
396
|
+
{
|
|
397
|
+
const std::uint32_t result = boost::core::rotl(state_[1] * 5, 7) * 9;
|
|
398
|
+
|
|
399
|
+
const std::uint32_t t = state_[1] << 9;
|
|
400
|
+
|
|
401
|
+
state_[2] ^= state_[0];
|
|
402
|
+
state_[3] ^= state_[1];
|
|
403
|
+
state_[1] ^= state_[2];
|
|
404
|
+
state_[0] ^= state_[3];
|
|
405
|
+
|
|
406
|
+
state_[2] ^= t;
|
|
407
|
+
|
|
408
|
+
state_[3] = boost::core::rotl(state_[3], 11);
|
|
409
|
+
|
|
410
|
+
return result;
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
/**
|
|
415
|
+
* This is xoshiro128+ 1.0, our best and fastest 32-bit generator for 32-bit
|
|
416
|
+
* floating-point numbers. We suggest to use its upper bits for
|
|
417
|
+
* floating-point generation, as it is slightly faster than xoshiro128**.
|
|
418
|
+
* It passes all tests we are aware of except for
|
|
419
|
+
* linearity tests, as the lowest four bits have low linear complexity, so
|
|
420
|
+
* if low linear complexity is not considered an issue (as it is usually
|
|
421
|
+
* the case) it can be used to generate 32-bit outputs, too.
|
|
422
|
+
*
|
|
423
|
+
* We suggest to use a sign test to extract a random Boolean value, and
|
|
424
|
+
* right shifts to extract subsets of bits.
|
|
425
|
+
*
|
|
426
|
+
* The state must be seeded so that it is not everywhere zero.
|
|
427
|
+
*/
|
|
428
|
+
|
|
429
|
+
class xoshiro128f final : public detail::xoshiro_base<xoshiro128f, 4, float, std::uint32_t>
|
|
430
|
+
{
|
|
431
|
+
private:
|
|
432
|
+
|
|
433
|
+
using Base = detail::xoshiro_base<xoshiro128f, 4, float, std::uint32_t>;
|
|
434
|
+
|
|
435
|
+
public:
|
|
436
|
+
|
|
437
|
+
using Base::Base;
|
|
438
|
+
|
|
439
|
+
inline std::uint32_t next_int() noexcept
|
|
440
|
+
{
|
|
441
|
+
const std::uint32_t result = state_[0] + state_[3];
|
|
442
|
+
|
|
443
|
+
const std::uint32_t t = state_[1] << 9;
|
|
444
|
+
|
|
445
|
+
state_[2] ^= state_[0];
|
|
446
|
+
state_[3] ^= state_[1];
|
|
447
|
+
state_[1] ^= state_[2];
|
|
448
|
+
state_[0] ^= state_[3];
|
|
449
|
+
|
|
450
|
+
state_[2] ^= t;
|
|
451
|
+
|
|
452
|
+
state_[3] = boost::core::rotl(state_[3], 11);
|
|
453
|
+
|
|
454
|
+
return result;
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
inline result_type next() noexcept
|
|
458
|
+
{
|
|
459
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
460
|
+
return static_cast<float>((next_int() >> 8)) * 0x1.0p-24f;
|
|
461
|
+
#else
|
|
462
|
+
return static_cast<float>((next_int() >> 8)) * 5.9604645e-08f;
|
|
463
|
+
#endif
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
static constexpr result_type (min)() noexcept
|
|
467
|
+
{
|
|
468
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
469
|
+
return static_cast<float>((std::numeric_limits<std::uint32_t>::min)() >> 8) * 0x1.0p-24f;
|
|
470
|
+
#else
|
|
471
|
+
return static_cast<float>((std::numeric_limits<std::uint64_t>::min)() >> 8) * 5.9604645e-08f;
|
|
472
|
+
#endif
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
static constexpr result_type (max)() noexcept
|
|
476
|
+
{
|
|
477
|
+
#ifdef BOOST_RANDOM_HAS_HEX_FLOAT
|
|
478
|
+
return static_cast<float>((std::numeric_limits<std::uint32_t>::max)() >> 8) * 0x1.0p-24f;
|
|
479
|
+
#else
|
|
480
|
+
return static_cast<float>((std::numeric_limits<std::uint64_t>::max)() >> 8) * 5.9604645e-08f;
|
|
481
|
+
#endif
|
|
482
|
+
}
|
|
483
|
+
};
|
|
484
|
+
|
|
485
|
+
} // namespace random
|
|
486
|
+
} // namespace boost
|
|
487
|
+
|
|
488
|
+
#endif //BOOST_RANDOM_XOSHIRO_HPP
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
#include <boost/random/taus88.hpp>
|
|
50
50
|
#include <boost/random/xor_combine.hpp>
|
|
51
51
|
#include <boost/random/splitmix64.hpp>
|
|
52
|
+
#include <boost/random/xoshiro.hpp>
|
|
52
53
|
|
|
53
54
|
// misc
|
|
54
55
|
#include <boost/random/generate_canonical.hpp>
|
|
@@ -87,6 +88,8 @@
|
|
|
87
88
|
#include <boost/random/uniform_real_distribution.hpp>
|
|
88
89
|
#include <boost/random/uniform_smallint.hpp>
|
|
89
90
|
#include <boost/random/weibull_distribution.hpp>
|
|
91
|
+
#include <boost/random/inverse_gaussian_distribution.hpp>
|
|
92
|
+
#include <boost/random/generalized_inverse_gaussian_distribution.hpp>
|
|
90
93
|
|
|
91
94
|
#include <boost/random/generate_canonical.hpp>
|
|
92
95
|
|
|
@@ -23,7 +23,9 @@
|
|
|
23
23
|
#include <boost/range/iterator.hpp>
|
|
24
24
|
#include <boost/range/value_type.hpp>
|
|
25
25
|
#include <boost/range/detail/misc_concept.hpp>
|
|
26
|
+
#include <boost/mpl/assert.hpp>
|
|
26
27
|
#include <boost/type_traits/remove_reference.hpp>
|
|
28
|
+
#include <boost/type_traits/is_integral.hpp>
|
|
27
29
|
|
|
28
30
|
#include <iterator>
|
|
29
31
|
|
|
@@ -26,8 +26,11 @@
|
|
|
26
26
|
#include <boost/iterator/iterator_traits.hpp>
|
|
27
27
|
#include <boost/iterator/iterator_facade.hpp>
|
|
28
28
|
#include <boost/mpl/if.hpp>
|
|
29
|
+
#include <boost/mpl/eval_if.hpp>
|
|
29
30
|
#include <boost/mpl/not.hpp>
|
|
31
|
+
#include <boost/mpl/and.hpp>
|
|
30
32
|
#include <boost/mpl/or.hpp>
|
|
33
|
+
#include <boost/mpl/identity.hpp>
|
|
31
34
|
#include <boost/type_traits/is_abstract.hpp>
|
|
32
35
|
#include <boost/type_traits/is_array.hpp>
|
|
33
36
|
#include <boost/type_traits/is_base_and_derived.hpp>
|
|
@@ -41,7 +44,7 @@
|
|
|
41
44
|
#include <boost/range/has_range_iterator.hpp>
|
|
42
45
|
#include <boost/range/algorithm/equal.hpp>
|
|
43
46
|
#include <boost/range/detail/safe_bool.hpp>
|
|
44
|
-
#include <boost/
|
|
47
|
+
#include <boost/core/enable_if.hpp>
|
|
45
48
|
#include <boost/next_prior.hpp>
|
|
46
49
|
#include <iterator>
|
|
47
50
|
#include <algorithm>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
#include <boost/range/concepts.hpp>
|
|
21
21
|
#include <boost/range/has_range_iterator.hpp>
|
|
22
22
|
|
|
23
|
-
#include <boost/
|
|
23
|
+
#include <boost/core/enable_if.hpp>
|
|
24
24
|
#include <boost/type_traits/make_unsigned.hpp>
|
|
25
25
|
#include <boost/type_traits/remove_const.hpp>
|
|
26
26
|
#include <cstddef>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
#include <boost/type_traits/is_enum.hpp>
|
|
25
25
|
#include <boost/type_traits/is_base_and_derived.hpp>
|
|
26
26
|
#include <boost/static_assert.hpp>
|
|
27
|
-
#
|
|
27
|
+
#if !defined(BOOST_TEST_TR1_REGEX) && !defined(BOOST_REGEX_TEST_MODULE)
|
|
28
28
|
#include <boost/regex.hpp>
|
|
29
29
|
#endif
|
|
30
30
|
#include <bitset>
|
|
@@ -37,6 +37,16 @@
|
|
|
37
37
|
#define RW_NS std
|
|
38
38
|
#endif
|
|
39
39
|
|
|
40
|
+
|
|
41
|
+
//
|
|
42
|
+
// alter this to std::tr1, to test a std implementation:
|
|
43
|
+
//
|
|
44
|
+
#ifndef BOOST_TEST_TR1_REGEX
|
|
45
|
+
namespace global_regex_namespace = ::boost;
|
|
46
|
+
#else
|
|
47
|
+
namespace global_regex_namespace = ::std::tr1;
|
|
48
|
+
#endif
|
|
49
|
+
|
|
40
50
|
namespace boost{
|
|
41
51
|
|
|
42
52
|
//
|
|
@@ -76,13 +86,10 @@ inline long hash_value(char_architype val)
|
|
|
76
86
|
//
|
|
77
87
|
} // namespace boost
|
|
78
88
|
namespace std{
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
// case it is:
|
|
84
|
-
typedef boost::char_architype char_type;
|
|
85
|
-
};
|
|
89
|
+
//
|
|
90
|
+
// We should never use this, if we do it should be an error:
|
|
91
|
+
//
|
|
92
|
+
template<> struct char_traits<boost::char_architype>;
|
|
86
93
|
}
|
|
87
94
|
//
|
|
88
95
|
// Allocator architype:
|
|
@@ -127,6 +134,9 @@ bool operator == (const allocator_architype<T>&, const allocator_architype<T>&)
|
|
|
127
134
|
template <class T>
|
|
128
135
|
bool operator != (const allocator_architype<T>&, const allocator_architype<T>&) { return false; }
|
|
129
136
|
|
|
137
|
+
template <class T>
|
|
138
|
+
void consume_type() {}
|
|
139
|
+
|
|
130
140
|
namespace boost{
|
|
131
141
|
//
|
|
132
142
|
// regex_traits_architype:
|
|
@@ -178,15 +188,6 @@ private:
|
|
|
178
188
|
regex_traits_architype& operator=(const regex_traits_architype&){ return *this; }
|
|
179
189
|
};
|
|
180
190
|
|
|
181
|
-
//
|
|
182
|
-
// alter this to std::tr1, to test a std implementation:
|
|
183
|
-
//
|
|
184
|
-
#ifndef BOOST_TEST_TR1_REGEX
|
|
185
|
-
namespace global_regex_namespace = ::boost;
|
|
186
|
-
#else
|
|
187
|
-
namespace global_regex_namespace = ::std::tr1;
|
|
188
|
-
#endif
|
|
189
|
-
|
|
190
191
|
template <class Bitmask>
|
|
191
192
|
struct BitmaskConcept
|
|
192
193
|
{
|
|
@@ -273,7 +274,7 @@ template <class Regex>
|
|
|
273
274
|
struct regex_traits_computer;
|
|
274
275
|
|
|
275
276
|
template <class charT, class traits>
|
|
276
|
-
struct regex_traits_computer<
|
|
277
|
+
struct regex_traits_computer< ::boost::basic_regex<charT, traits> >
|
|
277
278
|
{
|
|
278
279
|
typedef traits type;
|
|
279
280
|
};
|
|
@@ -371,6 +372,8 @@ struct BaseRegexConcept
|
|
|
371
372
|
e1 = except.code();
|
|
372
373
|
|
|
373
374
|
typedef typename Regex::value_type regex_value_type;
|
|
375
|
+
regex_value_type val{};
|
|
376
|
+
ignore_unused_variable_warning(val);
|
|
374
377
|
function_requires< RegexTraitsConcept<global_regex_namespace::regex_traits<char> > >();
|
|
375
378
|
function_requires< BaseRegexConcept<global_regex_namespace::basic_regex<char> > >();
|
|
376
379
|
}
|
|
@@ -407,6 +410,10 @@ struct BaseRegexConcept
|
|
|
407
410
|
Regex e5(in1, in2, m_flags);
|
|
408
411
|
ignore_unused_variable_warning(e5);
|
|
409
412
|
|
|
413
|
+
// equals:
|
|
414
|
+
e1 == e2;
|
|
415
|
+
e1 != e2;
|
|
416
|
+
|
|
410
417
|
// assign etc:
|
|
411
418
|
Regex e;
|
|
412
419
|
e = m_pointer;
|
|
@@ -446,15 +453,25 @@ struct BaseRegexConcept
|
|
|
446
453
|
// match_results tests - some typedefs are not used, however these
|
|
447
454
|
// guarante that they exist (some compilers may warn on non-usage)
|
|
448
455
|
typedef typename match_results_type::value_type mr_value_type;
|
|
456
|
+
consume_type<mr_value_type>();
|
|
449
457
|
typedef typename match_results_type::const_reference mr_const_reference;
|
|
458
|
+
consume_type<mr_const_reference>();
|
|
450
459
|
typedef typename match_results_type::reference mr_reference;
|
|
460
|
+
consume_type<mr_reference>();
|
|
451
461
|
typedef typename match_results_type::const_iterator mr_const_iterator;
|
|
462
|
+
consume_type<mr_const_iterator>();
|
|
452
463
|
typedef typename match_results_type::iterator mr_iterator;
|
|
464
|
+
consume_type<mr_iterator>();
|
|
453
465
|
typedef typename match_results_type::difference_type mr_difference_type;
|
|
466
|
+
consume_type<mr_difference_type>();
|
|
454
467
|
typedef typename match_results_type::size_type mr_size_type;
|
|
468
|
+
consume_type<mr_size_type>();
|
|
455
469
|
typedef typename match_results_type::allocator_type mr_allocator_type;
|
|
470
|
+
consume_type<mr_allocator_type>();
|
|
456
471
|
typedef typename match_results_type::char_type mr_char_type;
|
|
472
|
+
consume_type<mr_char_type>();
|
|
457
473
|
typedef typename match_results_type::string_type mr_string_type;
|
|
474
|
+
consume_type<mr_string_type>();
|
|
458
475
|
|
|
459
476
|
match_results_type m1;
|
|
460
477
|
mr_allocator_type at;
|