boostorg/spirit_x4

X3 -> X4 transition

Open

#1 opened on Sep 13, 2025

 (0 comments) (0 reactions) (1 assignee)C++ (3 forks)auto 404
CIbugdocumentationenhancementhelp wanted

Repository metrics

Stars
 (37 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Note: This library is currently under heavy development.

We will not accept unrelated PRs until this transition is complete. If you have any idea for supporting the migration process, please contact us by posting a comment on this issue.

History: https://lists.boost.org/archives/list/boost@lists.boost.org/thread/K3EQLEQJHEUBROB6ODUKTZHFP2FDUS2E/?sort=date

X4 Release Plan

Estimated release date: Q2 2026

We will officially release X4 when all of the following conditions are satisfied. This list is provided as-is, and may change in the future.

  • The policy and the status quo of the development is fully described in our new README.
  • All the essential long-standing bugs and unimplemented features from the X3 era is resolved.
  • No controversial semantic ambiguities remain in both the codebase and the new documentation.
  • All public customization point shall be placed inside namespace extension, or each one should be clarified (by code comments) whether it is allowed to specialize.
  • Basic documentation is available to help beginners learn and use X4 in a new application.
    • We are intentionally not aiming for comprehensive documentation in the initial release; the effort would be impractical.
  • X4 has zero Boost dependencies, i.e., we successfully replace Boost.Variant, Boost.Fusion, and Boost.Endian.

After the above conditions are met, I will contact the core member of the Boost Organization, then our repository boostorg/spirit_x4 will be added to the boostorg/boost superproject.

Dependency PRs

  • #31
  • #34
  • #48
  • Replace boost::fusion -- @yaito3014 is working on the fork
    • #54
    • ... more coming soon ...
  • Replace boost::variant -- We (@saki7 and @yaito3014) have finished implementing the standalone implementation on spring-summer 2025, repo at yaito3014/rvariant; pending PR.
  • Remove boost::endian dependency -- #74

Transition / Deprecation PRs

  • #4
  • #18
  • #19
  • #28
  • #29
  • #30
  • #32
    • Follow-up: #36
  • #40
    • Follow-up: #66
  • #41
  • #50
    • Follow-up: #56
  • #55
  • #61
  • #68
  • #72
  • #71
  • #75
  • Rename list to delimited_list

Core Feature / Core Optimization PRs

  • #37
    • Follow-up: #57
  • #42
  • #46
  • #53
    • Follow-up: #69
  • #73

Debugging PRs

  • Make get_info::operator() static
    • Remove result_type
  • Improve debug print for char32_t
  • Add NatVis support

QoL PRs

  • #33
  • #44
    • Follow-up: #47
  • #52
  • #58
  • #65
  • #67
  • #70
  • Reconsider entities defined in traits:: and extension::, reconsider naming of concepts
  • Add .clang-tidy
  • Add cppwarningnotifier[bot]

Documentation / Semantic Clarification PRs

  • #64
  • Revise README (fix #21)
  • Revise documentation (fix #2)

Contributor guide