Github user ben-craig.  Sign me up


From: SG14 <> On Behalf Of Paul M. Bendixen via SG14
Sent: Thursday, April 9, 2020 4:55 AM
Cc: Paul M. Bendixen <>
Subject: [EXTERNAL] Re: [SG14] Apr 8th Sg14 monthly call agenda


Minor nit:

My name is BendiXen, but maybe you used all the xs for variables ;-)


My comment regarding cassert was to say that having different rules for embedded and the rest of C++ was a hindrance to adoption ( e.g. using libraries)



Paul Bendixen


tor. 9. apr. 2020 11.04 skrev Guy Cpp via SG14 <>:

Please add me to the attendee list; I turned up a little late.



On Wed, 8 Apr 2020 at 21:00, Michael Wong via SG14 <> wrote:



On Wed, Apr 8, 2020 at 11:55 AM Michael Wong <> wrote:

Topic: SG14 Low Latency Monthly. Hi all, I have turned on high security for this call in light of recent events.


Michael Wong is inviting you to a scheduled Zoom meeting.

Topic: SG14 monthly Apr 2020-Oct 2020
Time: Apr 8, 2020 02:00 PM Eastern Time (US and Canada)

Time: May 13, 2020 02:00 PM Eastern Time (US and Canada)

Time: June 10, 2020 02:00 PM Eastern Time (US and Canada)

Time: Jul 8, 2020 02:00 PM Eastern Time (US and Canada)

Time: Aug 12, 2020 02:00 PM Eastern Time (US and Canada)

Time: Sep 9, 2020 02:00 PM Eastern Time (US and Canada)

Time: Oct 14, 2020 02:00 PM Eastern Time (US and Canada)

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

Or iPhone one-tap :
    US: +13462487799,,819108882#  or +14086380968,,819108882#
Or Telephone:
    Dial(for higher quality, dial a number based on your current location):
        US: +1 346 248 7799  or +1 408 638 0968  or +1 646 876 9923  or +1 669 900 6833  or +1 253 215 8782  or +1 301 715 8592  or +1 312 626 6799  or 877 853 5247 (Toll Free)
    Meeting ID: 819 108 882
    Password: 013549
    International numbers available:

Or Skype for Business (Lync):



1. Opening and introductions

1.1 Roll call of participants

Derek Haines

Henry Miller

James renwick

Andrews Weis

Antony Peacock

ben Craig, Ben Saks


Connor Horman

Max Gardner

Patrice Roy

Paul Bendien

Sophia Poirier

Staffan Tjernstrom

Steven Varga

Jens Maurer

Inbal Levi

Michael Wong

Dan Raviv?

Charles Bay

Matthew Butler








1.2 Adopt agenda


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



1.4 Action items from previous meetings

2. Main issues (125 min)

2.1 General logistics

Prague summary

Mailing deadline is monthly on 15th

All meetings going online.

2.2 Paper reviews


Low-cost Deterministic C++ Exceptions for Embedded Systems

Low-cost Deterministic C++ Exceptions for Embedded Systems

James Renwick

James Renwick et al.

 BC: passing an address, so you can indirect jmp instead of return?

leave optimzation off for now, what it this just look like normal code


when propagating exception up the call stack, just do a return

BC: regular processor, branch cost is small, but on gpu divergign control throws is high, throwing an exception on gpu is already expensive

for gpu instead of terminate might do a HW specific thing

CH: too many banches will cross bank boundaries;

Even with a nave implementaion, we can see n times better


ST: precompield external libraries 1K allocated for stack and with only 256 bytes from the stack, what happens? Right we dont deal with dynamic library yet, but it doesnt make teh exception object unique, and nothing is unique on the exception object here

DLL and static libraries crossing boundary may be UB  here or an ODR violation


JM: table reduction does not match waht you said about text increase maching?

because unwind library is gone


BC: version of clang?

clang 6


CH:on function size vs binary size;

should the catch block, which can be called out to another function,


buffer on where to put EH object and it falls back to the heap, so this  can do the same thing

need to inject parameter, which could thow., need to distinguisj C and C++ function so need throw specifier added, abi change

or pass by TLS


a C language linkage, dont inject, standards says thata fn pointer inside a structure,

type of ptr

extern C allowed to throw, so we can detect what linkage a fn has

C adapting deterministic exception

we just need implmentation with a compielr flag

parameter injection will be an abi break


exception_ptr was intended to allow copying to support bot hreference counting heap allocated as is eager copy implementations


you know the size because you call the copy constructor and not just memcpy it

resolve copy construction when you write the throw expression so you know the size of the xception object

but if pass exception ptr through to another functions object, that could take a dynamic size, 

if you can pass exception ptr around, can assign it to global variable, stack space does not matter, you have a life time problem; so it has to be on the heap to solve this

so if eh object lives on stack, cant touch the heap, the nwe have a problem; yes you can outlive, so copy an exception ptr object stackframe, then for these reasons

exception_ptr is aimed at heap implementation

so we propose similar that is agnostic, encapsulate exception object, call get_current exception, then you are responsible for this object, no reference count, so you move it around


cross noexcept bounday with an exception ptr, want to pass exeption through noexcept boundary without passing exception object as parameter for the rethrowing case


want std exception ptr that has shared ownership and unique ownership of the exception object


no language or library changes in this paper

its an implementation report

should we advise exception ptr is toxic


Paul: claims is standard conformant, leaves out what noexcept specifier mean


Ben: it would no changes, there are proposal would be changing stuff substantially, address cost benefit analysis of those papers


some of the mitigation: adding noexcept blocks to mark large parts as noexcept, change the calling convention to make it so a prebuilt C library can work with this


PB: C assert is verymuch a hint of adoption


Exception_ptr: can we ban it in free_standing, or use Rust send


exception_ptr on the heap is fine, problem is when you move it, it is nolonger available in the catch block, if you copy exception its fine as implementation only allow move only objects


if it is moved onto the heap, then its a problem, but OK if you copy from stack to heap


open the github (limited form)and form a group and tthen come back to discuss bridfing mechanism


please reply to this thread if inetersted in joining this Exception Handing for Embedded implementation group.



SG14 SG19 Past, Present and Future status

Michael Wong

Michael Wong et al.


PB: numeric proposal an ommission?Yes please add

2.2.1 any other proposal for reviews?

MW: Interested in Networking RPC proposal? Yes

ST: Error handling compendium?

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: Stephan TJ, Carl Cooke, Neal Horlock,
   Mateusz Pusz, Clay Trychta,
   - Games chairs: Rene Riviera, Guy Davidson and Paul Hampson
   - 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:

- 2020-11: (New York, tentative)
- 2021-02-22 to 27: Kona, HI, USA

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

Time: May 13, 2020 02:00 PM Eastern Time (US and Canada)

Time: June 10, 2020 02:00 PM Eastern Time (US and Canada)

Time: Jul 8, 2020 02:00 PM Eastern Time (US and Canada)

Time: Aug 12, 2020 02:00 PM Eastern Time (US and Canada)

Time: Sep 9, 2020 02:00 PM Eastern Time (US and Canada)

Time: Oct 14, 2020 02:00 PM Eastern Time (US and Canada)

SG14 mailing list

SG14 mailing list