All Versions
Latest Version
Avg Release Cycle
79 days
Latest Release
1029 days ago

Changelog History
Page 1

  • v3.0.0 Changes

    November 28, 2020
    • Use the migration guide when updating.
    • Infrastructure
      • Updated required C++ standard to C++17.
      • Updated required CMake version to 3.8.
      • The macro TAO_PEGTL_NAMESPACE now contains the fully qualified namespace, e.g. tao::pegtl.
      • Added [[nodiscard]] or [[noreturn]] to most non-void functions.
    • Meta-Data Layer
      • Replaced analysis_t with more general and complete rule_t and subs_t.
      • Added functions to visit all rules of a grammar.
      • Added functions to measure rule coverage of a parsing run.
      • Moved the analysis function and header to contrib.
    • Error Handling
      • Replaced tao::pegtl::input_error with std::system_error and std::filesystem::filesystem_error.
      • Added must_if<>
      • Allows to define custom error messages for global errors.
      • Adds a non-intrusive way to define global parse errors for a grammar retroactively.
    • Demangling
      • Removed the need for RTTI.
      • Some broken/unknown compilers will use RTTI as a fallback, without demangling.
      • Moved tao::pegtl::internal::demangle<T>() to tao::demangle<T>().
      • Improved generated code to be shorter and more efficient.
    • ๐Ÿ“œ Parse Tree
      • Removed the need for RTTI.
    • Other
      • Changed std::string to std::filesystem::path for filename parameters.
      • Renamed byte_in_line to column and use 1-based counting.
      • Moved rule eolf from inline namespace tao::pegtl::ascii to tao::pegtl.
      • Changed rules in tao/pegtl/contrib/integer.hpp to not accept redundant leading zeros.
      • Added rules to tao/pegtl/contrib/integer.hpp that test unsigned values against a maximum.
      • Demoted UTF-16 and UTF-32 support to contrib.
      • Demoted UINT-8, UINT-16, UINT-32 and UINT-64 support to contrib.
      • Folded contrib/counter.hpp into json_count.cpp, count is superceded by coverage.
      • Removed right padding from contrib/json.hpp's value.
    • Cleanup
      • Removed option of state's S::success() to have an extended signature to get access to the current apply_mode, rewind_mode, action- and control class (template).
      • Removed compatibility macros starting with TAOCPP_PEGTL_.
      • Removed compatibility uppercase enumerators.
      • Removed compatibility peek_byte() member functions.
      • Removed compatibility header changes.hpp from contrib.
  • v2.8.3 Changes

    April 22, 2020
    • ๐Ÿ›  Fixed excessive read-ahead with incremental inputs.
    • Added state manipulators remove_first_state, remove_last_states, rotate_states_right, rotate_states_left, and reverse_states to contrib.
    • โฌ‡๏ธ Reduced the number of intermediate parse tree nodes.
  • v2.8.2 Changes

    April 04, 2020
    • ๐Ÿ›  Fixed parse tree node generation to correctly remove intermediate nodes.
  • v2.8.1 Changes

    August 06, 2019
    • โž• Added fallback symbol demangling if RTTI is disabled.
    • ๐Ÿ›  Fixed missing string_input<> in amalgamated header.
    • Fixed discard_input* actions to properly forward the apply mode.
    • ๐Ÿ›  Fixed contrib HTTP grammar for chunked data.
  • v2.8.0 Changes

    April 09, 2019
    • Use the migration guide when updating.
    • ๐Ÿ”„ Changed enumerators to lowercase.
      • Renamed tracking_mode::IMMEDIATE to tracking_mode::eager.
      • Compatibility enumerators with uppercase names are still included.
      • Will be removed in version 3.0.0.
    • Renamed peek_byte() to peek_uint8().
      • Compatibility member functions with previous names are still included.
      • Will be removed in version 3.0.0.
    • ๐Ÿ‘ Allowed actions to implement match.
    • Made deriving action class templates from nothing optional.
    • Added debug tools require_apply and require_apply0.
    • โž• Added combinator class rematch.
    • ๐Ÿ‘Œ Improved the Parse Tree / AST interface to mostly hide its internal state.
    • โž• Added new action-based helpers change_*.hpp.
      • The control-based helpers in contrib/changes.hpp are still included.
      • Will be removed in version 3.0.0.
    • Added new action-based helpers disable_action.hpp and enable_action.hpp.
    • Added new action-based helpers discard_input.hpp, discard_input_on_success.hpp, and discard_input_on_failure.hpp.
    • โž• Added Clang Static Analyzer to the CI build.
    • โž• Added new Makefile target amalgamate to generate a single-header version of the PEGTL.
    • ๐Ÿ Added support for Universal Windows Platform (UWP).
  • v2.7.1 Changes

    September 29, 2018
    • โž• Added new ASCII convenience rule forty_two.
    • โž• Added experimental if_then rule.
    • ๐Ÿ“œ Simplified how parse tree nodes can be selected.
    • โฌ‡๏ธ Reduced the number of intermediate parse tree nodes.
    • ๐Ÿ‘ Allowed an action class template to be used with the parse tree.
  • v2.7.0 Changes

    July 31, 2018
    • โž• Added mmap_file<> support for Windows.
    • Added deduction guides for the input classes when compiling with C++17.
  • v2.6.1 Changes

    July 22, 2018
    • ๐Ÿ›  Fixed endianness detection in test program.
  • v2.6.0 Changes

    June 23, 2018
    • โž• Added Conan packages.
    • ๐Ÿ›  Fixed the UTF-8 decoder to no longer accept UTF-16 surrogates.
    • ๐Ÿ›  Fixed the UTF-16 decoder to no longer accept UTF-16 unmatched surrogates.
    • ๐Ÿ›  Fixed the UTF-32 "decoder" to no longer accept UTF-16 surrogates.
    • ๐Ÿ›  Fixed pegtl/contrib/unescape.hh to no longer accept unmatched surrogates.
    • Optimised convenience rule two.
    • โž• Added new convenience rule three.
  • v2.5.2 Changes

    May 31, 2018
    • ๐Ÿ›  Fixed opt and until to work as documented in some rare edge cases.
    • Used opt_must and star_must to optimise some included grammars.