P2075 R6 Philox as an extension of the C++ RNG engines
Closed this issue · 13 comments
P2075R0 Philox as an extension of the C++ RNG engines (Pavel Dyakov, Ilya Burylov, Ruslan Arutyunyan, Andrey Nikolaev)
Reviewed Monday in Prague, but informally without quorum. We generally found the argument for Philox compelling.
P2075R1 Philox as an extension of the C++ RNG engines (Pavel Dyakov, Ilya Burylov, Ruslan Arutyunyan, Andrey Nikolaev, John Salmon)
2022-04-28 SG6 Telecon
P2075R1: Philox as an extension of the C++ RNG engines
2022-04-28 SG6 Telecon Minutes
Chair: Matthias Kretz
Champion: Ilya Burylov
Minute Taker: Dietmar Kühl
SUMMARY: Design questions raised were not nailed down and left up to authors and LEWG to decide. Feedback was given on how to provide an interface for splitting X (the counter). Assuming the guidance will be implemented, the next revision of the paper should target LEWG.
POLL:
- Do you prefer a single engine? 3
- Do you prefer a split between engine and PRF? 2
# of Authors: 2
# of Participants: 8
Author Position: prefer a single engine
Outcome: no guidance
POLL: Any objection to forwarding a new revision of the paper to LEWG, assuming the guidance we gave is implemented.
Outcome: unanimous consent
P2075R2 Philox as an extension of the C++ RNG engines (Pavel Dyakov, Ilya Burylov, Ruslan Arutyunyan, Andrey Nikolaev, John Salmon)
2023-02-07 SG6 Issaquah Meeting
P2075R2: Philox as an extension of the C++ RNG engines
2023-02-07 SG6 Issaquah Meeting Minutes
Champion: Ilya Burylov
Polls
POLL: Forward P2075R2 to LEWG without the feature to control correlation.
SF | F | N | A | SA |
---|---|---|---|---|
2 | 7 | 2 | 0 | 0 |
Outcome: Consensus
2023-09-26 Library Evolution Telecon
P2075R2: Philox as an extension of the C++ RNG engines
2023-09-26 Library Evolution Telecon Minutes
Champion: Ilya Burylov
Chair: Ben Craig
Minute Taker: Mark Hoemmen
Summary
POLL: We should promise more committee time to pursuing P2075: "Philox as an extension of the C++ RNG engines", knowing that our time is scarce and this will leave less time for other work.
Strongly Favor | Weakly Favor | Neutral | Weakly Against | Strongly Against |
---|---|---|---|---|
4 | 5 | 4 | 0 | 0 |
Attendance: 20
# of Authors: 2
Author Position: 2xSF
Outcome: Consensus
Next Steps
Next revision of the paper should discuss cross vendor buy in. Does this meet the stated goals on multiple ISAs?
Discuss set_counter interface choices. Maybe span would be a better input choice. Maybe a new philox_counter type would be better.
Consider a get_counter method.
Evaluate whether the latest wording patterns are used in the paper, particularly regarding the stream operator declarations (or lack thereof).
2023-11-28 Library Evolution Telecon
P2075R3: Philox as an extension of the C++ RNG engines
2023-11-28 Library Evolution Telecon Minutes
Champion: Ilya Burylov
Chair: Ben Craig
Minute Taker: Mark Hoemmen
Summary
Does this paper have:
- Why does this belong in the standard library?
Lots of progress in engine design, and this engine is useful for parallelization. Other existing engines are not good for parallelization. This engine has wide usage experience. Good stats properties and performance. - Examples? Yes
- Field experience?
- Implementation experience? Yes
- Usage experience? Yes
- Deployment experience? algorithm, yes. This specific facility, no.
- Performance considerations? Yes
- Discussion of prior art? Yes
- Changes Library Evolution previously requested? No
- Wording? Yes*
- Breaking changes? No
- Feature test macro? Yes
- Freestanding? Random not currently freestanding. This doesn't use heap allocations or floating point math.
- Format and/or iostream support? iostream
- Hash support? No
- Allocator support? No
POLL: Which philox architecture do we prefer?
1 engine template (6. Philox-Focused) | Neutral | engine template + prf template (7. Generic counter_based_engine) |
---|---|---|
8 | 2 | 0 |
Attendance: 14
# of Authors: 2
Author Position: 2x Philox Focused
Outcome: 1 engine template (6. Philox-Focused)
We also did some early wording review, though we skipped some of the mathy parts.
Next Steps
-
Evaluate whether the latest wording patterns are used in the paper, particularly regarding the stream operator declarations (or lack thereof).
-
Next revision of the paper should discuss cross vendor buy in. Does this meet the stated goals on multiple ISAs? Are existing ARM implementations vectorized?
-
Remove wording for the discarded alternative (7. Generic counter_based_engine).
-
Provide the new revision and return to LEWG.
P2075R4 Philox as an extension of the C++ RNG engines (Ilya Burylov, Ruslan Arutyunyan; Andrey Nikolaev; Alina Elizarova; Pavel Dyakov; John Salmon)
2024-03-20 Library Evolution Tokyo
P2075R4: Philox as an extension of the C++ RNG engines
2024-03-20 Library Evolution Tokyo Minutes
Champion: Ruslan Arutyunyan
Chair: Ben Craig / Inbal Levi
Minute Taker: Guy Davidson
Summary
POLL: Send P2075R4 (Philox as an extension of the C++ RNG engines) to LWG for C++26 classified as B3, to be confirmed with a Library Evolution electronic poll.
SF | WF | N | WA | SA |
---|---|---|---|---|
5 | 7 | 0 | 0 | 0 |
Attendance: 11+4
# of Authors: 1
Author Position: SF
Outcome: Unanimous consent
Comments:
Next Steps
Fix the LWG issues discovered and minuted, and take the paper to LWG pending the electronic poll.