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
|
@@ -19,12 +19,8 @@
|
|
|
19
19
|
#ifndef BOOST_REGEX_CONFIG_HPP
|
|
20
20
|
#define BOOST_REGEX_CONFIG_HPP
|
|
21
21
|
|
|
22
|
-
#if
|
|
23
|
-
#
|
|
24
|
-
#endif
|
|
25
|
-
|
|
26
|
-
#if defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_CXX03)
|
|
27
|
-
# define BOOST_REGEX_CXX03
|
|
22
|
+
#if defined(BOOST_REGEX_RECURSIVE)
|
|
23
|
+
#error "All support for the C++03 recursive engine has been removed, this define has no effect anymore."
|
|
28
24
|
#endif
|
|
29
25
|
|
|
30
26
|
#if defined(__has_include)
|
|
@@ -33,6 +29,14 @@
|
|
|
33
29
|
#endif
|
|
34
30
|
#endif
|
|
35
31
|
|
|
32
|
+
#ifndef BOOST_REGEX_MODULE_EXPORT
|
|
33
|
+
#define BOOST_REGEX_MODULE_EXPORT
|
|
34
|
+
#define BOOST_REGEX_STATIC_CONST static const
|
|
35
|
+
#else
|
|
36
|
+
#define BOOST_REGEX_STATIC_CONST inline constexpr
|
|
37
|
+
#define BOOST_REGEX_STANDALONE
|
|
38
|
+
#endif
|
|
39
|
+
|
|
36
40
|
/*
|
|
37
41
|
* Borland C++ Fix/error check
|
|
38
42
|
* this has to go *before* we include any std lib headers:
|
|
@@ -40,6 +44,7 @@
|
|
|
40
44
|
#if defined(__BORLANDC__) && !defined(__clang__)
|
|
41
45
|
# include <boost/regex/config/borland.hpp>
|
|
42
46
|
#endif
|
|
47
|
+
|
|
43
48
|
#ifndef BOOST_REGEX_STANDALONE
|
|
44
49
|
#include <boost/version.hpp>
|
|
45
50
|
#endif
|
|
@@ -51,9 +56,13 @@
|
|
|
51
56
|
*************************************************************************/
|
|
52
57
|
|
|
53
58
|
#ifdef BOOST_REGEX_STANDALONE
|
|
59
|
+
#ifndef BOOST_REGEX_AS_MODULE
|
|
54
60
|
#include <cassert>
|
|
55
61
|
# define BOOST_REGEX_ASSERT(x) assert(x)
|
|
56
62
|
#else
|
|
63
|
+
# define BOOST_REGEX_ASSERT(x) do{ if(x == 0) { std::printf("%s:%d Assertion Failed", __FILE__, __LINE__); std::abort(); } }while(0)
|
|
64
|
+
#endif
|
|
65
|
+
#else
|
|
57
66
|
#include <boost/assert.hpp>
|
|
58
67
|
# define BOOST_REGEX_ASSERT(x) BOOST_ASSERT(x)
|
|
59
68
|
#endif
|
|
@@ -90,20 +99,7 @@
|
|
|
90
99
|
# endif
|
|
91
100
|
#endif
|
|
92
101
|
|
|
93
|
-
|
|
94
|
-
/****************************************************************************
|
|
95
|
-
*
|
|
96
|
-
* Legacy support:
|
|
97
|
-
*
|
|
98
|
-
*******************************************************************************/
|
|
99
|
-
|
|
100
|
-
#if defined(BOOST_NO_STD_LOCALE) || defined(BOOST_NO_CXX11_HDR_MUTEX) || defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) \
|
|
101
|
-
|| defined(BOOST_NO_CXX11_HDR_ATOMIC) || defined(BOOST_NO_CXX11_ALLOCATOR) || defined(BOOST_NO_CXX11_SMART_PTR) \
|
|
102
|
-
|| defined(BOOST_NO_CXX11_STATIC_ASSERT) || defined(BOOST_NO_NOEXCEPT)
|
|
103
|
-
#ifndef BOOST_REGEX_CXX03
|
|
104
|
-
# define BOOST_REGEX_CXX03
|
|
105
|
-
#endif
|
|
106
|
-
#endif
|
|
102
|
+
#define BOOST_REGEX_MAX_RECURSION_DEPTH 100
|
|
107
103
|
|
|
108
104
|
/*****************************************************************************
|
|
109
105
|
*
|
|
@@ -112,7 +108,7 @@
|
|
|
112
108
|
****************************************************************************/
|
|
113
109
|
|
|
114
110
|
/* Obsolete macro, use BOOST_VERSION instead: */
|
|
115
|
-
#define BOOST_RE_VERSION
|
|
111
|
+
#define BOOST_RE_VERSION 600
|
|
116
112
|
|
|
117
113
|
/* fix: */
|
|
118
114
|
#if defined(_UNICODE) && !defined(UNICODE)
|
|
@@ -157,40 +153,6 @@
|
|
|
157
153
|
*/
|
|
158
154
|
#define BOOST_REGEX_DETAIL_NS BOOST_REGEX_JOIN(re_detail_, BOOST_RE_VERSION)
|
|
159
155
|
|
|
160
|
-
/*
|
|
161
|
-
* Fix for gcc prior to 3.4: std::ctype<wchar_t> doesn't allow
|
|
162
|
-
* masks to be combined, for example:
|
|
163
|
-
* std::use_facet<std::ctype<wchar_t> >.is(std::ctype_base::lower|std::ctype_base::upper, L'a');
|
|
164
|
-
* returns *false*.
|
|
165
|
-
*/
|
|
166
|
-
#if defined(__GLIBCPP__) && defined(BOOST_REGEX_CXX03)
|
|
167
|
-
# define BOOST_REGEX_BUGGY_CTYPE_FACET
|
|
168
|
-
#endif
|
|
169
|
-
|
|
170
|
-
/*
|
|
171
|
-
* If there isn't good enough wide character support then there will
|
|
172
|
-
* be no wide character regular expressions:
|
|
173
|
-
*/
|
|
174
|
-
#if (defined(BOOST_NO_CWCHAR) || defined(BOOST_NO_CWCTYPE) || defined(BOOST_NO_STD_WSTRING))
|
|
175
|
-
# if !defined(BOOST_NO_WREGEX)
|
|
176
|
-
# define BOOST_NO_WREGEX
|
|
177
|
-
# endif
|
|
178
|
-
#else
|
|
179
|
-
# if defined(__sgi) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
|
180
|
-
/* STLPort on IRIX is misconfigured: <cwctype> does not compile
|
|
181
|
-
* as a temporary fix include <wctype.h> instead and prevent inclusion
|
|
182
|
-
* of STLPort version of <cwctype> */
|
|
183
|
-
# include <wctype.h>
|
|
184
|
-
# define __STLPORT_CWCTYPE
|
|
185
|
-
# define _STLP_CWCTYPE
|
|
186
|
-
# endif
|
|
187
|
-
|
|
188
|
-
#if defined(__cplusplus) && defined(BOOST_REGEX_CXX03)
|
|
189
|
-
# include <boost/regex/config/cwchar.hpp>
|
|
190
|
-
#endif
|
|
191
|
-
|
|
192
|
-
#endif
|
|
193
|
-
|
|
194
156
|
/*
|
|
195
157
|
* If Win32 support has been disabled for boost in general, then
|
|
196
158
|
* it is for regex in particular:
|
|
@@ -251,19 +213,6 @@
|
|
|
251
213
|
# define BOOST_REGEX_DECL
|
|
252
214
|
#endif
|
|
253
215
|
|
|
254
|
-
#ifdef BOOST_REGEX_CXX03
|
|
255
|
-
#if !defined(BOOST_REGEX_NO_LIB) && !defined(BOOST_REGEX_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus)
|
|
256
|
-
# define BOOST_LIB_NAME boost_regex
|
|
257
|
-
# if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
|
|
258
|
-
# define BOOST_DYN_LINK
|
|
259
|
-
# endif
|
|
260
|
-
# ifdef BOOST_REGEX_DIAG
|
|
261
|
-
# define BOOST_LIB_DIAGNOSTIC
|
|
262
|
-
# endif
|
|
263
|
-
# include <boost/config/auto_link.hpp>
|
|
264
|
-
#endif
|
|
265
|
-
#endif
|
|
266
|
-
|
|
267
216
|
/*****************************************************************************
|
|
268
217
|
*
|
|
269
218
|
* Set up function call type:
|
|
@@ -355,18 +304,7 @@
|
|
|
355
304
|
* If there are no exceptions then we must report critical-errors
|
|
356
305
|
* the only way we know how; by terminating.
|
|
357
306
|
*/
|
|
358
|
-
#
|
|
359
|
-
#include <string>
|
|
360
|
-
#include <boost/throw_exception.hpp>
|
|
361
|
-
|
|
362
|
-
# define BOOST_REGEX_NOEH_ASSERT(x)\
|
|
363
|
-
if(0 == (x))\
|
|
364
|
-
{\
|
|
365
|
-
std::string s("Error: critical regex++ failure in: ");\
|
|
366
|
-
s.append(#x);\
|
|
367
|
-
std::runtime_error e(s);\
|
|
368
|
-
boost::throw_exception(e);\
|
|
369
|
-
}
|
|
307
|
+
# define BOOST_REGEX_NOEH_ASSERT(x) assert(x);
|
|
370
308
|
#else
|
|
371
309
|
/*
|
|
372
310
|
* With exceptions then error handling is taken care of and
|
|
@@ -405,26 +343,6 @@ BOOST_REGEX_DECL void BOOST_REGEX_CALL reset_stack_guard_page();
|
|
|
405
343
|
|
|
406
344
|
#endif
|
|
407
345
|
|
|
408
|
-
|
|
409
|
-
/*****************************************************************************
|
|
410
|
-
*
|
|
411
|
-
* Algorithm selection and configuration.
|
|
412
|
-
* These options are now obsolete for C++11 and later (regex v5).
|
|
413
|
-
*
|
|
414
|
-
****************************************************************************/
|
|
415
|
-
|
|
416
|
-
#if !defined(BOOST_REGEX_RECURSIVE) && !defined(BOOST_REGEX_NON_RECURSIVE)
|
|
417
|
-
# if defined(BOOST_REGEX_HAS_MS_STACK_GUARD) && !defined(_STLP_DEBUG) && !defined(__STL_DEBUG) && !(defined(_MSC_VER) && (_MSC_VER >= 1400)) && defined(BOOST_REGEX_CXX03)
|
|
418
|
-
# define BOOST_REGEX_RECURSIVE
|
|
419
|
-
# else
|
|
420
|
-
# define BOOST_REGEX_NON_RECURSIVE
|
|
421
|
-
# endif
|
|
422
|
-
#endif
|
|
423
|
-
|
|
424
|
-
#ifdef BOOST_REGEX_NON_RECURSIVE
|
|
425
|
-
# ifdef BOOST_REGEX_RECURSIVE
|
|
426
|
-
# error "Can't set both BOOST_REGEX_RECURSIVE and BOOST_REGEX_NON_RECURSIVE"
|
|
427
|
-
# endif
|
|
428
346
|
# ifndef BOOST_REGEX_BLOCKSIZE
|
|
429
347
|
# define BOOST_REGEX_BLOCKSIZE 4096
|
|
430
348
|
# endif
|
|
@@ -440,7 +358,6 @@ BOOST_REGEX_DECL void BOOST_REGEX_CALL reset_stack_guard_page();
|
|
|
440
358
|
# ifndef BOOST_REGEX_MAX_CACHE_BLOCKS
|
|
441
359
|
# define BOOST_REGEX_MAX_CACHE_BLOCKS 16
|
|
442
360
|
# endif
|
|
443
|
-
#endif
|
|
444
361
|
|
|
445
362
|
|
|
446
363
|
/*****************************************************************************
|
|
@@ -20,13 +20,7 @@
|
|
|
20
20
|
#define BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
|
|
21
21
|
|
|
22
22
|
#include <boost/regex/config.hpp>
|
|
23
|
-
|
|
24
|
-
#if defined(BOOST_REGEX_CXX03)
|
|
25
|
-
#include <boost/regex/v4/unicode_iterator.hpp>
|
|
26
|
-
#else
|
|
27
23
|
#include <boost/regex/v5/unicode_iterator.hpp>
|
|
28
|
-
#endif
|
|
29
|
-
|
|
30
24
|
|
|
31
25
|
#endif // BOOST_REGEX_PENDING_UNICODE_ITERATOR_HPP
|
|
32
26
|
|
|
@@ -59,16 +59,6 @@
|
|
|
59
59
|
// exception handling.
|
|
60
60
|
// #define BOOST_REGEX_HAS_MS_STACK_GUARD
|
|
61
61
|
|
|
62
|
-
// define this if you want to use the recursive algorithm
|
|
63
|
-
// even if BOOST_REGEX_HAS_MS_STACK_GUARD is not defined.
|
|
64
|
-
// NOTE: OBSOLETE!!
|
|
65
|
-
// #define BOOST_REGEX_RECURSIVE
|
|
66
|
-
|
|
67
|
-
// define this if you want to use the non-recursive
|
|
68
|
-
// algorithm, even if the recursive version would be the default.
|
|
69
|
-
// NOTE: OBSOLETE!!
|
|
70
|
-
// #define BOOST_REGEX_NON_RECURSIVE
|
|
71
|
-
|
|
72
62
|
// define this if you want to set the size of the memory blocks
|
|
73
63
|
// used by the non-recursive algorithm.
|
|
74
64
|
// #define BOOST_REGEX_BLOCKSIZE 4096
|
|
@@ -93,3 +83,7 @@
|
|
|
93
83
|
|
|
94
84
|
// define this if you want regex to use __cdecl calling convensions, even when __fastcall is available:
|
|
95
85
|
// #define BOOST_REGEX_NO_FASTCALL
|
|
86
|
+
|
|
87
|
+
// define this to control how deep non-avoidable recursive function calls can go, typical expressions
|
|
88
|
+
// and format strings should only recurse a handful of times, this is mainly to prevent DOS type attacks.
|
|
89
|
+
// #define BOOST_REGEX_MAX_RECURSION_DEPTH 100
|
|
@@ -19,7 +19,18 @@
|
|
|
19
19
|
#ifndef BOOST_REGEX_V5_BASIC_REGEX_HPP
|
|
20
20
|
#define BOOST_REGEX_V5_BASIC_REGEX_HPP
|
|
21
21
|
|
|
22
|
+
#include <boost/regex/v5/regbase.hpp>
|
|
23
|
+
#include <boost/regex/v5/syntax_type.hpp>
|
|
24
|
+
#include <boost/regex/v5/regex_traits.hpp>
|
|
25
|
+
#include <boost/regex/v5/states.hpp>
|
|
26
|
+
#include <boost/regex/v5/regex_raw_buffer.hpp>
|
|
27
|
+
|
|
28
|
+
#ifndef BOOST_REGEX_AS_MODULE
|
|
29
|
+
#include <algorithm>
|
|
30
|
+
#include <limits>
|
|
31
|
+
#include <memory>
|
|
22
32
|
#include <vector>
|
|
33
|
+
#endif
|
|
23
34
|
|
|
24
35
|
namespace boost{
|
|
25
36
|
#ifdef BOOST_REGEX_MSVC
|
|
@@ -58,7 +69,12 @@ void bubble_down_one(I first, I last)
|
|
|
58
69
|
}
|
|
59
70
|
}
|
|
60
71
|
|
|
61
|
-
|
|
72
|
+
#ifndef BOOST_REGEX_AS_MODULE
|
|
73
|
+
static
|
|
74
|
+
#else
|
|
75
|
+
inline
|
|
76
|
+
#endif
|
|
77
|
+
const int hash_value_mask = 1 << (std::numeric_limits<int>::digits - 1);
|
|
62
78
|
|
|
63
79
|
template <class Iterator>
|
|
64
80
|
inline int hash_value_from_capture_name(Iterator i, Iterator j)
|
|
@@ -306,7 +322,7 @@ public:
|
|
|
306
322
|
// represents the compiled
|
|
307
323
|
// regular expression:
|
|
308
324
|
//
|
|
309
|
-
|
|
325
|
+
BOOST_REGEX_MODULE_EXPORT
|
|
310
326
|
#ifdef BOOST_REGEX_NO_FWD
|
|
311
327
|
template <class charT, class traits = regex_traits<charT> >
|
|
312
328
|
#else
|
|
@@ -488,7 +504,7 @@ public:
|
|
|
488
504
|
}
|
|
489
505
|
//
|
|
490
506
|
// swap:
|
|
491
|
-
void swap(basic_regex& that)
|
|
507
|
+
void swap(basic_regex& that)noexcept
|
|
492
508
|
{
|
|
493
509
|
m_pimpl.swap(that.m_pimpl);
|
|
494
510
|
}
|
|
@@ -533,7 +549,21 @@ public:
|
|
|
533
549
|
return status() - that.status();
|
|
534
550
|
if(flags() != that.flags())
|
|
535
551
|
return flags() - that.flags();
|
|
536
|
-
|
|
552
|
+
|
|
553
|
+
const char_type* i = m_pimpl->begin();
|
|
554
|
+
const char_type* j = that.m_pimpl->begin();
|
|
555
|
+
while ((i != m_pimpl->end()) && (j != that.m_pimpl->end()))
|
|
556
|
+
{
|
|
557
|
+
if (*i != *j)
|
|
558
|
+
return *i < *j ? -1 : 1;
|
|
559
|
+
++i;
|
|
560
|
+
++j;
|
|
561
|
+
}
|
|
562
|
+
if (i != m_pimpl->end())
|
|
563
|
+
return *i > static_cast<char_type>(0) ? 1 : -1;
|
|
564
|
+
if (j != that.m_pimpl->end())
|
|
565
|
+
return *j > static_cast<char_type>(0) ? -1 : 1;
|
|
566
|
+
return 0;
|
|
537
567
|
}
|
|
538
568
|
bool operator==(const basic_regex& e)const
|
|
539
569
|
{
|
|
@@ -629,22 +659,38 @@ private:
|
|
|
629
659
|
// and are designed to provide the strong exception guarantee
|
|
630
660
|
// (in the event of a throw, the state of the object remains unchanged).
|
|
631
661
|
//
|
|
662
|
+
|
|
663
|
+
namespace detail
|
|
664
|
+
{
|
|
665
|
+
template <class charT, class F, class Traits>
|
|
666
|
+
std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, Traits> > create_implemenation(const charT* p1, const charT* p2, F f, std::shared_ptr<boost::regex_traits_wrapper<Traits> > ptraits)
|
|
667
|
+
{
|
|
668
|
+
std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, Traits> > result;
|
|
669
|
+
if (!ptraits.get())
|
|
670
|
+
{
|
|
671
|
+
result = std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, Traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, Traits>());
|
|
672
|
+
}
|
|
673
|
+
else
|
|
674
|
+
{
|
|
675
|
+
result = std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, Traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, Traits>(ptraits));
|
|
676
|
+
}
|
|
677
|
+
result->assign(p1, p2, f);
|
|
678
|
+
return result;
|
|
679
|
+
}
|
|
680
|
+
#ifdef BOOST_REGEX_AS_MODULE
|
|
681
|
+
std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<char, basic_regex<char>::traits_type> >
|
|
682
|
+
create_implemenation(const char* p1, const char* p2, basic_regex<char>::flag_type f, std::shared_ptr<boost::regex_traits_wrapper<basic_regex<char>::traits_type> > ptraits);
|
|
683
|
+
std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<wchar_t, basic_regex<wchar_t>::traits_type> >
|
|
684
|
+
create_implemenation(const wchar_t* p1, const wchar_t* p2, basic_regex<wchar_t>::flag_type f, std::shared_ptr<boost::regex_traits_wrapper<basic_regex<wchar_t>::traits_type> > ptraits);
|
|
685
|
+
#endif
|
|
686
|
+
}
|
|
687
|
+
|
|
632
688
|
template <class charT, class traits>
|
|
633
689
|
basic_regex<charT, traits>& basic_regex<charT, traits>::do_assign(const charT* p1,
|
|
634
690
|
const charT* p2,
|
|
635
691
|
flag_type f)
|
|
636
692
|
{
|
|
637
|
-
std::shared_ptr<
|
|
638
|
-
if(!m_pimpl.get())
|
|
639
|
-
{
|
|
640
|
-
temp = std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>());
|
|
641
|
-
}
|
|
642
|
-
else
|
|
643
|
-
{
|
|
644
|
-
temp = std::shared_ptr<BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits> >(new BOOST_REGEX_DETAIL_NS::basic_regex_implementation<charT, traits>(m_pimpl->m_ptraits));
|
|
645
|
-
}
|
|
646
|
-
temp->assign(p1, p2, f);
|
|
647
|
-
temp.swap(m_pimpl);
|
|
693
|
+
m_pimpl = detail::create_implemenation(p1, p2, f, m_pimpl.get() ? m_pimpl->m_ptraits : std::shared_ptr<boost::regex_traits_wrapper<traits> >());
|
|
648
694
|
return *this;
|
|
649
695
|
}
|
|
650
696
|
|
|
@@ -660,13 +706,13 @@ typename basic_regex<charT, traits>::locale_type basic_regex<charT, traits>::im
|
|
|
660
706
|
//
|
|
661
707
|
// non-members:
|
|
662
708
|
//
|
|
663
|
-
template <class charT, class traits>
|
|
709
|
+
BOOST_REGEX_MODULE_EXPORT template <class charT, class traits>
|
|
664
710
|
void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2)
|
|
665
711
|
{
|
|
666
712
|
e1.swap(e2);
|
|
667
713
|
}
|
|
668
714
|
|
|
669
|
-
template <class charT, class traits, class traits2>
|
|
715
|
+
BOOST_REGEX_MODULE_EXPORT template <class charT, class traits, class traits2>
|
|
670
716
|
std::basic_ostream<charT, traits>&
|
|
671
717
|
operator << (std::basic_ostream<charT, traits>& os,
|
|
672
718
|
const basic_regex<charT, traits2>& e)
|
|
@@ -28,7 +28,12 @@
|
|
|
28
28
|
#endif
|
|
29
29
|
#endif
|
|
30
30
|
|
|
31
|
+
#include <boost/regex/v5/basic_regex.hpp>
|
|
32
|
+
|
|
33
|
+
#ifndef BOOST_REGEX_AS_MODULE
|
|
34
|
+
#include <vector>
|
|
31
35
|
#include <set>
|
|
36
|
+
#endif
|
|
32
37
|
|
|
33
38
|
namespace boost{
|
|
34
39
|
|
|
@@ -217,8 +222,10 @@ public:
|
|
|
217
222
|
m_icase = static_cast<bool>(f & regbase::icase);
|
|
218
223
|
}
|
|
219
224
|
}
|
|
220
|
-
re_syntax_base* append_state(syntax_element_type t, std::size_t s
|
|
221
|
-
re_syntax_base*
|
|
225
|
+
re_syntax_base* append_state(syntax_element_type t, std::size_t s);
|
|
226
|
+
re_syntax_base* append_state(syntax_element_type t) { return append_state(t, sizeof(re_syntax_base)); }
|
|
227
|
+
re_syntax_base* insert_state(std::ptrdiff_t pos, syntax_element_type t, std::size_t s);
|
|
228
|
+
re_syntax_base* insert_state(std::ptrdiff_t pos, syntax_element_type t) { return insert_state(pos, t, sizeof(re_syntax_base)); }
|
|
222
229
|
re_literal* append_literal(charT c);
|
|
223
230
|
re_syntax_base* append_set(const basic_char_set<charT, traits>& char_set);
|
|
224
231
|
re_syntax_base* append_set(const basic_char_set<charT, traits>& char_set, std::integral_constant<bool, false>*);
|
|
@@ -248,7 +255,7 @@ private:
|
|
|
248
255
|
void fixup_recursions(re_syntax_base* state);
|
|
249
256
|
void create_startmaps(re_syntax_base* state);
|
|
250
257
|
int calculate_backstep(re_syntax_base* state);
|
|
251
|
-
void create_startmap(re_syntax_base* state, unsigned char* l_map, unsigned int* pnull, unsigned char mask);
|
|
258
|
+
void create_startmap(re_syntax_base* state, unsigned char* l_map, unsigned int* pnull, unsigned char mask, unsigned recursion_count = 0);
|
|
252
259
|
unsigned get_restart_type(re_syntax_base* state);
|
|
253
260
|
void set_all_masks(unsigned char* bits, unsigned char);
|
|
254
261
|
bool is_bad_repeat(re_syntax_base* pt);
|
|
@@ -971,7 +978,12 @@ template <class charT, class traits>
|
|
|
971
978
|
int basic_regex_creator<charT, traits>::calculate_backstep(re_syntax_base* state)
|
|
972
979
|
{
|
|
973
980
|
typedef typename traits::char_class_type m_type;
|
|
981
|
+
|
|
974
982
|
int result = 0;
|
|
983
|
+
int last_alternative_result = -1;
|
|
984
|
+
|
|
985
|
+
std::vector<std::tuple<int, re_syntax_base*>> stack;
|
|
986
|
+
|
|
975
987
|
while(state)
|
|
976
988
|
{
|
|
977
989
|
switch(state->type)
|
|
@@ -990,9 +1002,28 @@ int basic_regex_creator<charT, traits>::calculate_backstep(re_syntax_base* state
|
|
|
990
1002
|
}
|
|
991
1003
|
break;
|
|
992
1004
|
case syntax_element_endmark:
|
|
993
|
-
if((static_cast<re_brace*>(state)->index == -1)
|
|
1005
|
+
if ((static_cast<re_brace*>(state)->index == -1)
|
|
994
1006
|
|| (static_cast<re_brace*>(state)->index == -2))
|
|
995
|
-
|
|
1007
|
+
{
|
|
1008
|
+
// We've finished the calculation, check against any previous alternatives:
|
|
1009
|
+
if (last_alternative_result >= 0)
|
|
1010
|
+
{
|
|
1011
|
+
if (last_alternative_result != result)
|
|
1012
|
+
return -1;
|
|
1013
|
+
}
|
|
1014
|
+
else
|
|
1015
|
+
last_alternative_result = result;
|
|
1016
|
+
|
|
1017
|
+
if (stack.size())
|
|
1018
|
+
{
|
|
1019
|
+
// Skip to next alternative and calculate that as well:
|
|
1020
|
+
std::tie(result, state) = stack.back();
|
|
1021
|
+
stack.pop_back();
|
|
1022
|
+
continue;
|
|
1023
|
+
}
|
|
1024
|
+
else
|
|
1025
|
+
return result;
|
|
1026
|
+
}
|
|
996
1027
|
break;
|
|
997
1028
|
case syntax_element_literal:
|
|
998
1029
|
result += static_cast<re_literal*>(state)->length;
|
|
@@ -1048,11 +1079,13 @@ int basic_regex_creator<charT, traits>::calculate_backstep(re_syntax_base* state
|
|
|
1048
1079
|
continue;
|
|
1049
1080
|
case syntax_element_alt:
|
|
1050
1081
|
{
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
if((r1 < 0) || (r1 != r2))
|
|
1082
|
+
// Push the alternative if we haven't pushed too many already:
|
|
1083
|
+
if(stack.size() > BOOST_REGEX_MAX_BLOCKS)
|
|
1054
1084
|
return -1;
|
|
1055
|
-
|
|
1085
|
+
stack.push_back(std::make_tuple(result, static_cast<re_alt*>(state)->alt.p));
|
|
1086
|
+
// and take the first one:
|
|
1087
|
+
state = state->next.p;
|
|
1088
|
+
continue;
|
|
1056
1089
|
}
|
|
1057
1090
|
default:
|
|
1058
1091
|
break;
|
|
@@ -1074,7 +1107,7 @@ struct recursion_saver
|
|
|
1074
1107
|
};
|
|
1075
1108
|
|
|
1076
1109
|
template <class charT, class traits>
|
|
1077
|
-
void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state, unsigned char* l_map, unsigned int* pnull, unsigned char mask)
|
|
1110
|
+
void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state, unsigned char* l_map, unsigned int* pnull, unsigned char mask, unsigned recursion_count)
|
|
1078
1111
|
{
|
|
1079
1112
|
recursion_saver saved_recursions(&m_recursion_checks);
|
|
1080
1113
|
int not_last_jump = 1;
|
|
@@ -1085,6 +1118,28 @@ void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state,
|
|
|
1085
1118
|
// track case sensitivity:
|
|
1086
1119
|
bool l_icase = m_icase;
|
|
1087
1120
|
|
|
1121
|
+
if (recursion_count > BOOST_REGEX_MAX_RECURSION_DEPTH)
|
|
1122
|
+
{
|
|
1123
|
+
// Oops error:
|
|
1124
|
+
if (0 == this->m_pdata->m_status) // update the error code if not already set
|
|
1125
|
+
this->m_pdata->m_status = boost::regex_constants::error_complexity;
|
|
1126
|
+
//
|
|
1127
|
+
// clear the expression, we should be empty:
|
|
1128
|
+
//
|
|
1129
|
+
this->m_pdata->m_expression = 0;
|
|
1130
|
+
this->m_pdata->m_expression_len = 0;
|
|
1131
|
+
//
|
|
1132
|
+
// and throw if required:
|
|
1133
|
+
//
|
|
1134
|
+
if (0 == (this->flags() & regex_constants::no_except))
|
|
1135
|
+
{
|
|
1136
|
+
std::string message = "Expression complexity exceeded.";
|
|
1137
|
+
boost::regex_error e(message, boost::regex_constants::error_complexity, 0);
|
|
1138
|
+
e.raise();
|
|
1139
|
+
}
|
|
1140
|
+
return;
|
|
1141
|
+
}
|
|
1142
|
+
|
|
1088
1143
|
while(state)
|
|
1089
1144
|
{
|
|
1090
1145
|
switch(state->type)
|
|
@@ -1122,7 +1177,7 @@ void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state,
|
|
|
1122
1177
|
}
|
|
1123
1178
|
// now figure out if we can match a NULL string at this point:
|
|
1124
1179
|
if(pnull)
|
|
1125
|
-
create_startmap(state->next.p, 0, pnull, mask);
|
|
1180
|
+
create_startmap(state->next.p, 0, pnull, mask, ++recursion_count);
|
|
1126
1181
|
return;
|
|
1127
1182
|
}
|
|
1128
1183
|
case syntax_element_recurse:
|
|
@@ -1184,7 +1239,7 @@ void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state,
|
|
|
1184
1239
|
case syntax_element_word_start:
|
|
1185
1240
|
{
|
|
1186
1241
|
// recurse, then AND with all the word characters:
|
|
1187
|
-
create_startmap(state->next.p, l_map, pnull, mask);
|
|
1242
|
+
create_startmap(state->next.p, l_map, pnull, mask, ++recursion_count);
|
|
1188
1243
|
if(l_map)
|
|
1189
1244
|
{
|
|
1190
1245
|
l_map[0] |= mask_init;
|
|
@@ -1199,7 +1254,7 @@ void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state,
|
|
|
1199
1254
|
case syntax_element_word_end:
|
|
1200
1255
|
{
|
|
1201
1256
|
// recurse, then AND with all the word characters:
|
|
1202
|
-
create_startmap(state->next.p, l_map, pnull, mask);
|
|
1257
|
+
create_startmap(state->next.p, l_map, pnull, mask, ++recursion_count);
|
|
1203
1258
|
if(l_map)
|
|
1204
1259
|
{
|
|
1205
1260
|
l_map[0] |= mask_init;
|
|
@@ -1291,11 +1346,11 @@ void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state,
|
|
|
1291
1346
|
return;
|
|
1292
1347
|
}
|
|
1293
1348
|
set_bad_repeat(state);
|
|
1294
|
-
create_startmap(state->next.p, l_map, pnull, mask);
|
|
1349
|
+
create_startmap(state->next.p, l_map, pnull, mask, ++recursion_count);
|
|
1295
1350
|
if((state->type == syntax_element_alt)
|
|
1296
1351
|
|| (static_cast<re_repeat*>(state)->min == 0)
|
|
1297
1352
|
|| (not_last_jump == 0))
|
|
1298
|
-
create_startmap(rep->alt.p, l_map, pnull, mask);
|
|
1353
|
+
create_startmap(rep->alt.p, l_map, pnull, mask, ++recursion_count);
|
|
1299
1354
|
}
|
|
1300
1355
|
}
|
|
1301
1356
|
return;
|
|
@@ -1354,7 +1409,7 @@ void basic_regex_creator<charT, traits>::create_startmap(re_syntax_base* state,
|
|
|
1354
1409
|
if(ok && ((m_recursion_checks[static_cast<re_brace*>(state)->index] & 2u) == 0))
|
|
1355
1410
|
{
|
|
1356
1411
|
m_recursion_checks[static_cast<re_brace*>(state)->index] |= 2u;
|
|
1357
|
-
create_startmap(p->next.p, l_map, pnull, mask);
|
|
1412
|
+
create_startmap(p->next.p, l_map, pnull, mask, ++recursion_count);
|
|
1358
1413
|
}
|
|
1359
1414
|
}
|
|
1360
1415
|
state = state->next.p;
|
|
@@ -19,6 +19,15 @@
|
|
|
19
19
|
#ifndef BOOST_REGEX_V5_BASIC_REGEX_PARSER_HPP
|
|
20
20
|
#define BOOST_REGEX_V5_BASIC_REGEX_PARSER_HPP
|
|
21
21
|
|
|
22
|
+
#include <boost/regex/v5/basic_regex_creator.hpp>
|
|
23
|
+
|
|
24
|
+
#ifndef BOOST_REGEX_AS_MODULE
|
|
25
|
+
#include <climits>
|
|
26
|
+
#include <cstdint>
|
|
27
|
+
#include <limits>
|
|
28
|
+
#include <type_traits>
|
|
29
|
+
#endif
|
|
30
|
+
|
|
22
31
|
namespace boost{
|
|
23
32
|
namespace BOOST_REGEX_DETAIL_NS{
|
|
24
33
|
|
|
@@ -889,6 +898,11 @@ escape_type_class_jump:
|
|
|
889
898
|
}
|
|
890
899
|
const charT* pc = m_position;
|
|
891
900
|
std::intmax_t i = this->m_traits.toi(pc, m_end, 10);
|
|
901
|
+
if(i < 0 && !syn_end)
|
|
902
|
+
{
|
|
903
|
+
fail(regex_constants::error_backref, m_position - m_base);
|
|
904
|
+
return false;
|
|
905
|
+
}
|
|
892
906
|
if((i < 0) && syn_end)
|
|
893
907
|
{
|
|
894
908
|
// Check for a named capture, get the leftmost one if there is more than one:
|
|
@@ -988,7 +1002,7 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
|
|
|
988
1002
|
if((m_position != m_end)
|
|
989
1003
|
&& (0 == (this->flags() & regbase::main_option_type))
|
|
990
1004
|
&& (this->m_traits.syntax_type(*m_position) == regex_constants::syntax_plus))
|
|
991
|
-
{
|
|
1005
|
+
{
|
|
992
1006
|
possessive = true;
|
|
993
1007
|
++m_position;
|
|
994
1008
|
}
|
|
@@ -1105,6 +1119,13 @@ bool basic_regex_parser<charT, traits>::parse_repeat(std::size_t low, std::size_
|
|
|
1105
1119
|
else
|
|
1106
1120
|
contin = false;
|
|
1107
1121
|
break;
|
|
1122
|
+
case regex_constants::syntax_hash:
|
|
1123
|
+
if (this->flags() & regex_constants::mod_x) {
|
|
1124
|
+
while((m_position != m_end) && !is_separator(*m_position++)){}
|
|
1125
|
+
contin = true;
|
|
1126
|
+
break;
|
|
1127
|
+
}
|
|
1128
|
+
BOOST_REGEX_FALLTHROUGH;
|
|
1108
1129
|
default:
|
|
1109
1130
|
contin = false;
|
|
1110
1131
|
}
|
|
@@ -19,9 +19,16 @@
|
|
|
19
19
|
#ifndef BOOST_C_REGEX_TRAITS_HPP_INCLUDED
|
|
20
20
|
#define BOOST_C_REGEX_TRAITS_HPP_INCLUDED
|
|
21
21
|
|
|
22
|
+
#ifndef BOOST_REGEX_AS_MODULE
|
|
23
|
+
#include <cctype>
|
|
24
|
+
#include <cstdint>
|
|
25
|
+
#include <cwctype>
|
|
26
|
+
#endif
|
|
27
|
+
|
|
22
28
|
#include <boost/regex/config.hpp>
|
|
23
29
|
#include <boost/regex/v5/regex_workaround.hpp>
|
|
24
|
-
#include <
|
|
30
|
+
#include <boost/regex/v5/primary_transform.hpp>
|
|
31
|
+
#include <boost/regex/v5/regex_traits_defaults.hpp>
|
|
25
32
|
|
|
26
33
|
namespace boost{
|
|
27
34
|
|
|
@@ -49,10 +56,10 @@ namespace boost{
|
|
|
49
56
|
|
|
50
57
|
}
|
|
51
58
|
|
|
52
|
-
template <class charT>
|
|
59
|
+
BOOST_REGEX_MODULE_EXPORT template <class charT>
|
|
53
60
|
struct c_regex_traits;
|
|
54
61
|
|
|
55
|
-
template<>
|
|
62
|
+
BOOST_REGEX_MODULE_EXPORT template<>
|
|
56
63
|
struct c_regex_traits<char>
|
|
57
64
|
{
|
|
58
65
|
c_regex_traits(){}
|
|
@@ -97,7 +104,7 @@ private:
|
|
|
97
104
|
};
|
|
98
105
|
|
|
99
106
|
#ifndef BOOST_NO_WREGEX
|
|
100
|
-
template<>
|
|
107
|
+
BOOST_REGEX_MODULE_EXPORT template<>
|
|
101
108
|
struct c_regex_traits<wchar_t>
|
|
102
109
|
{
|
|
103
110
|
c_regex_traits(){}
|