C++ Logo


Advanced search

Re: [SG14] June 9 SG14 Zoom Call

From: Michael Wong <fraggamuffin_at_[hidden]>
Date: Thu, 10 Jun 2021 10:36:40 -0400
Thank you to John MacFarlane for chairing the meeting. You did a great job.
Here are the notes and attendees:
[image: image.png]
13:51:16 I can see the transcript.
13:51:50 Hi, Paul, How you doing.
13:51:55 Hi, I'm fine.
13:51:58 I'm, I'm a, I'm a bit sad that I seem to have missed the,
13:52:07 the SG or the WG 121 meeting this Monday.
13:52:16 Oh that's.
13:52:18 Don't worry, that's not much really happens there.
13:52:34 Because that's mostly just a plenary. There's no technical, it's
just it's just a bunch of straw polls and vote that it's pretty much
already been pre decided, you want to see drama. That's about the only
thing you might see see there.
13:52:57 Some people even skip the plenary This is the plenary that would
normally happen on the Saturday morning, I think, of the opposite a week of
work, just to find out what votes are going through and because when we,
because that didn't happen there's no
13:52:55 face to face their own that huge amount of votes that happened and
most of them most votes at this early stage and not controversial.
13:53:04 Okay, let's just really annoyed with myself for not being aware of
it. Well, you won't dumb.
13:53:14 Well, you can still do it again because I suspect we will still be
virtual, by the time they do the October one, there's another one in
October. Just make sure you put a calendar.
13:53:26 And then, not miss it.
13:53:27 It was, It was mostly for the deprecating a paper.
13:53:34 I thought that was where I was supposed to, you know, defended or
whatever you might say, or defending on these calls on those virtual on
those plenary calls they just they just very fast set of votes that
happens, and a bunch of admin stuff.
13:53:53 Yeah, if you want to see how the how the other machinery imports
work, then you can certainly be.
13:53:59 And I can send some people interested in calling in and seeing
what actually happens and then you can just see it.
13:54:09 Never. Just do it on the next call which is October.
13:54:09 Okay.
13:54:11 I never went to a meeting. I know this is your chance so if you
want to go to one of these when they go back to the physical, because you
know it's going to be money and a lot of things and I think we're going to
stay virtual at least for the October
13:54:27 one, and then maybe 2022 February one will be fifth will be
13:54:35 So I don't know if you know about the October ok so the one in May
was one where things actually got decided and this was just a plenary.
13:54:45 I don't know which one in may have talked about there's so many of
13:54:48 Yeah, okay, they're always meetings going on right but they're not
the one that decides things, they just things that they just mean that are
preparing things to be decided.
13:54:57 Okay so nothing's getting decided at all or. Pretty much, yeah,
there's a few things that's decided like you know things are creeping into
c++ 23 and things like that but big decisions are hard to make when
everyone's is virtual.
13:55:13 Okay, and I'm a lot less work. Yeah, but ya know I do encourage
you, if you have access to getting on the call on one of the plenary, go
ahead and do it.
13:55:23 And this is while it's still virtual and it's free.
13:55:29 The most the general advice is just, just look and don't say
anything unless you're really sure what you're talking about.
13:55:39 Okay, thanks.
13:55:41 You can find all the October when I'm sure on the ICP website.
13:55:48 Yeah, that's the, that's where I found out that I missed the one
this month. Yeah, so don't worry the October one was definitely still be
13:55:58 And then maybe February will be Portland and then, and then we
start again.
13:56:03 We'll see what happens. How, how you guys doing are you guys I'm
outta lockdown or.
13:56:12 Well Denmark had it pretty tough. In February, so we've had a
pretty easy. Since then, and we're quite, quite careful when it comes to
all of us locked down and yeah so.
13:56:30 So things have been better in Denmark, then for what I see in the
rest of Europe. Okay, and lockdown is almost non existent and everybody's
getting vaccines and in all of Europe.
13:56:42 So, okay, hopefully,
13:56:51 that goes, is we just left the longest lockdown in Europe, just a
couple of weeks ago.
13:56:53 And more and more people getting, which country is that Peter,
Ireland. Ireland. Ireland. Yeah, yeah, yeah so hopefully it's gonna change
maybe next couple of weeks but it's been tough.
13:57:09 They actually opened any restaurants that are shops are open just
last Monday,
13:57:17 since Christmas, so that's long whereabouts in Ireland.
13:57:29 Any. I'm very i'm john. Yeah, no, I mean Intel.
13:57:34 Gosh. It was me with john, That's how we met with in drag.
13:57:39 Right. Okay, okay.
13:57:41 I'm coming I'm well I'm happy to miss my, my wife's, my father in
law's 90th birthday in a few weeks time and we're hoping to visit. But
obviously, but he's in Waterford in the south.
13:57:54 And, Yes, giving us a while and spring problematic.
13:58:04 So yeah, we are also in the longest lockdown in North North
America, Canada is Ontario anyway where I am, it's been just now beginning
to get out of it, because I'm.
13:58:17 We have also been locked down since December.
13:58:26 So today we're going to be doing embedded. And I believe john
McFarlane is going to call in, I hope, and he's going to lead this, she
will. I spoke with him today.
13:58:38 He will. He's planning anyway.
13:58:40 Okay, so you know john McFarlane.
13:58:44 He's my neighbor actually even
13:58:49 in the building or in the house. No, no, it's kind of we're in the
same town so in the in the in the context of this meeting we are neighbors.
13:59:01 That's great.
13:59:02 Well, I hope, Sean can make it if not, I'm going to have to drop
Ben sacks to do to chairing for this because this is the today's the
embedded session.
13:59:11 And I'm hoping that James Renwick will call in and we can sort out
a few things that we need to do with his paper.
13:59:25 And then while we're at it, Ben can also you can announce the CPP
13:59:35 or put opening up for talks and things like that.
13:59:38 Yeah, that that was mainly why I was making sure to, to be here
13:59:44 Right.
13:59:45 I'm interested in the, in the papers and so forth. but yeah yeah
that's the sort of the primary thing on my mind.
13:59:54 If James Renwick doesn't come, okay.
13:59:59 john john thank you very much for calling in. All right, no
problem. Yeah, you are the chair for the embedded for today. I'm actually
in a bit of a quandary because I have to give a talk about some
indeterminate time in the next two hours waiting behind
14:00:14 I'm waiting behind a long line of speakers so I will definitely be
just least monitoring and paying some amount of attention. So James just
got in so that's great.
14:00:24 So the only thing I wanted to do is, did you want to bring up the
agenda so you can follow it.
14:00:31 JOHN.
14:00:33 So welcome everyone this is the SG 14 monthly call, which is
almost, which is almost always the second week second Wednesday of every
month, we rotate between embedded games and finance and I believe next one
was back to finance, and low latency.
14:00:52 And I got an I'm hoping that call cook will be coming back he said
he couldn't make it this week, but he'll be back next month to talk about
low latency he's one of the, the, the guys really know a lot about it so
14:01:07 today we're going to have a talk about a go back to have another
discussion about where we are with the, with the paper, I believe that
James is working on I think one of the things we have to do is package it
up for the standard submission so so that
14:01:21 it can be ready for so that we can put it in a paper form for
standards mailing, so I'll, I'll. I'm going to hand it over to john
McFarlane, one of the the special interest group chairs for for embedded,
and he can walk through the agenda and then I've
14:01:42 tried to chime in whenever I'm not need to give a talk on the
other side of this call.
14:01:48 So john, you have the co chair and I'm going to hand it over to
you. So thank you very much, first of all for volunteering and help and
helping to chair this.
14:01:59 No problem.
14:02:02 By the.
14:02:02 I should point out I'm not really an embedded expert. I'm not
technically an embedded developer.
14:02:11 But I, I certainly work alongside embedded developers and. Yep.
14:02:16 So please, you know guide guide me as we go along.
14:02:22 Michael Did you see that the, the author was here, I forgot the
right paper by the way this is the link yes he's here, but yeah so it's all
14:02:33 Follow the agenda, there's a few items we probably have to go to
like CPP con announcements and any future so meetings and things like that.
14:02:39 Okay.
14:02:41 And this is the right, I've got the race, gender here. Yes, this
is the one, you don't have to do roll call because I will get the roll call
from the zoom on the client.
14:02:51 Okay, and I'm going to try. You don't need to take notes, unless
someone wants to but I'm going to try to take it from the live transcript
that's going on right now.
14:02:59 Okay, sounds good.
14:03:01 And I noticed it even spelled My name right there so it's coming
along leaps and bounds.
14:03:07 Okay, well, that is a big step was named. Yes.
14:03:12 Yeah Hi everyone.
14:03:16 Welcome to the SG 14.
14:03:18 If. Hopefully you received this email with the agenda in it.
14:03:23 The first thing I want to do is draw your attention to the various
standing documents related to WG 21 or so, particularly the ISO code of
14:03:36 And I guess.
14:03:39 Let me know if you don't have a copy of this by the way.
14:03:42 And so okay so we're going to skip the role of participants and is
everybody okay with the agenda.
14:03:54 I guess I need somebody to put forward the agenda or or second
that yes toes.
14:04:06 Okay.
14:04:04 I go, I'll propose propose okay.
14:04:10 Do we need a second. Yes we do. Okay.
14:04:14 Can I second it.
14:04:16 You may not show the chat any other exempting may indeed Second,
the agenda second did.
14:04:21 Okay. Thanks man. All right.
14:04:26 So, right.
14:04:27 Yes, the future meeting so so this is June 9.
14:04:33 I assume everybody can see my screen there, followed by in a
month's time, we'll have finance, low latency and.
14:04:42 And then in August, will circle back to games. These all appear to
be the same time slot as this one.
14:04:52 So, Michael mentioned upcoming meetings, so I know that the, the,
this being the virtual plenary was that this week.
14:05:03 Apart from that, I, I guess there are some calls out for various
conferences and STP con and meetings, c++ made some announcements recently
also embedded meeting plus, or is it meeting, plus plus embedded.
14:05:27 I think also is possibly looking for people to give talks at the
14:05:34 And
14:05:37 it is Can anybody else think of any events coming up soon, that
are worth that are of interest or SG 14.
14:05:47 I can't think of any other ones but I will just chime in. And as
the embedded trek chair for CPP con. This year, and say that I, I did send
out an email about this yesterday so if you're on the SG 14 mailing list,
you should have seen an announcement
14:06:08 about that. And, and that contains some links about where you can
get more information, ask questions. And if you're if you're being great
about this sign up for to do things like review talks for the embedded
14:06:28 If you're, if you're up for that.
14:06:30 So, uh, yeah thanks to everyone who does that if you have any
questions, you can reach out to me or you can email embedded underscore
track at CPP con.org.
14:06:43 Okay. Thanks, Ben. I believe it's going to be a hybrid conference
this year, some people attending in person and some online as well.
14:06:52 Interesting.
14:06:53 Okay.
14:06:55 Oh Is there going to be an sg 14 meeting at CPP con.
14:07:00 Any ideas.
14:07:03 Um, I guess that's me I'm not hosting it yet. Unless it's because
we seem to have so many of it because I don't know if I will be there
14:07:15 Okay, I guess, watch this space.
14:07:18 Okay. Anything else before we jump into the paper review. Yes.
14:07:25 Okay.
14:07:27 Regarding this you 14 meeting I should remark that I will, I am
very likely to be there physically and I'm happy to chair an sg 14 meeting
if there is sufficient interest.
14:07:36 Okay, That's great.
14:07:39 can be there. They can probably help chair this then. Yeah.
14:07:43 And it might even be interesting to try and hold it in a hybrid
14:07:47 Because I imagine all the equipment will be in place for hybrid
meetings to take place.
14:07:55 It's all about having good audio equipment.
14:08:15 It really really really really is. Okay. We should make sure to
check on that because my understanding was that part of the reason we
didn't have one at CPP con last year was because we legally couldn't that
14:08:15 insights and the other associated organizations, had declared that
there would be no in person meetings for the duration of 2020 at that point.
14:08:29 I thought that we, We actually kind of couldn't do that.
14:08:34 But okay, any something to check on sounds like something we might
need clarification maybe from from herb or somebody who is, yes. So I think
the thing is if I saw an insight is still banning meetings, then have this
face to face as to 14 would fall
14:08:50 into that. And I think that's what Ben is saying, yeah.
14:08:56 And that's slightly to, to be continuing until the end of the year.
14:09:01 I don't know what they're there now current rolling band is, is
now up to. Okay.
14:09:08 Yeah, it was to the end of the year as far as I know. Okay, and
although they think they did change it to them, you may or. It wasn't a
strict, you don't have, you can't last like okay well so one to keep an eye
on then.
14:09:26 Maybe there's some alternative format or something that that where
maybe it's not strictly a formal, you know, study group meeting.
14:09:39 I don't know, but I believe that have actually does have
discretion in this regard, so we should probably raise it with.
14:09:45 There was not right padding nice right i think there is discretion
14:09:50 All right. You've had us to the correctly that are two dates
actually one from my soul, and one from some unity United States structure
and the American one is much longer time.
14:10:06 So I so could have meetings before that, but the other Association
could not so they're basically bad for both.
14:10:16 Okay.
14:10:18 I definitely want for her by the sounds of it.
14:10:24 Does somebody want to just shoot him an email perhaps and ask
about that. I guess I'll take that. Thank you. Okay, thanks.
14:10:39 Right.
14:10:34 Anything else.
14:10:38 Any other topics. Okay.
14:10:41 Alright so we're looking at
14:10:46 this paper.
14:10:49 And this is said, James present.
14:10:55 Today, I am welcome James.
14:10:59 Hello, good morning and evening, whichever one.
14:11:03 Yes, should say my name is terrible, so apologies in advance.
14:11:10 Your, your connection is terrible.
14:11:14 Yes. Okay. Well, it's playing up today, apparently.
14:11:19 I was going to ask if you wanted to share your screen or whether
you're happy for me to scroll through it as perhaps you could try and just
basically give a low down on the paper
14:11:36 that Yeah, sure. I think the easier, you share your screen.
14:11:40 Okay.
14:11:51 All right, just tell tell me what if I mean what page to go to
14:11:48 begin.
14:11:48 I think you might some some members who may recall, I think it was
last year, we brought this up as well.
14:11:58 In essence, this is about the question of in 2021 hour later, with
compilers better doing optimization. Is it possible to implement
exceptions, the normal way without requiring any special side channel ways
of stack unwinding, basically, can we actually
14:12:20 use the return channel, can we pass information back from
functions via additional parameters.
14:12:29 In this case, or, indeed potentially via other API changes that
could contain extra state information.
14:12:37 And in so doing, can we re implement sections in a way that is
more deterministic is much simpler is much smaller. Really.
14:12:47 The idea behind this concept. And basically I create made a
prototype of this, including a number of years ago, and demonstrated that,
at least at the time.
14:12:57 Yeah, Absolutely. It was very possible.
14:13:01 And it, the results in very prompt.
14:13:05 In a nutshell.
14:13:12 If you'd like me to go into details I can.
14:13:15 Yes, I mean, I guess if anybody has any questions, I think Michael
has his hand up at the moment. Yeah, so for some people this is a retread
because we did talk about this paper both at the prod meeting, and then a
month later last year in 2020 probably
14:13:30 in April.
14:13:32 And since then, you know, the pandemic has different effects on
different people and it's all understandable. So, we haven't done anything
about this because you know obviously events overtake whatever.
14:13:43 So I think the thing to decide here there's no problem going
through this paper again for some of you I'm sure it's useful.
14:13:51 And the thing I think I'm hoping that we come to is a two things I
believe one was to repackage this paper possibly with any updates or
changes as a and resubmit as a standard paper.
14:14:05 It's already been published so that steady state itself shouldn't
be too much of a problem, so that it's out there as a p paper. And the
other thing is, of course, the last thing we did from the last time was
trying to cultivate a group to help with the
14:14:20 GitHub changes that could be used to experiment with this paper.
14:14:26 So I think those are the only thing that I'm looking for. In that
way, it doesn't hurt to go through this paper again, and if it doesn't
annoy anybody.
14:14:33 I'm happy, I'm, I love to have a haven't done again so that's it
that's why I wanted to say thanks.
14:14:40 Okay, thanks Michael. Yes.
14:14:43 Yeah, I'd certainly appreciate
14:14:48 a talk about this and if anybody has any questions, please raise
your hands as we go along, if that's okay James Can you. Yeah, would you
like to.
14:15:00 Yeah, sure thing. Let me know if my voice breaks up completely.
Okay. Okay. yeah And I'll just repeat what I've said.
14:15:11 So I think the best thing to do really is just a scroll to the
diagrams and find the first diagram.
14:15:20 Yeah, I was just going to ask.
14:15:23 Michael mentioned to that this, we were talking about making this
AP paper, and I was curious that since this is describing a possible
implementation, I'm assuming something that we wouldn't want to make
normative text in the standard or things like that.
14:15:41 What would this look like as a, as a p paper Can you talk a little
bit about what that might mean in this case,
14:15:53 I can answer but Jen's may already have that answer so he's has.
14:15:57 Yeah.
14:15:59 Hi. So, um, I think, first of all, I don't think it is useful to
repackage a sort of scientific paper that was meant for that sort of
format, as a paper proceed.
14:16:21 P papers are, in principle, papers that describe desired changes
to the c++ standard.
14:16:27 And it's a journey to get there to actually get the change
14:16:32 It's certainly a journey of a year or so. But that's the, if you
wish, the sole purpose of a pea number of paper
14:16:41 that we know that certain changes to the c++ language are are
14:16:48 Such a or to the library such as you know add new library
facilities or change the core voting to introduce a new keyword for
Medicaid or whatever. And I'm not sufficiently familiar with the paper on
the plate.
14:17:02 What changes, exactly, it would it would describe it would it
would want so far.
14:17:11 If all it does is describe a new way of implementing exceptions.
Within the, the framework of existing syntax and semantics of c++ exception
so it's purely an implementation choice to do certain things different
differently, then there is nothing that
14:17:34 comes from this paper in terms of changes to the language
standard. All you can do is walk around compiler and mentors and tell them
that you are a customer of them, and that you would feel that their
compiler would be much better if they would be doing
14:17:49 if they would be doing exceptions your way as opposed to the old
14:17:54 That's why we have a standard multiple implementations are
14:17:57 If however your paper proposes to change the semantics of
exceptions in c++ to enable a more efficient implementation in some area,
then, then we need to then that needs to go through the, you know, it was a
committee and the committee needs to form an
14:18:16 opinion on whether the change in an exception semantics, in this
at that corner case is justified or and whether they want it, or whether
they don't want it.
14:18:29 And that's what we do.
14:18:33 Yeah, I speak to both of those.
14:18:35 The first thing is yes it does propose both it proposes a change
out there's three elements to this. The first thing is there's still some
unresolved stuff to do with API's and keyboard, like for example her
current proposals on value exceptions.
14:18:53 So there's some kind of tie in there, but I think that's kind of
some way secondary, there's a proposed change to some of the handling for
the, the gardening session object, I forget I forget exactly what it's
called because long afraid.
14:19:09 There's a, there's a there's a function within the standard
library allows you to get the current pointer, it kind of transparent.
14:19:17 Even pointer to the current exception. Yes. And the way that that
is worded, and it will have this discussion last time as well. My belief is
the way that that is word it makes it very difficult exception to not exist
on the heap.
14:19:37 Basically awesome heap like structure so if you stack. There are
lots of challenges to do with managing the memory there, so there was some
element. And the other thing is this proposed introduction of the new kind
of more or less, sort of implementation
14:19:45 type version of that effectively.
14:19:52 Yeah, so that needs to be. That's where we need to look from our
standards perspective.
14:20:00 I think that the problem there with the problem there is I think
what it what it could benefit from is more input really from various people.
14:20:10 I think that the.
14:20:12 If we have this one prototype implementation which I I'll be
honest, I haven't released on the basis that I haven't listened to people
who are specifically emailed me.
14:20:29 working on a separate another implementation which is a lot
better. Currently, which is much easier to work with. And more importantly,
has support now for aligning.
14:20:38 Every piece, basically. So you can actually keep everything on the
stack for small enough exception objects, which is obviously have a great
effect so while all of this, you know, unwinding quote unquote in otherwise
returning is going on, we can just
14:20:52 keep everything on the stack.
14:20:54 And it said, obviously, not only apply certain things but it's
much more efficient.
14:21:00 And I think much more suitable for bed.
14:21:02 So there's various things that I've wanted to do optimization wise
which I've now in progress, and are showing lots of positive results.
14:21:12 And once that's done, I think the idea was to experiment and the
wall that I've hit here is to do with the sea interrupt basically trying to
compile a c++ standard library with things that messed around with the API
in such a way that there's a, there's
14:21:41 interface, see, as you might imagine is a bit of a nightmare, the
c++ library limitations are largely based off the standard library
implementations. And that's kind of where there's been an issue with
experimentation, so I have also been trying to figure
14:21:45 out some of these teething problems there as well before trying to
get some real applications using this, basically.
14:21:53 Yeah, that's all nice and great experimentation and all that, and
it certainly feeds into the decision of what to do with exceptions if
anything there are other exceptions like proposals floating around for
visitor has, for example.
14:22:12 So, so that certainly needs to factor into the decision at some
point in the larger context, not the study group. But what to do about
exceptions in general.
14:22:25 I guess sorry if I, if I may interrupt just one second to say, I
guess my point is that before wanting to make any more. How do I put this
concrete decisions on the perfect API changes, wanted to have something
that was more realistic, rather than just
14:22:37 some examples. That's why there's more of a holdup is why do you
say a bi, or do you say API, because a part a, p i, okay, because a bi
standard standard library, because a bi binary interface.
14:22:56 We are officially not really concerned with except that that we
are because if we're breaking large quantities of API then we we get that
night sleep but but from a standards perspective, API doesn't exist.
14:23:12 So, Yeah, I guess what I wanted before making serious proposals. I
wanted to be able to say, this is just more than a silly thing, and that
there's actually some potential real world here and here it's a real world
use case and a real world application.
14:23:25 And that's a bit more tricky when there's still these some of
these teething problems with the standard library and some such.
14:23:33 So that's I guess why the. There are things in this paper, and
there are things have been hinted at other things are in progress.
14:23:41 So, yes, that's the motivation line.
14:23:46 If there are specific problems with a specification of exception
under bar PR, for example, that make it unfriendly with your proposal, or
was it was the implementation strategy that you're pursuing here, then,
then, then, that is certainly something
14:24:03 I would like to hear about rather specific terms.
14:24:27 Okay.
14:24:19 Is there any particular part of the paper that we should
14:24:22 go to now.
14:24:27 So I think this is just talking about existing implementations. So
I think we could try going into the next set of diagrams.
14:24:37 Okay, basically trying to find one that gives a good
14:24:41 overview of what the proposal looks like, Okay, well, stop me when
you get to the point.
14:24:50 Oh yeah, there you go. There you go, is a good comparison.
14:24:53 Okay.
14:24:59 Yeah.
14:25:00 Sorry I'm getting a bit like there are three, three different
things. Yeah,
14:25:16 the challenges of remote.
14:25:19 Hopefully that's rolling out. Excellent. Yes.
14:25:23 Yeah.
14:25:24 Good. Yes, exactly. So, in other words the general idea is that
the each kind of introduce a concept of effectively exception context, and
that would be some basically anything that is, no, no, except for the main
function, or even when you add a new
14:25:43 block, you have this new exception prospectively an area, a kind
of concept that describes where we will allocate some space on the stack to
store the potential exception that might be thrown.
14:25:59 An exception context propagates up the stack viral pointer,
somehow, now that could be by register, it could be viral function
parameter here it's by or a function parameter you might understand that,
for example, I think.
14:26:13 Host proposal suggest using registers for doing something similar
except, just with, you know, a kind of a peek pointer.
14:26:22 This this is this is similar except I use a parameter purely some
implementation could be in period entirely in the front end of the compiler.
14:26:32 The general concept is having some space on the stack, into which
to allocate some exception state, and that basically tracks exception that
may or may not be thrown and contains a pointer to the exception data, and
the general idea behind this is that
14:26:46 we can keep the existing syntax and we keep the same kind of
standard library, and we don't necessarily have to change the
implementations, there are a couple of points, which I think I mentioned,
but a lot of them are kind of teething issues, not necessarily
14:27:04 breaking changes. And basically by keeping everything on the stack
and by doing using normal function returning, instead of doing start
14:27:16 winding, we can, it's a lot simpler.
14:27:19 The problem of course comes with the fact that currently the way
the standard library and the way that you know assumed collectively, is
that the exception object lives on the heat somewhere or on a special here
14:27:30 Whereas with this implementation. It does have it can sometimes
end up in a special, something for the exception object buffer, except for
the fact that it's just that the exception object itself is only moved
there during the old wind process will return
14:27:45 process. So it's a temporary thing. And in many cases it's
possible to determine explicitly how much space you might need. And worst
case analysis basis.
14:27:56 Because this is all just standard function control flow.
14:28:00 There's nothing you know special will suck channel going on
there's no register modification. It's just standard chocolate.
14:28:08 The only thing that's interesting. Aside from that, is the fact
that if the exception object itself is small enough, it can be stored
within the exception state.
14:28:20 And that of course is great beneficial. So we can actually just do
a normal return on the exception object. So for example, if your
implementation was such that you were using error codes that were just
naturally be stored on the stack, and then it would
14:28:36 flag inside the exception state that indicates whether the
exception is active, was a function called, which could throw returns that
flag is then checked.
14:28:47 And once upon a time that would have been a major deal. And in
many cases today. And a lot of the investigation that I did as part of this
paper showed.
14:28:57 Actually, it's not such a big deal anymore, to have to have this
function returns.
14:29:01 And then he said,
14:29:06 it actually opens up lots of natural compiler optimization here,
purely by standard optimization passes.
14:29:15 So, yeah, I think there are some details in terms of
implementation going down here and I, there's an example of what the
exception state data structure look like.
14:29:30 If you scroll down, you can see there the coach him age number.
14:29:51 Outside, yes. Yeah, that right there. Yeah, I think it made it
shows a new kind of exception context so there's an exception t being put
on the staff that they represent the exception state.
14:29:52 And that's effectively what's going on behind the scenes.
14:29:56 And if you go to the next page, I think.
14:30:02 Okay.
14:30:11 life away from like crumbling yeah so so that gives an example of
the sort of things that are stored.
14:30:18 Alongside the exception state that basically appointed to the
pointer to the runtime type information, or it directly embedded things
like the size the exception objects and whether it's active and so on so
forth, and this is stuff that's been iterated
14:30:31 on sense, though, I have a number of different implementations of
this to kind of do a kind of cost benefit analysis for different layouts of
14:30:41 The general idea though is that it should be as small as possible,
and it sits on the stack symbolize really.
14:30:53 Obviously the biggest, the biggest problem with this or the big
kind of the interesting part about this is it draws a distinction, a
concrete distinction between c++ functions and C functions in that it
changes the expected API.
14:31:08 So either way, no matter how right if it's by register if it's by
you know explicit parameter or, rather, implicit function parameter
injection, then there is a difference now between C functions and c++
functions, whereas before that wasn't.
14:31:23 And it turns out that one theory this should be okay compilers
make lots of assumptions and in any place we, you know, things like
function pointers for example, it's.
14:31:33 Many, I found that clangs implementation at least at a time when I
was looking at this does not actually ascribe whether a function pointer
could be pointing is declared within a c++ kind of language context, or
whether it's declared within a C language
14:31:50 context.
14:31:51 So we don't actually have information about things like function
pointers. So, the kind of interfacing between C and c++ become very tricky
to deal with.
14:31:59 And I think that's why we have this these keywords like like
throws, for example, which can may indicate the change and make working
between C and c++, more realistic.
14:32:12 I think when I brought this up last year.
14:32:15 Basically what we said was, we should not think too much about the
see element but I.
14:32:22 My concern is that for real world applications that's a real
thing. And mostly in terms of the fact that people might need two
implementations of the sea standard library, without see standard by which
I guess is something that herb is finding, or has
14:32:37 has found and is pursuing right if what I remember. Recently
reading is correct.
14:32:51 I just going to Jen says his hand up.
14:32:48 Yeah, hi. So, instead of a new decoration, there is a way to
differentiate c functions from c++ functions and that method is called
language linkage. And so, all the C library functions should be decorated
by x y and z, and c++ functions are on decorate.
14:33:10 And I understand that there are a lot of competitors out there
that do not differentiate. For example, the function pointer type between C
language functions and c++ language limited functions.
14:33:24 but some implementations do and rightfully do so, and it would
behoove, everybody else to give a hard error. If people confuse function
types. When forming pointers to functions and similar like that language
language was exactly invented for different
14:33:41 calling conventions for different programming languages and to
allow some sort of interoperability for C and c++ in space, in particular,
there was no difference in in calling convention so far so compilers have
been negligent on enforcing the boundary.
14:33:57 But, but, but yeah, that's, that's what we have and compilers
doesn't don't implement that properly is not an excuse for not at least,
saying that this is the way to go, and go from there.
14:34:15 I mean if, in some way.
14:34:18 The second aspect of exception throwing is propagating exceptions,
through the very few c functions that actually take a call back which is
research and research I think doesn't work as well to certain cues or Does,
does, very much so.
14:34:35 User takes a competitor, and that compared to my throat. And then
what do you do with the ccq sort function, but that is a very much smaller
concern than all the rest of Jewish.
14:34:53 I guess I find it. The problem is that in practice again that one
kind of hits up against that, if you're if you're trying to actually prove
that this is useful and isn't a complete, you know, red herring.
14:35:06 You kind of have to have a working standard library
implementation, and to have a working standard library foundation need to
compile it with one of the, you know, common compilers, and if all the
common compilers are assuming that the same call a convention
14:35:17 in practice.
14:35:30 It makes it kind of difficult so I, you know, obviously defer to
your, your knowledge on this matter but in terms of the practical reality
it's very challenging at current at, you know, currently in order to
actually derive anything useful is that, you
14:35:35 know, going forward.
14:35:38 That's fine.
14:35:39 From an experimentation standpoint, I'm just saying that a
proposal that duplicates language linkage functionality was in as something
new is not
14:35:50 probably not helpful.
14:35:53 Right.
14:35:55 I understand your point.
14:35:57 Okay.
14:36:02 Any other questions. Keep going.
14:36:05 Yeah, carry on.
14:36:08 Yes, I'm trying to think if there's anything else in particular to
mentioned To be honest,
14:36:18 I don't think so. I think the only interesting thing is this this
this, there are plenty obviously of interesting elements to this in,
including handling multiple exceptions and handling propagation where the
exception state has to then be copied back.
14:36:35 But generally, you know again we've gotten pretty good at dealing
with problems like this, you know, we've been past you know returning
structures for very long time now, and the kind of the, I think the
performance results that I took speak for themselves.
14:36:50 I wish they had been more thorough and that's definitely part of
this project in getting more variants and getting more testing and using
real world stuff.
14:37:00 And again, one of the reasons why I didn't release my existing
implementation, to the world as it were.
14:37:07 Because the reality is it doesn't, it's very difficult to get it
working with existing programs. I think that's the point. So you can't just
drop it in and then use it because of the standard library situation.
14:37:21 But in general. Turns out, cutting out all the unwind library is a
massive size when as a one off.
14:37:29 And I have indeed made great strides. I can say, so far, I don't
have the finished results.
14:37:34 But I haven't even made great strides in putting down the
instruction cost of using these as well. Per, you know, function call and
PR can throw expression, and so on, so on arm on x86 there's a massive
difference because we don't we don't seem to mind
14:37:51 so much that the unwind library is huge. On arm of course there's
a lot more effort put into it.
14:37:58 And did you see a significant reduction for smaller systems but
it's still a one time, hit kind of thing.
14:38:12 In addition to that there are changes to RTI, which are proposed,
and obviously are, how do I put this.
14:38:15 There are ways of doing RTI which can be made easier by this
proposal, which, in order to actually reduce their size. I guess is my
14:38:27 And as a result, effectively you see both the reduction in terms
of one time, you know removal of the online library, but also a reduction
per kind of individual exception object used, and what would you say, kind
of catch handler.
14:38:49 So, with the original exceptions there's various different types
of RTI and methods and other kind of necessary Glue Code, which doesn't
have to exist in my implementations.
14:39:02 Instead, it's just the standard stack return mechanism. Right.
14:39:07 And in terms of additional ICT I, there's very little that
actually needs to be kept or retained specifically for exceptions, or we
need to actually do is have some mechanism of comparing such that we can
do, you know, catch block filtering.
14:39:22 So, with the ITT I even smaller.
14:39:28 We can actually cannot do it a like for like comparison in a way
where we have more than just a one time reduction in size, but also as the
binary grows.
14:39:39 There's also a chance to have a reduced binary size if you see
what I mean.
14:39:44 On x86.
14:39:53 Start yeah I just say pulls out his hand up a little while ago. I
actually didn't find this interesting, the one thing that struck me when I
read this paper I guess about a year ago now, was to explicitly call out a
place where the.
14:40:08 This approach has some failings in regards to how the exceptions
are currently being used, I don't remember if it was handling multiple
exceptions, or what it was really throwing something like that.
14:40:27 But it's explicitly called out in your paper on one of the fan ish
14:40:36 Is that has that been fixed or addressed in some of these new
work, because that really seemed like a showstopper to me at the time.
14:40:47 Yes, I do remember this I think this was effectively taking me.
14:40:53 What this was as I recall, was being able to re throw or grab the
exception point for re throw fire a either a note set function or via
another function I think it was Byron know except function.
14:41:07 So the idea is you can get the current exception pointer fire some
kind of nested function call effectively.
14:41:15 Absolutely. And in fact, I think that this was discussed at
length, I particularly remember a conversation with our two with with Ben
at the time, and I think yes we, I think the point was that, since this has
been identified.
14:41:34 It has been thought about. And there is a potential implementation
which would solve this. Yes, I suspect that by the time I get to the final
performance results.
14:41:44 that is definitely going to be in there.
14:41:47 Absolutely, I mean it's not, it's not a.
14:41:50 It's not an implementation or technical challenge in the same way
to see interoperability is it's, it doesn't seem to me to be a showstopper.
It's just something else that needs to be considered.
14:42:03 Basically, the real challenge, as far as I understand it is kind
of how I put the selectively applying it, because this is kind of cost to
tracking these objects and managing that which you might not always want.
14:42:18 So, I wouldn't say that it's a showstopper. But I would say that
it's added additional complexity, which, as I said wasn't covered in this
paper but yes yeah, if that answers your question.
14:42:33 I like how much fun. Thanks, super vague answer I appreciate.
14:42:39 But yeah, I guess all I can say is I don't consider it a
showstopper. I think it was an interesting case that was brought up last
14:42:53 Other Any other questions.
14:42:59 I mean, I guess we could dumb.
14:43:02 Unless you want to look more at maybe the results or any
particular section, we could perhaps I don't know look a bit more, maybe
what might go into AP number paper
14:43:18 or indeed whether we, whether that's the way to move ahead.
14:43:26 So yeah, there's fights, where you've paused is an example of two
is the proposed additions to the standard library, I think,
14:43:42 as I recall, but I think that this plenty of, as I say, I mean
this was.
14:43:49 I don't put this, this was kind of, I don't want to say made up
everything's made up, but
14:43:55 I don't think this has been informed or thought about enough to
justify taking too seriously. I think that would, I would personally want
to consider that more detail about what makes sense, and how people would
actually use this and so on and so forth.
14:44:16 Yes.
14:44:18 Yeah, so any changes to the exception mechanism.
14:44:23 The mechanism itself being a non local thing is, of course,
touches all of c++ and potentially makes for example independently
component libraries incompatible with each other and stuff like that.
14:44:37 So,
14:44:39 we have to tread a little careful here.
14:44:45 So what I most interested in terms of the number of paper first is
of course.
14:44:55 Where did you find that your implementation approach was not able
to implement the requirements that the c++ standard imposes on an
14:45:10 And one thing you mentioned, and where therefore you would want
relaxation of rules or changes of rules or something.
14:45:27 And.
14:45:22 And that's, that's what what would be most interesting for a p
number of paper.
14:45:28 And because that's where you want actual changes to the standards,
and for example you claim that exception pointer intends to be on the heap.
14:46:03 And intends to be a shared something like a shared pointer
implementation. Yes, that was one possible implementation strategy that was
14:45:53 expected or planned for. When this facility came in, but it was
also planned for that exception pointer just copies. The exception to
14:46:05 And, and it is essentially does not do reference counting but just
copies the exceptional object and then it's there, and it's yours to keep.
If you wish.
14:46:21 And so, if that wording was expressly done, I think Microsoft at
that point needed that. When oh it's been ages when I drafted the voting
for a certain point, so.
14:46:30 But if there is something more you want to do with the facility
that exception pointer wants to provide ie the ability to extract, an
exception from one threat and essentially be able to reach forward on
another threat or stored away somewhere or something
14:46:47 like that, if, if you need more facilities, and the current
allowances for Executive Order don't cover what you need to do, then I
would like to know about that and very much detail.
14:47:02 Preferably, of course, and a p number paper.
14:47:11 Dude, do we think that maybe a p number paper might be a good way
to solicit feedback and iterate on a design is maybe a little too much
concern that that you're committing too much by writing a piece of paper
and perhaps would just be a good generator
14:47:29 good forum for for solidifying some of these ideas.
14:47:37 I don't know what you mean. I mean, either. This is just
presenting information to the committee, look here is an alternative
implementation for exceptions.
14:47:46 We all look at it and say, Yeah, nice try it. boom. Go.
14:47:51 Next item next customer please, or, or there is some. And that is
one very viable and possible result from looking at this academic exercise
here, or we say we want.
14:48:04 We want an actual change to c++ and then I want to will need to
understand what the changes.
14:48:11 And during the evolution of this project here I have understood
that certain requirements that the c++ standard imposes in some.
14:48:20 Not very obvious ways ways have been have been looked at and have
been implemented, or happy, or the author is looking into implementing
14:48:33 And that's good and yeah it's it's some of these requirements are
a bit of a pain I understand that. And, but, and certainly the the the
default handling of exceptions was this personality crap is kind of sub
14:48:50 But, yeah, whatever.
14:48:51 So yes, but but that is obviously a process so at some point
probably there was a desire to remove that requirement from c++ that
certain corner cases work a certain way.
14:49:03 Now that has been implemented.
14:49:06 So now we can maybe say okay yeah, it's not pretty but but it
works and it probably doesn't doesn't make the whole scheme performed
worse. As long as it's a lot of costs, we don't really care too much I
guess so, yeah.
14:49:23 Of course it's part of the evolution here.
14:49:29 Sorry.
14:49:36 Okay, I mean.
14:49:38 So it sounds like a paper might might be helpful here then.
14:49:44 Again, if the desire, is that the c++ standard changes. That's the
whole point of writing a paper. If there is no such desire, we don't need
to paper.
14:49:56 And I'm sorry, we don't need to pee number paper to present
research results were very capable of reading PDFs stored as well.
14:50:05 Okay.
14:50:12 Anyone else have any comments.
14:50:19 Okay so, so my understanding was that there were changes being
posed here now I suppose if what we're saying is, James is uncomfortable
proposing them, then maybe someone else needs to step up and champion this
paper if we want to start getting some of
14:50:36 those changes reviewed by the committee.
14:50:39 But my understanding is that there are some, there are proposed
changes being made here and if we.
14:50:52 And certainly this material a lot of this material would have to
be in the paper as clear motivation to explain why things need to change. I
would think.
14:51:05 Yeah, I can't help thinking that, yes, some of the implementation
details or choices will help provide the context for understanding what
potential changes to the, to the standard are being considered.
14:51:23 I think it's not the way I would word it myself is it's not that
I'm uncomfortable proposing the changes, it's more that I, my concern is
that Yeah, I'll be honest, I say, Be perfectionist about it.
14:51:35 I think that that's the. I wanted to have something realistic and
working, which I could give some sort of backing to. Yeah, foundation to to
what I was proposing.
14:51:47 And this does work.
14:51:49 To be clear, but it doesn't work with.
14:51:52 It works with example applications and it works with heavily
modified standard libraries, and it doesn't work real code, so I couldn't
take a real world application and then swap it out and say well this is how
we would change this, so this is how people
14:52:04 use it, you know.
14:52:07 So I think that's the that was the main motivation so perhaps I
guess what you're saying is, just get something out there anyway.
14:52:15 So there is a path towards a p number that involves a draft, or we
call it the number, which isn't published in the, in the mailing, but can
be shared around and feedback can be provided on that.
14:52:34 I always get the, the exact steps on how to do this wrong, but I
think we maybe want to get a number, perhaps.
14:52:43 Well, before we dig into the details.
14:52:47 There is. I mean, we have. I should remind people that we do have
a multi stage process in handling changes to the c++ standard. So, we can
certainly iterate on a real p number of paper, for example, in this forum,
which is probably a bit more cozy than
14:53:08 some other forums that the papers eventually needs to go through
14:53:13 and improve that paper and make it better and improve the
motivation and make sure the presentation is so that people think this is a
great idea since the greatest idea since sliced bread and all that kind of
14:53:25 And that can very, very well be done within the P number paper
frame it's it's not unheard of that the first version that is seen by the
rest of the comedy is revision seven or eight have a paper, because it has
been iterated on a study group for a while
14:53:40 until it was good enough.
14:53:45 So, I see no problem with with doing so. And yes, There is also
the number scheme, just so that drafts between mailings are clearly
identified as not being the bitwise, the, the pattern of the paper that is
in the mailing so that people are not confused
14:54:04 because we want the P numbers to be unique identifiers for a
specific bit pattern that happens to render as a PDF or HTML.
14:54:14 Or perhaps at least for some of the more the details the
boilerplate, you know, just so that it is looking roughly, roughly like up
number paper that that's, yeah, that's what we have options.
14:54:31 Certainly, but that is best done by a someone relatively familiar
with the process of just getting together with the actual person writing
the paper and in a one on one setting and just whipping it to the right
14:54:47 Okay, perhaps somebody would like to.
14:54:53 Well, I mean, I guess we should first.
14:54:56 See you. James if you're interested in willing in pursuing a paper
and then perhaps we could see if anybody would like to maybe help out of it
provide some early feedback, perhaps, um, I would.
14:55:12 Sorry to interrupt again.
14:55:15 I would also like to point out that this is very unlikely to
happen in the c++ 23 timeframe, just because of timing and, therefore,
we're not under a particular deadline rush we are usually or not anyway.
14:55:29 So if the, if James believes that he wants to make more progress
on the implementation front to have more convincing arguments and all that
and maybe reconsider.
14:55:44 Some of the.
14:55:46 Oh, we need to change the language like this to make it work
better, the kind of things, then there is no particular rush to get a
proposal out this week or next month or something, we might as well, wait
for a year until things are solid solidified more
14:56:02 if people think that it's more helpful
14:56:08 to say, Yep, no that's good feedback.
14:56:12 Okay, so I wonder if there's there's maybe any feedback that you
were looking forward to help guide you in your ongoing research.
14:56:25 I think the.
14:56:27 I think I would be very interested on people's opinions about the
seed problem.
14:56:32 I think that's the that's the main thing, because that continues
to be it.
14:56:37 I think to me that's the biggest issue, both in terms of the
implementation in terms of the theory and I understand that in theory
according to the standards that you know that's that shouldn't be a problem
but in practice it is and if people have any
14:56:50 kind of thoughts. in addition to.
14:56:53 How do I put it in addition to the you know the fact that it
shouldn't be this way, which is a very obviously very valid and important
14:57:01 If there are any other opinions people have around this, I'll be
very grateful. And
14:57:09 I guess, for people to generally consider the algorithm. And what
that might mean in terms of their own code or how they might change their
behaviors, but just as a kind of like, you know, over a coffee kind of
14:57:29 I think for me the meat and bones will be being able to take real
applications and playing around with those. And that's why I'm working very
hard towards that, in what little spare time I have.
14:57:39 But requiring some tax changes, such as the throws annotation for
c++ functions that want this extra exception context parameter is of
course, slightly incompatible with applying this to real applications
because real applications will need lots of changes
14:57:58 to sprinkle throws around.
14:58:02 Excellent point yes that's why I have a flag in my implementation
that defaults everything to or removes the throats the net necessity for,
basically, it's only really there because we discovered that this was an
14:58:15 It's not necessarily there because we think it's a good idea.
14:58:19 So implementation doesn't mandate, it
14:58:24 sounds like, okay, so.
14:58:26 Okay.
14:58:29 So just to clarify, just like in everything else in c++, if it is
not marked as no throw, then it is throws.
14:58:39 This this correct actually throwing Yes. Yeah.
14:58:43 Yeah.
14:58:51 Yeah. But of course, then the challenge is identifying Well, what
if it See,
14:58:58 see function conference.
14:59:04 rather wouldn't accept the API change in any case,
14:59:11 I think there was previously some discussion that it might not be
such an issue in the embedded case because you might not necessarily be
mixing code bases, but I feel like that's not the strongest argument.
14:59:30 Yeah I at least mix code bases all the time when I'm doing low
14:59:41 Anyone else have any thoughts.
14:59:46 Any questions.
14:59:50 So, I'm, I'm curious, is you were talking about one of the hurdles
that you are facing is a standard library that lives up to these
15:00:07 demands that you're setting.
15:00:11 Would it help getting this moving forward, to have someone do a,
an attempt at modifying the standard library for clang or GCC in a way that
conforms to these requirements, or is it still just whether or not it's C
or c++, Colin convention.
15:00:38 I think it's almost entirely that the latter is the fact that
this, for better or worse the foundations of the c++ standard library or
the city standard library.
15:00:52 So getting it. I've tried many times and fat around and made it a
bit of an effort to try and make that happen. But
15:01:01 yeah, the, the truth of the matter is, is the senior issue.
15:01:09 I just noticed a couple of things in the chat Ronan a ways back
asked if the exception is not only does the suggested implementation
support infrastructures supports infrastructures that manage or delay or
redirect exceptions, with particular interest
15:01:30 in sister. I'm not sure what see stars.
15:01:36 Does that question. I saw we don't have the context for that now
does that.
15:01:43 Do you understand the question.
15:01:47 Not entirely that's an interesting idea right that
15:01:53 for managing or redirecting exceptions redirecting yes to laying
I'm not sure.
15:02:01 That's a very sorry.
15:02:05 If I can chime in.
15:02:17 I'm using this system it's an infrastructure that is based on the
15:02:17 scheduling program using into multiple blocks that some something
that code is not exactly that.
15:02:33 The Lamb does that are scheduled in day with continuation.
15:02:36 I think in the standards we are growing and gaining, there are
some efforts in creating similar things based on continuations. I think
when you're talking about continuation.
15:02:49 I mostly I want to pass centers, I want to pass the exception that
that was created in one such is one block or one lambda whatever to the
next sometimes in the future.
15:03:04 When the exception will accrue, it will be transferred to another
block, and so forth.
15:03:10 And for this currently we are using what they are using Cisco is
using the exception pointer.
15:03:20 In, is this something that can be implemented with your suggestion.
15:03:26 Absolutely, I mean the exception state is effectively is an object
that is just movable, there's nothing special about it. There's no special
semantics it just exists as an object that's one of the kind of nice
elements of baited kind of semantically.
15:03:40 So yeah, you can just pass it around, you can move it around, you
can pause it through function so you can store it somewhere and then we
throw it later.
15:03:49 And the, the idea is that there's a proposed actually there's a
proposed ability for you to provide your own alligator. So, while the
exception object itself ends up being stored in the stack within a catch
15:04:05 And once it's pulled into scope. So once the unwinding is complete
it sits inside your catch block so if you if you catch by, by, elbow elbow
15:04:14 Then effectively. It sits inside your cache block on the stack.
And so you actually, there's a proposed extension here in this paper
whereby you can actually take exception objects and say I want you to copy
this and I want you to copy the exception object
15:04:28 itself to some alligator. Basically, or to some location.
15:04:34 No matter what the exceptions yourself is what type it is.
15:04:37 So I think it's actually very easy, so you can specify custom
alligator to make that happen.
15:04:43 And you can you carry around, in addition to the exception object
is metadata, so you know what type of Was there some sort of identifier for
the catch block filtering and all of the other exception state.
15:04:55 So yeah, it's not only very possible that a very serious use case,
potentially for this.
15:05:01 Thank you.
15:05:06 There was another question from Connor wasn't using thread local
storage for exception state previously explored.
15:05:19 Hello.
15:05:22 I take it to the rim at large.
15:05:27 or.
15:05:28 Okay.
15:05:31 Does anybody.
15:05:34 Recall, talk about als for
15:05:39 was this in was this in relation to exceptions in embedded
specific, you're
15:05:48 right, I see. Yes. I think that
15:05:55 it's possible.
15:05:56 Yes.
15:05:58 All right, just possibly decide to see a big issue.
15:06:10 That's a very interesting idea. I think that's a.
15:06:10 It would be interesting to see how the optimizer would deal with
that, I think, a big kind of motivator for this was that it was standard
control flow.
15:06:18 And it was just, you know, all the basic abstractions of data and
15:06:23 And there was nothing necessarily needed side channel The only
thing was instead of returning a value that you expected as your return
type, you would get something else which was affected with the exception
state, right.
15:06:36 So, this would be still side channel but it's not necessarily such
an egregious side channel as a whole kind of virtual machine doing it, you
know register pokey unwind.
15:06:52 says interesting thing to try.
15:06:56 Sounds like there's a fair bit of interest in in seeing the
reference implementation.
15:07:02 Yes.
15:07:05 By all means don't don't feel that something has to be perfectly
formed before it's presented the committee as Jen said, plenty of iteration
can occur.
15:07:15 Often proposals will be transformed quite dramatically. Sometimes,
multiple times before they fully proceed.
15:07:24 But yes, I don't know if it would be helpful but there is a, an sg
15:07:32 github space as well.
15:07:35 Possibly we could clone something into there if there is a.
15:07:39 If there's a repo somewhere online
15:07:46 Paul.
15:07:50 Yeah, I'm just I'm just thinking of technicalities you said that
the problem is that the CC library is more or less wholesale copied into
the c++ library.
15:08:05 As far as our calls CCE that the c++ standard actually dictates
that everything from the C library lives in namespace std, which would make
it possible to have a wrapper of the c++ over the C library to, to make a
track as a buffer.
15:08:35 In order to converge colon conventions.
15:08:39 Would that be a possibility.
15:08:44 As a really good idea.
15:08:51 That's really good idea because the big problem I have is linking
and effectively, a lot of platforms come with a standard library as well.
So, you would end up effectively having to have to build this thing.
15:09:02 And that was something I hit somebody messaged me was interested
in using my implementation and I sent it to them and I said but you know
the problem with you're going to have is that you need to see standard
library builds effectively but a rapper might
15:09:12 solve that nicely.
15:09:21 Of course effectively nobody uses the STDs namespace but then
that's a problem for another day.
15:09:30 I do, what it's worth.
15:09:32 Yeah, I expect the, the c++ code guidelines for example probably
encourage people to do that, and I certainly
15:09:41 nag people in code review.
15:09:44 To add the namespace qualification so you might be surprised.
15:09:55 Sorry, going back to the GitHub. I think that this new
implementation that I'm doing, which is the effects of the old one, but
what I basically done is instead of instead of implementing directly in the
compiler front end as a silly university student
15:10:09 might do. I've actually implemented in a separate c plus plus, and
source files, and I basically just have kind of entry points into that in
the compiler instead, or to clarify it kind of, you know, almost like built
ins are intrinsic or something along
15:10:27 those lines where it will actually just call out to these external
symbols that as humans are implemented very much and similar kind of a big
way right.
15:10:35 And that means that the implementation is a lot more direct so
you're not going around the compiler from the final bits, and it's very
easy to actually implement change.
15:10:45 So I think if I wanted to make a public implementation which I do
it would probably be that one because I think it, it's much more
presentable. And people can actually hack on it very easily and iterate
with it.
15:10:55 and that's kind of the purpose of the rewrite, in that sense, and
bringing it up to spec spec with a modern client as well say modern you
know everything changes every year but
15:11:05 as the old, the old implementation does work.
15:11:08 But there you have to kind of put a bit of effort into get it,
doing what you want, really.
15:11:14 And it's not, it's quite difficult to actually change and work
with because it's distributed and embedded in the front end.
15:11:27 But certainly when I have a good when it when I haven't even
vaguely working. I do have it vaguely working when I have it in a state
which I think is easy for other people to kind of work with 100%, I would
be happy on on sharing that there.
15:11:41 And I think if people messaged me and they'd like take a look The
old implementation, I'd be happy to really start on a kind of, you know,
individual basis.
15:12:03 I'm just checking yeah so yeah you have an email on the paper,
just in case anybody wants to get in touch directly.
15:12:10 It might not be that email. Really sorry, that's not my fault,
it's the university's. Okay.
15:12:18 Yes, because I left the university. It's now deactivated which is
15:12:25 But thankfully my co authors normally for emails to me so.
15:12:29 But if you're interested, I'm happy for someone to distribute my
email address or I can write in here as well.
15:12:40 If that's appropriate to share information on, and I c++ chat.
15:12:47 I'm sure it's been done before.
15:12:50 Let's say you probably relatively safe.
15:12:54 Excellent. And then there's always the reflector as well.
15:13:03 Then if you're on the mailing list or the reflections, we call it.
There's that as well.
15:13:07 Right. Yes, yes.
15:13:09 Okay, definitely some interest drummed up there, some good
15:13:17 whether any other
15:13:20 things anybody wanted to comment on or what questions to ask.
15:13:28 Daniel. Yes, the hand up.
15:13:31 Yeah.
15:13:34 I just wanted to say that definitely I think this see
compatibility would be kind of a deal breaker for people in my area because
we definitely mix, C and c++ C and c++ code quite a bit disturbingly large
amount of mixing and did.
15:13:56 It's like a risk averse behavior you know if you if you said, Oh,
you can't do that anymore, they'd be like, Well, we've used this code for
20 years and it's been an x y z release product so we want to keep using it
right because we know it works.
15:14:11 So anything that were to break that would be like instant. Now
we're not doing that.
15:14:18 Plus there's already the normal resistance to exceptions to their
history, whereas I'd like to see more of them because I think they're very
useful error handling tool.
15:14:27 So, anything we can do to cut out those instant knows is a good
thing for me.
15:14:36 Yes, I yeah I totally agree and that would be my point of view as
well which is why I'm so hesitant about it.
15:14:49 I think the thing I was going to say is I think like the rapper
idea in general, I think this has been talked about before but I hadn't
thought about in the context of the standard library.
15:14:54 But yes, so in theory you could have c++ wrappers for everything
but obviously you know create a facade for your entire see interface seems
like a giant pain.
15:15:07 The thing that I personally think is good about this
implementation is the fact that with the cup with that kind of external
allocation religion, you end up in a situation where if you are just
throwing error codes, you're just throwing error codes, with
15:15:23 some additional information for cash flow block filtering.
15:15:30 So that's a, it's a pleasant element, I think, for that helps make
sense of this in the embedded space as well.
15:15:40 So you can kind of, you can kind of draw direct comparisons
between this and an error, kind of error code approach. The only difference
hopefully being was slightly more stack space required.
15:15:52 And the fact that, which I think also was brought up last time as
a slight to break from very small embedded systems, although I have, you
know, for what limited testing I've done on the smaller ones now, it hasn't
been too much of an issue but maybe
15:16:03 I'm not smart enough.
15:16:07 Yes.
15:16:09 So that's, that's kind of the. So I think the big difference here
is that that because the compiler is directly using this, it can do all
optimizations necessary to say you know what this is, this isn't just
15:16:20 this is called path like go away.
15:16:23 So it is effectively a better implementation of error codes with
exceptions on top and maintaining the existing syntax of try and catch.
15:16:37 Okay, thanks. Any anyone else.
15:16:41 Before we move on.
15:16:46 If not, thank you very much James for the presentation.
15:16:52 I think we've got some good ideas going there.
15:16:55 And so,
15:16:58 very interesting avenue of exploration.
15:17:02 I look forward to seeing how this comes along. Thanks.
15:17:14 It's okay, it's fine. July just drop off now. I'm not.
15:17:15 Almost, 14, or job.
15:17:27 If, If you want to leave, that's fine.
15:17:32 That yes thanks again.
15:17:34 And, Yeah, good, good luck with it all.
15:17:41 Okay. Alright.
15:17:45 So, moving on.
15:17:49 Are there any other.
15:17:52 So are there any of the papers, people wanted to look at and then
nothing else was I guess mentioned in ahead of the meeting, but is
anything, sort of fair cropped up.
15:18:06 Very recently.
15:18:07 If not, we can just go on to domain specific discussions, Paul.
15:18:14 Yep.
15:18:17 Yeah, that was just a question.
15:18:22 If anyone who is currently here because it's an embedded talk.
15:18:29 That was not hear any of the earlier times. Regarding the
deprecation of volatiles paper as any comments on that.
15:18:42 I'd like to hear them otherwise. Let's just move on.
15:18:46 Can you just remind me quickly what the number is for that.
15:18:55 I'm sorry I can't slightly this calculate. So, I don't remember
15:19:03 Okay.
15:19:06 That would be a two three to seven.
15:19:12 Oops.
15:19:15 Yep.
15:19:17 And this is one of the other kind of hot off the press papers.
15:19:22 At the moment, yeah so just so everybody's aware, this is another
15:19:27 paper, kind of reversing the decision to deprecate some of the
operations related to follow tile.
15:19:37 And, yes, see Paul for any questions or comments on that.
15:19:44 Okay.
15:19:48 So, moving on. Are there any.
15:19:52 Is there any other papers anybody wanted to mention.
15:19:55 Are there any domain specific discussions, I guess we should give
particular emphasis to any topics related to an embedded embedded
15:20:10 Was there anything anybody wanted to bring up
15:20:20 I know Ben can't make it I'm not sure if it is here, or Odin, but.
15:20:30 Failing that, it's going to be, finance, next time around is there
anybody from finance here.
15:20:38 Maybe somebody could bring up topics that we want to discuss next
15:20:46 Hello.
15:20:48 Yeah, it's just Jeff Smith, Social Security's. Um, I think it's my
ideas I can put them on the reflector for things I've kind of my grab bag
wish list stuff but nothing on lines of a paper proposal, quite yet.
15:21:04 So, okay, well um yes I mean, next month if you, if you have some
some ideas or to float around or even a beginnings of a paper by all means.
15:21:18 Share them or put the suggested the they'd be put on the agenda
for the, for the next meeting, that would be great.
15:21:26 Thanks john thanks.
15:21:30 How about games
15:21:37 guy here. Any, any news from the world of games.
15:21:41 Nothing here.
15:21:42 Okay. No, nothing is some is one of the big conferences was GTC or
the other one coming up soon.
15:21:54 Do you see us coming up soon. Yes. Okay.
15:21:58 I've been asked to live on that one though.
15:22:02 Okay. Yeah, i mean i don't have.
15:22:05 I mean, I think it's just cdc.com, or GC gt comp I don't remember.
15:22:12 But anyway, yeah it's up. It's all virtual, I believe it's promote
this time around and, yeah, we're not, we're actually not sending any one
because most of the benefit for the game developer conferences, doing
contacts and it's just really not possible.
15:22:29 Right, yeah, we have a few people that create some assembly we're
giving talks but they're busy recording them at the moment in their homes.
15:22:38 Right.
15:22:38 Okay.
15:22:40 And then linear algebra, I believe there's a meeting tomorrow.
15:22:45 Is that right, there's an sg 19 meeting tomorrow But Bob and I
have made no progress in the paper for a variety of reasons over the past
few months.
15:22:55 It's still, it's still gonna happen. We're just we've, we've
turned we're transitioning to
15:23:04 single matrix type rather than matrix and better type in treating
a matrix as a simple specialization of a, of a matrix.
15:23:15 And I've taken a bit of us taking a bit of implementation.
15:23:19 But to was still rolling along with it.
15:23:24 Okay.
15:23:25 And I believe there's some, some free functions some statistical
functions are going to get some interesting functions cropping up this
Mean, Median median modal, all those kinds of things are good of discussion
tomorrow I believe.
15:23:41 I'll certainly be there myself.
15:23:51 But, as I say, No, no linear algebra. Okay, in particular.
15:23:50 Hello. Hello.
15:23:58 Okay.
15:23:57 Okay, um, I believe exceptions will be one of the topics
discussed, and maybe the quite the question of whether they're the right
15:24:07 method of of handling some of the runtime cases. So, so, moral
exceptions if you didn't get enough discussion of exceptions. Today, I
don't see that on the, I don't think that's on the agenda.
15:24:21 Okay. So 2376 was mentioned a few hours ago.
15:24:34 Oh yes.
15:24:34 And I think that's that's just a pretty good, like a recurring
conversation where where where error handling was sort of perhaps contract
violation and error handling are
15:24:48 intertwined fair in the US.
15:25:03 It's really interesting two or three years before we get contracts
isn't it. Yes. And until then, just frequently Yeah, every now and again.
15:25:00 People will propose an API where, if there's a if there's a bug on
the call aside that an exception his throne, and then somebody has to write
a paper saying no that's maybe not a good idea.
15:25:12 But, yeah.
15:25:14 Okay, contacts, please, please.
15:25:18 All right. Yes, Allah.
15:25:20 I'll pass on your request, thank you john.
15:25:24 Okay.
15:25:26 Anything else from the special interest groups.
15:25:31 Before we move on.
15:25:35 I think I have sort of covered it other papers.
15:25:41 Perhaps if there are other things going on in WG 21, that people
might think are of particular interest to SG 14 but that haven't been
raised already.
15:25:54 Yeah.
15:25:57 Do let us know.
15:26:00 And then, future face to face meetings I think also has been
covered, probably unlikely in the near future.
15:26:10 And.
15:26:11 Yep.
15:26:15 Also, future standards meetings, again this this this agenda is
maybe doesn't doesn't gel perfectly with the way that we do things but they
are just continuous and ongoing.
15:26:30 These days, I guess.
15:26:32 Okay. So, moving on to any other business.
15:26:37 Is there anything else to discuss Oh cool.
15:26:44 Yeah, I'll just in the chat it says, How is progress on
freestanding stuff I've been slightly out of the loop from Kim.
15:26:55 And if you look through the latest mailings you'll see that there
is a, an update to the proposals regarding some of the freestanding stuff
and it is moving slowly since Ben is more or less the only one writing any
15:27:15 But it is moving forward.
15:27:18 And I still think the offer to pick up any of the papers described
in the overview paper is open, so you can just pick a people you want to
right Kim and bring it all forward.
15:27:37 Right, yes.
15:27:39 Bed would dearly love more help with that.
15:27:41 It's all, it's all going to happen but it's going to go at a
quicker pace if there's more input.
15:27:45 So please feel free to get in touch with them directly, I guess.
15:27:51 If you're looking for direction on that.
15:27:53 But yes, presumably you're talking about this. This revision here.
15:27:58 Paul, when you talk about the, the latest mailing or.
15:28:04 Yep, I'm not sure yes yes but yeah, okay.
15:28:08 But that's right how mentioned the preview the other day. Okay.
15:28:12 All right.
15:28:14 Anything else, a short summary of contracts sometime, maybe 10
minutes and the next embedded meeting.
15:28:21 If someone can arrange it.
15:28:24 Okay.
15:28:26 I certainly be happy to.
15:28:30 Yes, give an update on contracts, there hasn't been an awful lot
in there recently.
15:28:39 I think the last possibly was a paper.
15:28:46 See yes it's.
15:28:57 You have to remember exactly what study group is now.
15:28:54 Yeah, it's
15:28:57 okay yes I think defining contracts was the last thing to come up.
15:29:01 Regarding contracts, and that was because people were kind of
talking past each other.
15:29:09 It seems that different developers have very different ideas about
what contracts are. And so, Jessica very kindly put together a list of
songs like a glossary list of of terms to use that aren't confusing or too
controversial to help us talk about contracts
15:29:31 in a more constructive way going forward. But then I know one or
two other papers were in draft form but didn't make it into the last
mailing yet so not a lot on that in the last month or so but certainly this
year there's been a lot of discussion which
15:29:50 is sort of helped and it's maybe not got us closer to a solid
proposal but has helped us understand some of the, the differences and
15:30:02 That may be affected the original decision to withdraw contracts
from c++ 20.
15:30:11 That's, that's maybe all i have i but i can i can go into detail
on some of the newer papers. Next time, if that would be.
15:30:20 That'd be appreciated. And I do think it is of particular interest
to to our study group, because the kind of contracts that go into the
standard will greatly affect the how we think about the zero overhead
principle and, and various other things to do
15:30:42 with performance and latency. So, yes, I'd be more than happy to
talk about that next time.
15:30:48 Hope that hope that answers your question, Henry.
15:30:54 So going back to the agenda.
15:30:59 Anything else, And by the way, if you've got any suggestions for
next time. Please just mention that in the reflector and it will be added
to the to next month's agenda.
15:31:12 And it doesn't have to be.
15:31:17 Financial. I frequently trip, I Frequency Trading specific that
obviously will be the, the, the main focus. Anything low latency via, we
can chat about.
15:31:30 Okay, the topics, I'd like to maybe touch on, or shaving off costs
for a thread local in some cases which probably has people beyond finance
caring about so.
15:31:41 Okay.
15:31:43 Yes. Could you make sure to add that to suggest that in the agenda
for next time, I'm sure.
15:31:54 Frank is being written up that's, you know at least passable
before that point and you guys can decide it's where the further discussion
or not.
15:32:01 Sure, please do that would be great.
15:32:03 Thanks.
15:32:05 From the finance side, we're always sort of scrambling for
specific things to look at. So the more the merrier is my view.
15:32:18 Well, as always.
15:32:27 The. There may be some interesting stuff coming up in the, in the
mailing every month, sure there'll be some new material. By the by the time
we meet next.
15:32:32 Okay.
15:32:34 Alright.
15:32:51 So, let's see.
15:32:42 Did we okay this is links to whatever date now.
15:32:48 I don't know if there's been any activity in the, in the GitHub
group at the moment I don't really follow that very closely.
15:32:55 But perhaps that that could be a somewhere where we share some of
the ideas on the embedded exceptions.
15:33:05 prototype.
15:33:08 Okay,
15:33:13 moving on.
15:33:15 I'm not sure what I took action items there are, if any, I'm not
sure if Michaels gone on to his, his presentation that he had to give.
15:33:26 But, yes, I guess.
15:33:29 Yeah, there's some good suggestions about things to talk about
next time.
15:33:34 Let's, let's reply in in this thread with suggestions for those
because I think nobody's taking notes.
15:33:42 As such, right now, if that seems like an okay idea.
15:33:48 And, yes, that's that's the right date right, July 14 say when it
comes up here.
15:33:55 July 14 will be our next meeting, same time, same place.
15:34:01 And so unless there's anything else anybody would like to add.
15:34:10 Okay, I think we're. I think we're good.
15:34:14 All right.
15:34:21 Thank you everybody for showing up.
15:34:18 Look forward to seeing you next time, and have a good evening or
morning or middle of the night.
15:34:27 Thank you for sharing. Thank you very much. Thank you. My
pleasure. Yeah, see everyone knows you're right. Right. Okay. Take care.
15:34:34 Bye. Bye.

On Tue, Jun 8, 2021 at 10:05 AM Michael Wong <fraggamuffin_at_[hidden]> wrote:

> Topic: SG14 Low Latency Monthly
> This meeting is focused on Embedded.
> Hi,
> 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,
> June 9, 2021 02:00 PM 1800 UTC
> Join from PC, Mac, Linux, iOS or Android:
> https://iso.zoom.us/j/93151864365?pwd=aDhOcDNWd2NWdTJuT1loeXpKbTcydz09
> 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):
> https://iso.zoom.us/skype/93151864365
> Agenda:
> 1. Opening and introduction
> ISO Code of Conduct
> <
> https://isotc.iso.org/livelink/livelink?func=ll&objId=20882226&objAction=Open&nexturl=%2Flivelink%2Flivelink%3Ffunc%3Dll%26objId%3D20158641%26objAction%3Dbrowse%26viewType%3D1
> >
> ISO patent policy.
> https://isotc.iso.org/livelink/livelink/fetch/2000/2122/3770791/Common_Policy.htm?nodeid=6344764&vernum=-2
> WG21 Code of COnduct:
> https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures
> 1.1 Roll call of participants
> 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
> June 9, 2021 02:00 PM ET/1800 UTC: Embedded
> July 14, 2021 02:00 PM ET/1800 UTC: Finance/Low Latency
> Aug 11, 2021 02:00 PM ET/1800 UTC: Games
> 2.2 Paper reviews
> Deterministic Exception for Embedded by James Renwick
> https://www.pure.ed.ac.uk/ws/portalfiles/portal/78829292/low_cost_deterministic_C_exceptions_for_embedded_systems.pdf
> Freestanding?
> 2.2.1 any other proposal for reviews?
> SG14/SG19 features/issues/defects:
> https://docs.google.com/spreadsheets/d/1JnUJBO72QVURttkKr7gn0_WjP--P0vAne8JBfzbRiy0/edit#gid=0
> 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,
> 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:
> https://isocpp.org/std/meetings-and-participation/upcoming-meetings
> -
> 3. Any other business
> Reflector
> https://lists.isocpp.org/mailman/listinfo.cgi/sg14
> As well as look through papers marked "SG14" in recent standards committee
> paper mailings:
> http://open-std.org/jtc1/sc22/wg21/docs/papers/2015/
> http://open-std.org/jtc1/sc22/wg21/docs/papers/2016/
> Code and proposal Staging area
> https://github.com/WG21-SG14/SG14
> 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
> July 14, 2021 02:00 PM ET/1800 UTC: Finance/Low Latency
> Aug 11, 2021 02:00 PM ET/1800 UTC: Games
> Kind Rgds

Received on 2021-06-10 09:38:34