Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P2767 R2 flat_map/flat_set omnibus #1539

Open
wg21bot opened this issue May 26, 2023 · 6 comments
Open

P2767 R2 flat_map/flat_set omnibus #1539

wg21bot opened this issue May 26, 2023 · 6 comments
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e IS Ship vehicle: IS LEWG Library Evolution size - large paper size estimate
Milestone

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented May 26, 2023

P2767R0 flat_map/flat_set omnibus (Arthur O'Dwyer)

@wg21bot wg21bot added the LWG Library label May 26, 2023
@wg21bot wg21bot added this to the 2023-telecon milestone May 26, 2023
@JeffGarland JeffGarland added the LEWG Library Evolution label Jun 10, 2023
@JeffGarland
Copy link
Member

@brycelelbach this needs LEWG attention. From the paper:

Some of the proposed solutions are LEWG-level design changes. Contrariwise, some of the issues collected here don’t have "solutions" at all, but are recorded merely For Your Information (for other vendors/implementors) to document the design choices libc++ has made.

Quick reading is that ‘at least these’ sections
4. Accidentally explicit constructor
5. Add move semantics to flat_set::insert_range
6. Add move semantics to flat_map::insert_range
7. insert is more primitive than emplace

@wg21bot
Copy link
Collaborator Author

wg21bot commented Jul 21, 2023

P2767R1 flat_map/flat_set omnibus (Arthur O'Dwyer)

@wg21bot wg21bot changed the title P2767 R0 flat_map/flat_set omnibus P2767 R1 flat_map/flat_set omnibus Jul 21, 2023
@inbal2l inbal2l added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - large paper size estimate C++26 Targeted at C++26 B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e labels Jul 23, 2023
@inbal2l inbal2l added the IS Ship vehicle: IS label Jul 31, 2023
@inbal2l inbal2l added the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Oct 14, 2023
@wg21bot
Copy link
Collaborator Author

wg21bot commented Dec 19, 2023

P2767R2 flat_map/flat_set omnibus (Arthur O'Dwyer)

@wg21bot wg21bot modified the milestones: 2023-telecon, 2024-telecon Dec 19, 2023
@wg21bot wg21bot changed the title P2767 R1 flat_map/flat_set omnibus P2767 R2 flat_map/flat_set omnibus Dec 19, 2023
@inbal2l
Copy link
Collaborator

inbal2l commented Feb 17, 2024

2023-10-17 Library Evolution Telecon

P2767R1: flat_map/flat_set omnibus

2023-10-17 Library Evolution Telecon Minutes

Champion: Arthur O'Dwyer
Chair: Fabio Fracassi
Minute Taker: Ben Craig

Summary

The room was not convinced that all the changes were required, and was asking for:

  • Mark in the paper "Breaking" and "non-breaking" changes (possibly split into different papers).
  • Mark in the paper LEWG and LWG targeting changes.
  • Review the minutes and apply motivation on the topics that came up during the telecon.
  • Benchmarks that show the difference in approaches (fixed scan size vs. unfixed scan vs. 2 lg n)
  • Paper to consider code complexity in proposed approaches, both theoretically and in practice (some implementations use emplace_back with rotation, etc.)
  • Get feedback from the original author of flat_map (P0429), flat_set (P1222) on the proposed changes.

No polls were taken.

Next Steps

The author should publish a revision that includes the requested changes under "Summary", among which - adding motivation to each change in the paper, split into "Breaking" and "Non-Breaking" changes as well as LEWG and LWG targeting changes.
The room also asked for benchmarks for the proposed algorithmic changes.

@inbal2l inbal2l removed the scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review label Feb 17, 2024
@ldionne
Copy link

ldionne commented Sep 27, 2024

@inbal2l Hi! We are currently implementing flat_map for libc++ (llvm/llvm-project#98643) and we are revisiting many issues brought up in this paper. I think it would be useful to ensure that this paper makes progress, as some of the topics in the paper have fairly obvious resolutions. Do you think it would be better to tackle some of those as LWG issues instead?

@jensmaurer jensmaurer modified the milestones: 2024-telecon, 2025-telecon Dec 18, 2024
@cor3ntin
Copy link

#2211 contains a subset of the changes proposed in P2767 and should be seen first

@cor3ntin cor3ntin removed LWG Library ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting C++26 Targeted at C++26 labels Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B2 - improvement Bucket 2 as described by P0592: bug fixes, performance improvements, integration fixes for/between e IS Ship vehicle: IS LEWG Library Evolution size - large paper size estimate
Projects
No open projects
Status: No status
Status: No status
Development

No branches or pull requests

6 participants