1[/============================================================================== 2 Copyright (C) 2018-2021 Nikita Kniazev 3 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6===============================================================================/] 7 8[section Changelog] 9 10[/////////////////////////////////////////////////////////////////////////////] 11[section:spirit_3_0_8 Spirit V3.0.8 (Boost V1.76.0)] 12 13* Fixed assertion in standard parser with an input containing characters from 14 extended charset (on values above 0x7F) [gh_pr 620] 15* Enhanced debug output to print unicode code points as hex [gh_pr 634] 16* Skip rule definition binder creation in `parse_rule` [gh_pr 646] 17* Replaced Boost.Math with std alternatives [gh_pr 648] 18* Fixed unqualified `get<typename>` call in `parse_rule` 19* Removed unused header `no_case_string_parse.hpp` 20* Make literal binary parser constructor non-templated 21* Fixed unqualified `get<typename>` call in `annotate_on_success::on_success` [gh 526] 22* Fixed multiple times missed `force_attribute` parameter. Adresses compilation 23 errors and slow compilation due to rule definition injection into context 24 when `force_attribute` is set to `true` [gh_pr 651] 25* Skip rule definition injection into context when a rule placeholder constructed 26 and immediately consumed (like `auto const grammar = rule<tag>{} = parser`) [gh_pr 650] 27 28[endsect] 29 30[/////////////////////////////////////////////////////////////////////////////] 31[section:spirit_3_0_7 Spirit V3.0.7 (Boost V1.74.0)] 32 33* Ceased dependence on Boost.Locale (replaced `locale::conv::utf_to_utf` 34 with `x3::to_utf8`), and Boost.Filesystem [gh_pr 596] 35* Fixed infinity recursion in `is_substitute` trait that was blocking recursive 36 sequences via containers [gh 461] [gh_pr 606] 37* Fixed sequence parser in alternative into container [gh 434] [gh_pr 605] 38* Fixed some corner cases in alternative parser with container attribute, 39 notably atribute-less parsers in alternative parser with container attribute 40 were appending an empty value [gh 394] [gh 603] [gh_pr 604] 41* Attribute type of alternative/sequence parsers now calculated without MPL, 42 what removes MPL limits on alternative/sequence parser chain length [gh 515] [gh_pr 607] 43* Reverted [gh_pr 534] that made possible parsing `optional<T>` into `T` [gh_pr 608] 44* Removed unneeded `reserve` before `insert` [gh_pr 611] 45* Removed `value_initialize` trait [gh_pr 613] 46* Removed unwanted move due to wrong `pseudo_attribute` usage, that was also 47 causing bogus GCC `-Wununinitlized` warning [gh_pr 613] 48* Removed unused `boost/spirit/home/x3/support/utility/unrefcv.hpp` header 49 50[endsect] 51 52[/////////////////////////////////////////////////////////////////////////////] 53[section:spirit_3_0_6 Spirit V3.0.6 (Boost V1.73.0)] 54 55* ADL used to find and match `unused_type` streaming operators for every type 56 in `boost::spirit::x3` namespace [gh_pr 553] [gh 552] 57* Ceased dependence on Boost.TTI 58* Rule placeholders now a non-trivial type because its copy constructor checks 59 for a static initialization fiasco [gh_pr 571] 60* Most parsers are now constexpr-constructible [gh_pr 570] 61 62[endsect] 63 64[/////////////////////////////////////////////////////////////////////////////] 65[section:spirit_3_0_5 Spirit V3.0.5 (Boost V1.72.0)] 66 67* `any_char` parser were accepting characters outside of encoding. [gh 520] [gh_pr 521] sehe 68* Added workaround `move_to` overload for `boost::optional` type. [gh 533] [gh_pr 534] Duzy Chan 69* Unicode out-of-bounds category lookup. [gh_pr 528] Christian Mazakas 70* Mismatched pragma warning push/pop in `escape_char.ipp`. [gh 532] [gh_pr 535] stefan301 71* Remove bool->char->bool conversion in `[no_]case_compare`. [gh_pr 536] 72* `<cctype>` functions were called with negative values. [gh_pr 543] 73* Fixed `parse_rule` definition check. [gh_pr 549] (regressed in [gh_pr 457]) 74 75[endsect] 76 77[/////////////////////////////////////////////////////////////////////////////] 78[section:spirit_3_0_4_boost_1_71 Spirit V3.0.4 (Boost V1.71.0)] 79 80* Explicitly delete all non implemented assignment operators. [gh_pr 489] Romain Geissler 81* Unpublish `x3/support/utility/testing.hpp`. [gh_pr 492] 82* Removed unused `is_char` and `is_string` traits. [gh_pr 507] 83* Simplified `string_traits`. [gh_pr 507] 84* `raw` parser attribute materialization issue. [gh 509] 85* Removed static assert guarding unwanted attribute materialization that 86 happens when rule parser producing an attribute called without an actual 87 attribute. See [gh 511] for the discussion. 88 89[endsect] 90 91[/////////////////////////////////////////////////////////////////////////////] 92[section:spirit_3_0_4 Spirit V3.0.4 (Boost V1.70.0)] 93 94* Integer parsers should now handle user defined types. [gh_pr 429] 95*[/^] [*Note:] The `check_overflow` trait default implementation now relies on 96 `std::numeric_limits<T>::is_bounded` instead of `boost::integer_traits<T>::is_integral`. 97* Removed use of deprecated `boost/detail/iterator.hpp` header. [gh_pr 432] 98* Removed sequence into plain parsing. Now it triggers a compile time error 99 instead of silently parsing the the sequence and taking the last value as a result. [gh_pr 439] 100* Fixed `parse_rule` instantiation with `BOOST_SPIRIT_INSTANTIATE` when: 101 * A rule has no attribute. [gh_pr 455] 102 * An actual attribute is not of type a rule was declared with. [gh_pr 456] [gh 457] 103*[/^] A [*huge] thanks goes out to [@https://github.com/Xeverous Xeverous] 104 for reporting a regression in [gh 453]. 105* Fixed unneeded attribute synthesization and no-transformation attribute 106 reference pass-through in rules. [gh 444] [gh_pr 449] [gh_pr 452] 107* Removed broken 1.0#INF parser. It was poorly documented and never worked. [gh 415] [gh_pr 458] [trac 8699] 108* The undocumented `make_attribute` trait was removed due to bugs [gh_pr 449] 109 and to simplify attribute transformation. [gh_pr 460] 110*[/^] If you were using it to workaround bugs in attribute transformation - 111 they should not be needed anymore as of this release. 112* The integer value parser now respects `std::numeric_limits<T>::digits10` value. [gh_pr 469] 113* Fixed underflow check for a `(Min % Base) == 0` corner case. [gh_pr 469] 114* Fixed an output value on overflow of `IgnoreOverflowDigits=true` integer parser. [gh_pr 470] 115* Container attribute elements were copyied, but not moved. [gh_pr 472] 116* Special handling of references in `transform_attribute` was removed. [gh_pr 480] 117 118[endsect] 119 120[/////////////////////////////////////////////////////////////////////////////] 121[section:spirit_3_0_3 Spirit V3.0.3 (Boost V1.69.0)] 122 123* Drop own FP routines in favor of `boost::math`. [gh_pr 392] [trac 13531] 124* Missing visibility mark on exception types. [gh_pr 409] 125* to_utf8: Fixed `wchar_t` handling on Windows. [gh_pr 413] [gh 395] 126 127[endsect] 128 129[/////////////////////////////////////////////////////////////////////////////] 130[section:spirit_3_0_2 Spirit V3.0.2 (Boost V1.68.0)] 131 132* Small list parser optimization. [gh_pr 368] 133* Pass container attributes through sequence parser or unary 134 ending down to a sequence parser. [gh_pr 370] [trac 12085] 135* More fine grained sequence attribute check message. [gh_pr 371] 136* Removed redundant check in `skip_over`. [gh_pr 373] 137* Workaround constexpr in noexcept VS2015 bug in entire `x3::variant`. [gh_pr 379] 138* Fixed `calc4b` example compilation. [gh_pr 384] 139* Minor code improvements. [gh_pr 374] 140 141[endsect] 142 143[/////////////////////////////////////////////////////////////////////////////] 144[section:spirit_3_0_1 Spirit V3.0.1 (Boost V1.67.0)] 145 146There was no version bump and changelog for Boost V1.56.0-1.66.0 releases. 147 148* Removed `with_context`. [gh_pr 239] 149* Added noexcept to `x3::variant` and `forward_ast`. [gh_pr 241] 150* CR+LF lines wrongly counted in `error_handler::position()`. [gh_pr 248] 151* Fixed `unused_type` attribute case in `parse_into_container`. [gh_pr 266] 152* Fixed parsing into associative containers. [gh_pr 289] 153* Fixed overflow problem in `uint_parser<signed T>`. [gh_pr 297] 154* Added VS2015 Update 3 support by using workarounds. [gh_pr 308] 155* Fixed include guard names collision with Qi. [gh_pr 313] 156* Added parsing into range. [gh_pr 316] [trac 12928] 157* Changed iterator concept static assert from `ForwardIterator` to 158 `ReadableIteratorConcept && ForwardTraversalConcept`. [gh_pr 320] 159* Reenabled `fusion::map` support. [gh_pr 330] 160* Fixed `string("...")` and `attr("...")` to single item sequence. [gh_pr 337] 161* Dereference a single item view instead of unwrapping sequence. [gh_pr 340] 162* Prevent `parse_nan` from dereferencing out of range iterator. [gh_pr 351] 163* Use traits to test if container is empty. [gh_pr 355] 164 165[endsect] 166 167[endsect] 168