On Tue, Apr 12, 2022 at 10:02 PM Michael Wong <fraggamuffin@gmail.com> wrote:
Topic: SG14 Low Latency Monthly This meeting is focused on Low Latency/ Finance. 


Michael Wong is inviting you to a scheduled Zoom meeting.

Topic: SG14 monthly
Time: 2nd Wednesdays 02:00 PM Eastern Time 1800 UTC (US and Canada)
    Every month on the Second Wed,

Join from PC, Mac, Linux, iOS or Android:
    Password: 789626

Or iPhone one-tap :
    US: +12532158782,,93151864365# or +13017158592,,93151864365#
Or Telephone:
    Dial(for higher quality, dial a number based on your current location):
        US: +1 253 215 8782 or +1 301 715 8592 or +1 312 626 6799 or +1
346 248 7799 or +1 408 638 0968 or +1 646 876 9923 or +1 669 900 6833
 or 877 853 5247 (Toll Free)
    Meeting ID: 931 5186 4365
    Password: 789626
    International numbers available: https://iso.zoom.us/u/abRrVivZoD

Or Skype for Business (Lync):


1. Opening and introduction

ISO Code of Conduct

ISO patent policy.

IEC Code of Conduct:


WG21 Code of Conduct:


1.1 Roll call of participants
Staffan Tjernstom, Andrew Lumsdaine, Ben Saks, Guy Davidson, Henry Mille, Jens Maurer, Patrice Roy, Rene Riviera, Ronen Friedman, Michael Wong, Timur Doumler

1.2 Adopt agenda

1.3 Approve minutes from previous meeting, and approve publishing
 previously approved minutes to ISOCPP.org

1.4 Action items from previous meetings

2. Main issues (125 min)

2.1 General logistics

Future meeting plans

*Apr 13, 2022 02:00 PM ET/1800 UTC: Finance/Low Latency
*May 11, 2022 02:00 PM ET/1800 UTC: Games
*June 8, 2022 02:00 PM ET/1800 UTC: Embedded
*Jul 13, 2022 02:00 PM ET/1800 UTC: Finance/Low Latency
*Aug 10, 2022 02:00 PM ET/1800 UTC: Games
*Sep 12, 2022 02:00 PM ET/1800 UTC: Embedded
*Oct 12, 2022 02:00 PM ET/1800 UTC: Finance/Low Latency

2.2 Paper reviews
Discussion on Embedded:
Review latest mailings:
P2532 Removing exception_ptr from the receivers concept
Based on the last meeting and the discussions here.
P2544 C++ Exceptions are becoming more and more problematic
We might want to chime in here.
P. S. P2327 de-deprecating volatile received a "consensus" straw poll.

Discussion on Low Latency/Finance topics

presented by Timur
hard to access byte of object, not type punning which affects aliasing
char can alias any other type, not undefined.
char -> int, value does not fit in a char, can chop pointer, which can be undefined behaviour, 
lots of old code that does reinterpret cast to print the bytes, and this was valid until C++17, 
proposal is to un-UB this
what about launder? it is covered in a section
7.4.1 p3 can only access current active member of union 
what happens if it is a null ptr? null_ptr_t with be all 0 on most platforms, 
P0137R1 made it into UB, and we think that was just an inadverdant mistake while fixing the lifetime

How is this affected/different when using std::bit_cast instead of reinterpret_cast - if at all? bit_cast is different way, just a wrapper on memcpy, here we want to look at the byte as they are in memory. Cool - would be good to clarify that in the paper - as far as I can tell so far, every bit_cast implementation - when used on pointers at least - seems to just effectively do no memcpy and just is equivalent to reinterpret_cast.

ptr to vtable, 4 byte offset issue from Andrew

bit cast gives u fully live object 
memcpy can only copy between object of same type
no requirement in C++ that random object need to have continuous value representation, so should not work for virtual functions or virtual base classes - but that is not what the wording saids in p6.1 has a requirement for object continguous property - then that could be a bug in the wording
may need to limit the effect to object that is well behaved - contiguous? 
looking at 7.1.2 green blob of words 
I can confirm that classes with virtual functions are not standard-layout classes.
We have a trait named has_unique_representations that comes close to expressing contiguousness in terms of (essentially) having no padding, but it's a Library trait : https://en.cppreference.com/w/cpp/types/has_unique_object_representations
In the sense of "I'm unsure if it can be used in a Core language discussion"

follow on paper:
has definition of contiguous bytes of storage, so please add a cross-reference
The reference.. https://eel.is/c++draft/intro.object#8.4

Patrice's paper on Making C++ better for game developers.
How to proceed with this big paper?
do we agree with general principles
- simple teachable C++
- no negative performance impact
- debugging matters (fast debug builds) that can be turned off in release mode
(due to high turn over)
finance care about how the code will run
ranges, monadic types, futures, a lot more processing embedded in C++ Std makes it hard for RTOS, deep call stack of ranges is hard to debug

Traits  section removed

Compile time computing requested by games

allow overloading by constexpr arguments
use case is string literal, and runtime produced by character pointer, so can we see use case that don't involved string literals

Source location with nameof (C# style) for logging core dump
Is it compiler or runtime info?
data members should not be variable unless they are static data members, may be object scope
also having reflection support would be nice 
reflection features should ask SG7, enum inspections 

Not going to keep all of this, but remove some and give form to the rest of the request

Compile-time string interpolation
For the runtime a nicer looking syntax that defies the lexing convention of C++ is novelty

Determinism: need to know it never allocates from embedded side, with static assert to say that might be ok
also important for audio (but static assert could be error prone)
and safety critical applications like autonomous vehicles


Or take option one by one
take self evident ones first
removed solved ones
 identify missing pieces 

On Hive from Matthew Bentley
I have feedback to share from the final LEWG talk (until next month) - will take some time when you're all ready - shouldn't take more than 5 minutes :) 
 Priority parameter has been removed, is biggest news
Probably right thing to do


Discussion about Games topics:

 P2388R1 - Minimum Contract Support: either Ignore or Check_and_abort

Patrice's WIP on Games issues.

Finance topics from July 14, 2021.



2.2.1 any other proposal for reviews?

Deterministic Exception for Embedded by James Renwick


SG14/SG19 features/issues/defects:


2.3 Domain-specific discussions

2.3.1 SIG chairs

   - Embedded Programming chairs: Ben Craig, Wouter van Ooijen and Odin
 Holmes, John McFarlane

   - Financial/Trading chairs: Staffan TjernstrÃm
Carl Cooke, Neal Horlock,
   - Games chairs: Rene Riviera, Guy Davidson and Paul Hampson, Patrice Roy

   - Linear Algebra chairs: Bob Steagall, Mark Hoemmen, Guy Davidson

2.4 Other Papers and proposals

2.5 Future F2F meetings:

2.6 future C++ Standard meetings:


3. Any other business
As well as look through papers marked "SG14" in recent standards committee
paper mailings:

Code and proposal Staging area
4. Review

4.1 Review and approve resolutions and issues [e.g., changes to SG's
working draft]

4.2 Review action items (5 min)

5. Closing process

5.1 Establish next agenda

5.2 Future meeting

*Apr 13, 2022 02:00 PM ET/1800 UTC: Finance/Low Latency
*May 11, 2022 02:00 PM ET/1800 UTC: Games
*June 8, 2022 02:00 PM ET/1800 UTC: Embedded
*Jul 13, 2022 02:00 PM ET/1800 UTC: Finance/Low Latency
*Aug 10, 2022 02:00 PM ET/1800 UTC: Games
*Sep 12, 2022 02:00 PM ET/1800 UTC: Embedded
*Oct 12, 2022 02:00 PM ET/1800 UTC: Finance/Low Latency