Skip to content

Conversation

MikeDvorskiy
Copy link
Contributor

[oneDPL][rfc][ranges][L1] the third portion of the range based API

@dmitriy-sobolev dmitriy-sobolev requested a review from Copilot August 1, 2025 11:34
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR introduces an RFC for the third portion of oneDPL range-based APIs, focusing on implementing additional parallel algorithms based on usage statistics from GitHub C++ code analysis. The proposal outlines the implementation approach, requirements, and testing strategy for these new range-based algorithm variants.

  • Proposes 14 new range-based algorithms including set operations, memory algorithms, and mutating algorithms
  • Establishes implementation requirements based on P3179 and P3709 proposals with support for all oneDPL execution policies
  • Defines comprehensive testing coverage requirements and implementation limitations for device policies

danhoeflinger
danhoeflinger previously approved these changes Aug 6, 2025
Copy link
Contributor

@danhoeflinger danhoeflinger left a comment

Choose a reason for hiding this comment

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

One optional wording change, but LGTM.
Largely this is similar to previous RFCs.

I wonder if it makes sense to extract some shared language between these in an umbrella RFC and have individual pieces reference that. Not sure if its worth the effort.

danhoeflinger
danhoeflinger previously approved these changes Aug 6, 2025
Copy link
Contributor

@danhoeflinger danhoeflinger left a comment

Choose a reason for hiding this comment

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

reapproving

@dmitriy-sobolev
Copy link
Contributor

reapproving

@danhoeflinger, sorry for dismissing your approval. I've added one more correction. I do not plan adding more.

  • The memory algorithms should be tested with std::ranges::subrange and std::span,
    adapters which can be used with manually allocated and managed storage.

That's because in order to test the memory algorithms, you need to manually manage memory. The views removed, such as std::views::all (already expects a range/container e.g. std::vector with automatic memory management), std::views::iota (does not point to underlying memory) and others are not suitable.

akukanov
akukanov previously approved these changes Aug 12, 2025
danhoeflinger
danhoeflinger previously approved these changes Aug 12, 2025
Copy link
Contributor

@danhoeflinger danhoeflinger left a comment

Choose a reason for hiding this comment

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

will reapprove if you apply my nitpick.

Co-authored-by: Dan Hoeflinger <[email protected]>
@dmitriy-sobolev dmitriy-sobolev dismissed stale reviews from danhoeflinger and akukanov via 60ebce0 August 12, 2025 16:11
@dmitriy-sobolev dmitriy-sobolev merged commit f1d516a into main Aug 12, 2025
2 checks passed
@dmitriy-sobolev dmitriy-sobolev deleted the dev/mdvorski/rfc_range_algo_3 branch August 12, 2025 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants