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

P0211 Allocator-aware library wrappers for dynamic allocation #323

Open
wg21bot opened this issue Jan 31, 2019 · 6 comments
Open

P0211 Allocator-aware library wrappers for dynamic allocation #323

wg21bot opened this issue Jan 31, 2019 · 6 comments
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWG Library Evolution needs-revision Paper needs changes before it can proceed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - small paper size estimate

Comments

@wg21bot
Copy link
Collaborator

wg21bot commented Jan 31, 2019

P0211R2 Allocator-aware library wrappers for dynamic allocation (Thomas Köppe)

@wg21bot wg21bot added this to the 2019-07 milestone Jan 31, 2019
@wg21bot wg21bot added C++23 Targeted at C++23 LEWG Library Evolution labels Jan 31, 2019
@jensmaurer
Copy link
Member

LEWG-I in San Diego: Forward to LEWG for C++23.

@jensmaurer jensmaurer added this to Wednesday in LEWG in Cologne 2019 Jul 13, 2019
@jensmaurer jensmaurer modified the milestones: 2019-07, 2019-11 Aug 23, 2019
@FabioFracassi FabioFracassi added this to If time allows in LEWGBelfast2019 Oct 24, 2019
@FabioFracassi FabioFracassi moved this from If time allows to Wednesday Afternoon in LEWGBelfast2019 Oct 30, 2019
@wg21bot
Copy link
Collaborator Author

wg21bot commented Jan 18, 2020

P0211R3 Allocator-aware library wrappers for dynamic allocation (Thomas Köppe)

@wg21bot wg21bot modified the milestones: 2019-11, 2020-02 Jan 18, 2020
@brycelelbach
Copy link

Prague 2020-02 LEWG Minutes

P0211R3 std::allocate_unique

Chair: Bryce Adelstein Lelbach

Champion: Thomas Koeppe

Minute Taker: Ben Craig

Start Review: 2020-02-13 15:52

Should allocator_new/allocator_delete use allocator_traits<>::construct/allocator_traits<>::destroy instead of placement new/destroy?

Do we want allocator_new to take a T and rebind the allocator?

Start Polling: 16:20

POLL: We must have support for arrays in allocate_unique/allocator_new/allocator_delete in the first version we ship.

Strongly For Weakly For Neutral Weakly Against Strongly Against
0 0 12 4 0

Attendance:

# of Authors: 1

Author Position: N

POLL: Users should be able to name the types of the deleters returned by allocate_unique.

Strongly For Weakly For Neutral Weakly Against Strongly Against
1 6 3 2 0

Attendance: 33

# of Authors: 1

Author Position: WF

That has weak consensus.

POLL: We must have allocate_unique_for_overwrite in the first version we ship.

Strongly For Weakly For Neutral Weakly Against Strongly Against
0 5 9 1 0

Attendance: 33

# of Authors: 1

Author Position: N

That has weak consensus.

POLL: We must support cv-qualified types in the first version of allocate_unique/allocator_new/allocator_delete.

Strongly For Weakly For Neutral Weakly Against Strongly Against
1 9 2 1 0

Attendance: 33

# of Authors: 1

Author Position: SF

That has consensus.

What allocator should allocate_unique use in the allocator_deleter:

  • The original allocator (e.g. A).
  • The rebound allocator used for allocation (e.g. A::rebind<T>).
  • The original allocator rebound to std::byte (reduces the number of allocator types you generate).
    • This breaks fancy pointer.

End: 16:53

CONSENSUS: Bring a revision of P0211R3 (allocator-aware library wrappers for dynamic allocation), with the guidance below, to LEWG for further review.

  • Array support is not required right now.
  • allocator_delete should be nameable by users.
  • Bikeshed allocator_delete on the LEWG mailing list.
  • allocate_unique/allocator_new/allocator_delete must support cv-qualified types.
  • Add allocate_unique_for_overwrite.

@brycelelbach brycelelbach added the needs-revision Paper needs changes before it can proceed label Feb 14, 2020
@jensmaurer jensmaurer removed this from the 2020-02 milestone Feb 18, 2020
@jensmaurer jensmaurer removed the C++23 Targeted at C++23 label Mar 7, 2020
@brycelelbach brycelelbach added B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 IS Ship vehicle: IS labels Aug 25, 2020
@brycelelbach brycelelbach added the C++23 Targeted at C++23 label Sep 18, 2021
@brycelelbach brycelelbach added ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list needs-revision Paper needs changes before it can proceed and removed needs-revision Paper needs changes before it can proceed C++23 Targeted at C++23 labels Nov 3, 2021
@cor3ntin cor3ntin added the C++23 Targeted at C++23 label Dec 8, 2021
@brycelelbach brycelelbach added scheduled-for-library-evolution This paper has been scheduled for one of the groups: LEWG, LEWG Incubator, or a Mailing List review size - medium paper size estimate size - small paper size estimate and removed needs-revision Paper needs changes before it can proceed size - medium paper size estimate labels Dec 22, 2021
@jensmaurer jensmaurer added this to the 2022-telecon milestone Jan 1, 2022
@cor3ntin cor3ntin added C++26 Targeted at C++26 and removed C++23 Targeted at C++23 labels Jan 16, 2022
@cor3ntin
Copy link

Given recent mailing list feedback, scheduling and backlog, this is very unlikely to be able to target c++23, removing the tag

@brycelelbach brycelelbach 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 1, 2022
@brycelelbach
Copy link

This may need a new champion.

@brycelelbach brycelelbach added ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting and removed ready-for-library-evolution-mailing-list-review This paper needs to be discussed on the Library Evolution mailing list labels Sep 22, 2022
@brycelelbach brycelelbach added library-evolution-deferred Ready for review, but should not be scheduled needs-revision Paper needs changes before it can proceed and removed library-evolution-deferred Ready for review, but should not be scheduled needs-revision Paper needs changes before it can proceed labels Nov 7, 2022
@brycelelbach
Copy link

2022-11-11 10:00 to 11:30 UTC-10 Kona Library Evolution Meeting

P0211R4: allocate_unique

2022-11-11 10:00 to 11:30 UTC-10 Kona Library Evolution Minutes

Champion: Thomas Koeppe (in-person)

Chair: Bryce Adelstein Lelbach & Robert Leahy

Minute Taker: Steve Downey

Start: 2022-11-11 11:09 UTC-10

POLL: We should promise more committee time to pursuing P0211R4 (allocate_unique), knowing that our time is scarce and this will leave less time for other work.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
5 6 1 2 0

Attendance: 16 (in-person) + 3 (remote)

# of Authors: 1

Author Position: WF

Outcome: Consensus in favor.

WA: I think the paper's great, I just want allocators to die in a fire.

POLL: P0211R4 (allocate_unique) should follow the Boost design.

Strongly Favor Weakly Favor Neutral Weakly Against Strongly Against
3 6 4 0 0

Attendance: 16 (in-person) + 3 (remote)

# of Authors: 1

Author Position: WF

Outcome: Weak consensus in favor.

End: 11:34

Summary

Library Evolution briefly reviewed this paper, which proposes allocate_unique. The status quo design doesn't rebind allocators and as a consequences doesn't support arrays. We discussed the design of Boost's version of this facility as an alternative. No notable downside with the Boost approach was identified, and it supports more features that we felt were important, like arrays. So, we had consensus to adopt the Boost design.

Next Steps

Revise the paper, adopting the Boost design, and return to Library Evolution for further design review.

@jensmaurer jensmaurer removed this from the 2022-telecon milestone Jan 25, 2023
@cor3ntin cor3ntin removed the library-evolution-deferred Ready for review, but should not be scheduled label Oct 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
B3 - addition Bucket 3 as described by P0592: material that is not mentioned in P0592 C++26 Targeted at C++26 IS Ship vehicle: IS LEWG Library Evolution needs-revision Paper needs changes before it can proceed ready-for-library-evolution-meeting-review This paper needs to be discussed at a Library Evolution meeting size - small paper size estimate
Projects
Status: No status
LEWGBelfast2019
Wednesday Afternoon (NB comment buffe...
Development

No branches or pull requests

4 participants