Skip to content

⚡ perfrom flow graph dsl calculations in type space#908

Draft
mjcaisse-intel wants to merge 1 commit into
intel:mainfrom
mjcaisse-intel:flatten
Draft

⚡ perfrom flow graph dsl calculations in type space#908
mjcaisse-intel wants to merge 1 commit into
intel:mainfrom
mjcaisse-intel:flatten

Conversation

@mjcaisse-intel

Copy link
Copy Markdown
Contributor

Problem:

  • Some projects that heavily use flow can take considerable time to compile.
  • get_edges_t CPO is effectively cubic growth in the front-end: O(N³)

Solution:

  • Don't recursively tuple_cat at each of the expression (>>) levels of the graph.
  • We don't need the intermediate tuple values. Materialize the tuple as late as possible but doing the calculations in type space.

@mjcaisse-intel
mjcaisse-intel marked this pull request as draft June 1, 2026 22:47
Comment on lines +45 to +49
template <typename List> struct to_tuple;
template <typename... Ts> struct to_tuple<boost::mp11::mp_list<Ts...>> {
constexpr static auto value = stdx::tuple<Ts...>{};
};
template <typename List> constexpr auto to_tuple_v = to_tuple<List>::value;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: Use boost::mp11::mp_apply<stdx::tuple, List>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants