Date: Mon, 24 May 2021 09:13:27 -0400
HI all here is the attendance and notes from the call:
Sophia Poirier {she}
Michael Wong
connor horman
16175122142
Billy Baker
Jeffrey Olkin
René Ferdinand Rivera Morell
Derek Haines
Ronan Keryell
Brett Searles
Matthew Butler
Izzy Muerte
Staffan Tjernström
Daniel Papke
Sean Middleditch
Lee Mracek
Andrew Lumsdaine
Damon McDougall
Sophia Poirier {she} (Sophia)
Henry Miller
Guy Davidson
Ronen Friedman
Piotr Grygorczuk
Kim Nilsson
John McFarlane
Paul M. Bendixen
Matheus Izvekov
Inbal Levi
Marco Foco
Tristan Sizemore
John Law
Lucas
And the notes which are partial as I had a machine crash in the middle:
15:14:12 Yep. So, what I'm trying to say is that, if anyone wants to like
make sure that these will reach the library, etc. So please, you know,
contact us and tell us this one's important currently there's sort of in
the end of the queue, because no one's like
15:14:12 insistent on them.
15:14:15 Right.
15:14:17 Yeah, I think.
15:14:18 Su Su six is quite relaxed. This approach to getting players into
the library. Yeah, absolutely fine.
15:14:29 Football pornos is a new idea. We don't even have a paper here,
and meals not hearing me.
15:14:34 Okay.
15:14:35 Jon Jon's away improving debug builds.
15:14:40 Is this maybe I mean it kind of gets
15:14:46 brought brought up in relation to the slow builds as well. I think
can be some fundraising it also relate to anything that has a lot of
enlightening.
15:14:57 A lot of deep Call, call trees.
15:14:59 Yeah, now it's just one thing that I tried floating in.
15:15:08 the then sweep didn't proceed with it from there. There was some
work to try and prototype some of this in clang briefly.
15:15:17 But I sort of didn't, I didn't chase up with that.
15:15:20 But, I mean, we were looking at different features, things that we
can get in but then we also some of the things we're talking about our sort
of broader topics and I error handling bill times and stuff like that.
15:15:34 I wonder if we want to have a list of, you know, broad topics,
alongside a list of individual features and and papers that we have,
because you know like shoulder, shoulder some mentioning earlier, take a
lot of people will have still put off by slow
15:15:51 template code.
15:15:54 No. Read people are finding ranges, is another good example of
something that just makes compiles slow, the, you know, and exhaust some
memory as well.
15:16:21 Yes, I'm very sad about ranges looks great but I can't offending
you're doing better with the language between the library features Sure.
15:16:17 Yeah that's hard to re mentioned I mentioned the paper earlier
cargo regard to debugging but I think there's also an effect here author
and chat it's p 1221 the parametric expressions proposal by Jason rice.
15:16:33 He has a demo of it on DOD bolt and I think a client branch, I
don't know that here else has ever done like a deep performance analysis to
see how much this type of approach would actually help things like debug
bills and iterations.
15:16:48 Like, conceptually in my head, it sounds like a good help but
obviously that needs to be tested verified.
15:16:53 So I just wanted to like pass it out there and say, hey thing to
consider putting the putting it in chat, but I just want to mention it.
15:17:01 Okay, yeah, that didn't occur to me that that that work might have
a benefit there. So that's good to know. Thanks.
15:17:10 Yeah, I mean, it sounds, it sounds like, I mean, this is the
topics that are raising a feeler.
15:17:17 Yeah, definitely not just mean they're a pain point for game
developers, in particular, perhaps, but I think just generally for the, for
the health of the language.
15:17:29 We can't just keep sort of leading hit more and more every on
enlightening.
15:17:35 I mean I maybe want to see how how things are affected by modules,
because you know I think everybody's in a holding pattern to see how they
affect build times.
15:17:47 Nobody sounds particularly optimistic that you get anything other
than that, you know, you know, why having a bell times that kind of thing.
15:18:04 But yeah, I mean ranges that the linear algebra, the and the, the
proposals that I put forward, which, you know, required rapping types and
types and types know a lot of angle brackets there when I when I took any
of that to committee and say, and was
15:18:17 you know tentative tentatively saying you know is this too complex
is this, I mean that it makes you It makes your eyes, boggle the, the, the
amount of nesting going on there.
15:18:27 And I was getting, you know, encouragement to just go full steam
ahead and, you know, increase that
15:18:35 without really any concern for you know Bill times, or complexity.
15:18:40 So, yeah, I just wonder if there's going to be a general solution.
Anything library specific I feel.
15:18:49 Okay. Izzy.
15:18:51 I just wanted to comment that both the SIG and rust have adopted.
15:18:59 You know, an intermediate format to classical to more easily get
metadata, and to bug, but would have been enlightened on like a per
function basis like the Bitcoin support isn't entirely there because they
do have to interact with c++, you know based
15:19:18 tools like GDP lol to be.
15:19:21 But there are now two buggers being written in rust that support,
talking to Mary, for instance, directly, which is the, the interpreter for
the intermediate format that Russ uses.
15:19:39 Whereas like right now, you know, lol VM, and clang have a byte
code interpreter for constant mountain concepts for stuff but there's no
way to debug that.
15:19:49 And I think that anything that like could be checked at compile
time should also be the bubble right now that's not really an option.
15:19:59 Yeah, I just wanted to comment on them.
15:20:04 Right. Well, the other direction stuff that we, we might want to
debug but can't, which is another thing that causes difficulty.
15:20:15 Yeah.
15:20:18 Okay, we have Ben's pledges next on Exception Handling size and
speed.
15:20:25 With any luck hubs papers will
15:20:31 render these interesting historical artifacts, rather than
critical point is to the pain of using exceptions.
15:20:40 Statistical functions I'm actually on this one myself.
15:20:45 I don't know that it's necessarily an sg 14 related paper, but it
is a it is a 19 but does it have. Yeah, he was usage.
15:20:56 It is a test in 19 but does it have us usage. So it does is, it,
it, it now enables things like means, median, mode variance and deviation
and ketosis. Yes, I'm sure.
15:21:09 Yes, certainly, we use. Well, certainly the meeting.
15:21:13 Meeting men mean mode and medium, all the time.
15:21:22 Yes, it's not, it's nice to have an establishment, because then we
don't end up writing our own incorrectly, which is what many people do with
love and mid points.
15:21:28 I've noticed job.
15:21:31 Yes, guess what I'm going to talk about.
15:21:34 So, so this is this is the example I didn't actually mention it,
but this was what I was thinking about earlier.
15:21:41 When I said a lot of some of these some functions, they will take
two ranges, a little bit like for examples to transform can.
15:21:50 And if, if the ranges don't match in certain ways. Exceptions are
thrown.
15:21:55 Yeah, I think somebody has actually, possibly even written a
paper, sort of question this was certainly got got in touch with the the
authors to say Do you really want to be thrown sections for something that
usually if you're using this right this simply
15:22:12 isn't going to happen.
15:22:14 And if it does, if it does happen then then presumably it's a bug,
it's not the sort of thing that might happen and then you want to catch it
and continue the best an energy
15:22:28 correcting each of these things on a per paper basis, basically
following some advice from I think it's chapter three of the sections paper.
15:22:40 I mean it just seems a bit wasteful for, for people to have to
repeat themselves, so often.
15:22:51 I,
15:22:51 Michael.
15:22:57 What was I gonna say okay yeah you're right there. That is that
that objection has been raised and we're going to address that in
tomorrow's meeting at this exact same time in SG 19, but thank you.
15:23:07 Yeah.
15:23:09 Yeah. I'll be as to 19 tomorrow as well.
15:23:15 differentiable programming that's also SG 19.
15:23:29 we can skip these if they don't, we don't think they're valuable
This is essentially giving people a way of doing different differentiation.
Oh Michaels here goes there. Yeah, Monica.
15:23:33 Please take the floor. No, no, oh yeah it's automatic
differentiation paper. The first one, the second one we abandoned the idea,
because we don't have the time to follow that that numeric differentiation
part.
15:23:44 So if someone wants to pick it up. Yeah. You're welcome. But for
me, kid. Right. Okay.
15:23:52 And for the financial world programming, so we we changed one of
the others because now we have two implementations. So, one is at higher
level, and one is at a higher level.
15:24:06 So that's called transformational level, it's quite interesting
but I don't know if it's related to see 14 now so it's back to what I had
on other things because I wanted to ask a question.
15:24:21 I don't think it wasn't bad festering Prague, we had a
presentation of someone I don't remember who doing presenting a faster way
of doing exceptions.
15:24:33 But I couldn't see anything here. It was not a p Baker that's why
I kind of find it.
15:24:42 Michael, you 21. Yes.
15:24:46 Yes. So that was a paper by a student, a PhD student who now works
at on.
15:24:53 And it what there was no p paper and I still have to ask him to
submit it as a piece of paper, but it was called.
15:25:00 It's called them determine is the exception for embedded devices,
and it's built on work from hopes paper but extends it in a way that I
think could work better for this community, it's still on my to do list.
15:25:16 And sorry I haven't done it but that is potentially another thing
that we, we need to do for us to 14, and I was going to do that in the next
call because the next call is embedded.
15:25:25 So I'm just going to get James, what's it was, I can't remember
his last name. Yeah. But now I've got it right yeah it's a guy from arm, I
don't know if you remember his name but yeah, I will do that.
15:25:39 No, I can't remember.
15:25:42 Okay.
15:25:44 If you can send me his name I can get in touch with him because
I'm also interested in that.
15:25:48 Yeah, quite a few people were interested in. Okay, because he has
a good help of this proposal and.
15:25:57 And he was hoping to get people to help them experiment with it.
So I think that's, I know it's been over a year but that's what the
pandemic busy. Yeah, exactly.
15:26:07 Sorry about that.
15:26:11 Thank you. Okay, thank you. But James Randi okay yeah someone like
Michael I presume that's an old hand.
15:26:22 Michael I presume that's an old hand. But I was going to say for
the next one also SG 19, but gradually lung stain i think is on and he
might be able to say something about it.
15:26:30 Yes.
15:26:37 He has under is no longer in the meeting with us, I think, is
supposed to be to gain coin.
15:26:43 And I'll say something about it. It's essentially a paper to do to
build a standardized graph data structure would have Jason see nodes and
vertices.
15:26:54 And that way, it can give you a path towards graph execution,
which is something we've been talking about
15:27:03 building call graph executions.
15:27:05 It's, it's, it's a very nice piece of work I think and I think we
should be able to leverage off of that, for people who are deeply involved
or interested in building grass grass, it builds off the boost graph
library, which you guys all know from BTL,
15:27:21 but now Andrew has like the fifth iteration of that bill and it's
much improved, and he's been working with people from SAS, who are also
involved as you know in them in machine learning, that's just everything
there is it's all about graphs, it's about
15:27:37 convolution grass. So, as a result, it's a very very useful piece
of work, but it's got more than most of the night, people are looking at it
to use it for things like call graph building a called Building a car
graph, like what we talked about.
15:27:55 Splendid.
15:27:59 Yeah, Yeah.
15:28:01 The comments show I'm saying 90% of my job is rising graph so you
can be quite useful. Yep. Graph crop up a lot reverberations are assuming
it's one game programming, whether it's a messenger application or logic.
15:28:14 Sounds great to me as a hobbyist Yeah, I'm looking forward to this
paper and looking forward to this proposal.
15:28:17 So anyone wants to discuss it. Su 19 calls tomorrow.
15:28:22 And you can find out from the VSG 19 reflector of the call in
number, same same same time as this one.
15:28:29 I like to get both both things done within one week. Yeah, I would
command the su 90 meetings in general, I've been to a few now, and I'm
finally quite stimulating exhilarating and refreshing, they appeal to
different ways the SDR team meetings.
15:28:46 Right physical units British
15:28:51 six and 16.
15:28:57 Does anybody want to speak to this paper.
15:28:59 It's quite a simple paper simply as propose it proposing
15:29:04 unit three on two seconds, Michael, please save me. okay yeah sure
so I'll talk about it.
15:29:11 I've had contact with Matusow about this and his paper is good,
it's proposing something I've been talking about since I helped create user
defined liberals, and the idea.
15:29:22 The idea of using some kind of user defined literal to create a
first class citizen for unit physical unit programming, so that you can
mess up units and cause like the Mars lander incident.
15:29:36 The Air Canada game league lie to incident so many incidents in
the past, it's great for security and safety of course. And I think the
newspaper is stalled because he's been asked to survey every buddy else's
techniques which are like template techniques
15:29:52 runtime techniques.
15:29:54 And he's just kind of getting stuck. So, the directions good
actually talked a little bit about this too because we kind of really want
this, and we wanted to progress, but he, but it's, but he matures, it is
getting overwhelmed by by people asking him
15:30:08 to to get a state of the art so
15:30:15 I wonder if he just needs more.
15:30:18 If he needs more bodies. I think he should just ignore the request
for the state of the art survey and just get down to designing his paper I
entire paper, and I couldn't figure out what he was proposing even though I
knew exactly what he was proposing,
15:30:33 so they can tell from the paperwork this joint, because he had 20
pages, talking about other people's proposals, which was we've already
decided we're not going to do units as a template.
15:30:43 Because that's too hard to read. Right.
15:30:57 Do it as a runtime quantity, because that's really hard to detect
trap at compile time, we already know the problem of all these other
techniques now. Yeah, just in literature literature review the same
unnecessary certainly. He's some his implementation
15:31:04 i think is maybe where he's putting some effort, and he certainly
getting some help there as well.
15:31:11 There may be a bit a little bit of a bubble there in terms of
designing it might be worth him you know coming with something preliminary,
just to sort of test the water in the committee again but yeah.
15:31:24 Well, we can always invite him to present.
15:31:28 Right. I mean he wouldn't have been able to present to present.
15:31:32 He probably needs. I mean, it was more of a let's let's do units
was that paper. He probably now needs to adhere my units, paper, I think,
maybe that would be breaking the rule of separating the design rationale
but that that paper.
15:31:51 I don't think it seen any any activity for purity now.
15:31:55 Okay.
15:31:58 Michael, would you like to give them a nudge.
15:32:03 Oh, yeah.
15:32:09 talking about flights.
15:32:06 Sorry, Michael.
15:32:09 Yeah, but if you give me too much and see if he wants to see if
there's any help that we can offer or if, see what see what the state of
the art is sorry the stage of the paper is on the side to the other side of
town is Kim.
15:32:26 Hello, can you hear me. Yeah.
15:32:28 All right. Just a quick comment on that, I think, whatever
implementation he goes for it has to be faster compile. Otherwise, I don't
think, at least, the things I've seen won't be using it.
15:32:42 The, the class of bugs that catches is not that big.
15:32:45 And if it explodes or compile times it's really going down the
drain.
15:32:50 Yeah.
15:32:51 Yes, I'm already composing a tweets for Twitter after this.
15:32:56 I'll be sending out after this meeting about compile times because
I think it's still overlooked by large swathes of the committee.
15:33:03 So, if, if this some library was just doing the checking just
constraining what was done with the, the calculations, you could you could
type it all out for instance floats.
15:33:16 You know, for general development.
15:33:19 If these things were women to operate exactly like the the
fundamental types that they were wrapping that that's something that that I
was thinking we should aim for if we have ever safe type of traps overflow.
15:33:35 Just be able to swap that out for a for a regular integer type,
and then you get really fast builds but with no checking. And then you sort
of maybe change the change the type def one of these super expensive
steadily checked unit types.
15:33:51 And then suddenly you have just a slow build it says oh no
overhead, you've made. You've gotta go to your units and interest.
15:33:58 Yeah. That's one of his design considerations.
15:34:01 Okay.
15:34:02 It's interesting.
15:34:07 Um, okay. So Michael, oh no, sorry not Michael beyond has a paper
on c++ exceptions alternatives. I haven't read this paper.
15:34:18 It's yeah it's actually, it's an old paper. I right, it's, it's
really him justify why exceptions still exists.
15:34:29 And it's worth a read, it's not really a proposal because he and I
was talking in the direction group and we're kind of tired of the fact that
there's all this proposal for, you know, there are many proposals will
alternate exceptions like error and I'm
15:34:46 not blaming anybody but we are now. And the question the thing
that he was trying to say was, people have potentially have forgotten why
we needed exceptions.
15:34:57 And that's because you can't throw an error code in a constructor.
15:35:03 You can't throw an error code in an assignment, operate at low any
operators.
15:35:08 Right.
15:35:10 And so, and there are other reasons why and it explains the in
depth back history of why he designed exceptions. He's trying to say that
he's seen all of these other techniques and methods before and he discussed
them with Bell Labs.
15:35:27 And we're just rediscovering all the same reasons, and he's trying
to point out that exception is really only useful when you have, I think,
You talked about this.
15:35:39 So, correct me my numbers are he says it's like is it that if you
have 1010 levels or is that 100 levels of a function call.
15:35:49 Sorry, sorry, the frequency of it coming up. Yeah, I think inbound
will will be able to correct me on this one is a 10 or 100 frequencies will
do you remember which one it is.
15:36:02 No, sorry.
15:36:03 Yeah. So you try to say that you were supposed to use exceptions.
If you Eric and Eric happens like less than 10 times.
15:36:11 Right, right. Yeah, something like that you know I'm trying to say
right and but, yeah, yeah, yeah. You shouldn't. It's really related to what
are we saying not to use exceptions for, you know, things that are.
15:36:23 Yeah.
15:36:25 Sorry.
15:36:27 Yeah, cuz he did the the mechanism would overwhelm your error.
Right.
15:36:32 Yeah.
15:36:33 So, so he was just mostly complaining, not complaining but trying
to re inject into the world what people forgotten about why exception was
an important design.
15:36:45 And I really should put in James some paper now as well to his
paper on deterministic exception for embedded systems. If people who are
looking for it you can just Google that paint that name.
15:36:58 c++ deterministic exception for embedded systems, and you'll find
James's paper, and I'm going to put that on this list as soon as I get off
the phone right now.
15:37:10 Right. Thank you, Michael.
15:37:15 A lot of assumptions tonight isn't here.
15:37:20 I have no idea what this one's about. No, I'm not sure why this is
my related to us.
15:37:28 Right. This yes so sorry for that.
15:37:33 That's a pre WG 21 kind of contracts related thing there.
15:37:39 This would you be able to inject assumptions into the code that
can maybe help you optimize it produce faster code.
15:37:49 And that's probably why it's with us. Right, right.
15:37:52 Thank you.
15:37:55 Mr.
15:37:57 Thank you. I just wanted to add a small thing regarding the
exceptions and error mechanisms, just that, as Michael said that it's true
that are like, few different error handling mechanisms which are, which,
which, at least to my opinion is good, we might
15:38:14 want to address the multiple ways of handling errors or, if we
want multiple ways in which ways of handling error in the library so that
would be an interesting topic to explore, regardless of adding the
mechanism so so like JS proposal is moving forward.
15:38:34 First is expected, etc.
15:38:37 You might want to address that. Regardless of the of the
mechanisms that exist. So if anyone wants to know, I'd love to corporate
and that as well.
15:38:50 Okay.
15:38:51 I'm sure next.
15:38:54 Sure. Next, I just wanted to add for the portable assumptions,
like john said I mean, once we have contracts that removes like 9095 99% of
the uses for these like what you currently use the built in assume or
assume macros for or up.
15:39:09 Yeah, intrinsic sport.
15:39:22 There's still a handful of cases you might use them in the middle
of a function that I don't know contracts would be the right fit for that
at all.
15:39:22 Sorry, sorry to interrupt you, but assumptions and assumptions.
15:39:26 I think there's
15:39:28 another paper by have actually saying that that assertion search
should not be assumptions.
15:39:36 And so that's kind of like a hot topic again in, in the contract
study group.
15:39:43 Yeah, I guess I was like I was like I think a lot of the uses for
for assume would would be very related to contracts, but I think there's
independent of that discussion I think there's still some corner cases
where it can be independently useful but
15:39:58 I would assume that if we have contracts and if they do have that
having all that conversation goes I guess it's one another assumptions that
would really, really decrease the pressure on meeting portable assumptions
and think.
15:40:10 Right. Yes, and I'd really like to see. Contrast be assumed report.
15:40:15 But I think there's there's a lot of fear around, you know, time
travel up,
15:40:21 type, type concerns people that you bring up.
15:40:27 People get instantly quite concerned that lots of terrible things
are going to happen to their programs and so it's quite difficult to get a,
like a calm stream of thought into some of those conversations.
15:40:53 We have 20 minutes left, and there are still other things to do
after this I'm going to rattle through these may return value coffee,
religion,
15:41:01 No patriots but obviously that sounds magical math word from the
lovely yes thunder, Sean little bit absolutely need to
15:41:13 threats constructor attributes,
15:41:17 can be changed our creation is a stack size. Do you have anyone
here, Billy, you're on this one.
15:41:24 Oh, but he's left.
15:41:27 Okay,
15:41:34 high
15:41:38 priority inheritance.
15:41:41 And we have no paper for this.
15:41:48 Another new idea. Right now we have artist. Yes, it's a question,
raise your data structures.
15:42:01 And
15:42:01 I don't know about these I think we start I think we're going on
to more recent papers now I can easily excited here let's.
15:42:12 Okay.
15:42:15 Yes, not strictly game or related but I can definitely see its
application in our low latency projects we have stumbled upon this problem
where we want to take a ratio, but the performance is way, way too large.
15:42:29 So if we could have some sort of fixed time that we pass by
copying instead of by application or something like that. That wouldn't be
very nice.
15:42:38 Yeah. Okay,
15:42:43 new random number generator.
15:42:44 That's just, that is the God, the random number generation is not
portable across platforms.
15:42:55 Ah, involves something in the chats to find a coach when a simple
performance test to go and levels deep into a call sequence and then it was
an error.
15:43:04 If the air is rare say one 2001 to 10,000 and the cornerstone is
deep say 100 or 1000 exception handling is much faster than explicit tests.
15:43:15 Yeah.
15:43:18 Izzy.
15:43:20 I would just like to point out that in languages like rust. The
compiler is actually able to signal bubbling up between the two locations,
if necessary, of like where, you know, the error state of a result is first
try and found, and it will automatically
15:43:39 propagate up.
15:43:42 And using relocation it does not actually have to do any checks in
between that, it may, you know, have to unwind or, you know, I'm sorry,
drop lifetimes of objects and whatnot but in terms of speed it is as fast
if not faster than an exception in the
15:44:03 same case that was stated by that statement.
15:44:07 Because you're not having to do a test at every level inside of
every function, because every single crate is compiled against each other,
and one Craig is one translation unit so even if you have 300 files with
1000 calls deep, that's all one translation
15:44:24 unit, the compiler can see that.
15:44:26 Right.
15:44:28 I've had learning rust near the top of most do this for about five
years now.
15:44:32 Every time I hear something about get more interesting.
15:44:35 Maybe one day I'll be tipped over the edge.
15:44:39 I must points verification explicit so now even to chocolate yes
that is nice. Yes, please.
15:44:45 Okay.
15:44:47 Rodney random number generator I don't know anything about this
time.
15:44:51 Can anybody lightness.
15:44:54 We certainly need the random number generators that affordable
15:45:00 is a whole bunch of proposed.
15:45:04 Sorry john is he was first sorry No I put the hand up from
earlier, thank you john.
15:45:11 Yeah, I mean I can pick up a number of some.
15:45:18 I don't know if they were generators or not but yeah there was a
paper proposing things. Some generators that maybe had appealing
performance characteristics.
15:45:30 Yeah.
15:45:31 Okay.
15:45:33 to. to st six.
15:45:35 The year before last.
15:45:37 Right.
15:45:39 Sure.
15:45:45 Just since there's no details here I was just wondering if they
would do or to just plant the seed, like it might be useful to have noise
generation, rather than just r&g in a standard release generation.
15:45:53 Yes.
15:45:55 Yeah.
15:45:57 Speaking mostly Nice, nice segue into audio. So this is my paper.
15:46:02 So, myself.
15:46:16 We just don't have the time to finish it, and the problem has
become larger, more complex and more subtle than me than we ever realized.
15:46:27 So, unless somebody else wants to take us out. We are moving on to
other projects.
15:46:33 Was this is disappointing.
15:46:35 It's, It's clearly just too much for us. And there are too many.
15:46:40 I think the problem possibly these businesses, specifying better.
15:46:44 As I say what all three of us are too busy to take this on into
our other word.
15:46:50 There was, we're so busy that the paper that we were planning to
rise to explain why we're not doing this is not 15 months overdue.
15:46:59 So, it's.
15:47:02 Many apologies.
15:47:04 Execute executor moving forward is moving toward pipeline channels
off.
15:47:16 CMOS points elastic numbers
15:47:21 like Mathias I'm so deep in the.
15:47:26 I'm, and also I think you said there with their matrices as well.
I'm now going to come to terms with the c++ 20 Well, having to rethink an
awful lot of the decisions that I came up with.
15:47:37 Yes, yes it was 20 really has got very big stone into a very
large, very large pool.
15:47:45 And this is generally paper so that takes us to our list, and we
have 13 minutes.
15:47:51 Yeah, that's the paper that people asked about, which is the one
that we lost reviewed in StG 14 in in Prague.
15:47:59 So yeah, thank you for going through all this I've been making
notes along the way and and updating it, so we needed that. So I'm afraid
so maybe in the last five minutes we can now talk about, you know, what we
what people want that they don't see on
15:48:13 this list.
15:48:15 Renee your hand.
15:48:18 Right, so I promised something earlier on about something that not
on this list.
15:48:24 So I actually got this one from Twitter since I asked publicly
says if anyone had any ideas, and the one thing that came up with a better
support for that oriented structures.
15:48:36 You know, goes along with the layout stuff but repacking that a
structure so that they, you know, but the one of the other some other
languages repacking the data structure so that the members are individually
members are in segment that buffers as opposed
15:48:50 to, you know, each object on next to each other.
15:48:56 Yeah.
15:48:59 Okay john. So well just in response to that that any mentioned
that usually is created by reflection will so fat or two,
15:49:13 which makes sense.
15:49:21 Well, we're hoping that reflection, you know, addresses that but
we won't really know. Because, I mean how far along is the generative side
of reflection going.
15:49:27 Well, I mean, yeah, I don't know what the progress is, I think,
but stately described things being things are being prototype, the moment.
Yes.
15:49:39 You know this stuff in compilers that you can play around with.
But, as well as the, the data oriented thing.
15:49:48 Just reflection in, in game engines generally serialization and
tools to allow game designers to manipulate game objects that kind of thing
is traditionally somewhere where reflection solutions have been reinvented
many times by different game companies,
15:50:08 often using macros.
15:50:12 And again reflection is the hope would be that reflection caters
for those needs.
15:50:20 I can see how it might, but I wouldn't like to lay money on
guaranteeing that it will.
15:50:27 Well, you really ought to. I mean, yeah, it's it's reflection I
mean it's pretty. I think even the same word is used it, we want to, we
want to know about different types, but in a, in a general way so that we
can, we can present that information sterilize
15:50:43 it decentralize it expose it and graphical editors, the missing
thing you need to be able to do that is to be able to talk about the shape
of types.
15:50:57 Yes.
15:50:57 Yes, about that.
15:51:08 I'm sure.
15:51:02 Yes, your next couple different things about what is that I, I
love the idea of reflection like exactly like john said like we implement
all this from scratch and almost every game engine as I'm sure you're aware.
15:51:26 We actually do a code generation approach on the current project
I'm working on and part of that is managing reflection will handle which is
that we want to Koh Gen language bindings for some of these data structures
similar to like when you're generating
15:51:29 Protocol Buffers or something like that, like we want a single
definition of a single source of truth. That's going to spit out the c++
code all of the metadata that we use for like the editor and all that, and
spit out you know bindings to other languages
15:51:42 so there's.
15:51:45 I'm a little concerned that reflections not going to solve, as
many of the things as some people think it will, especially for studios
that care about multi language interoperability.
15:51:54 But the other part that I wanted to note about reflection is that
just like ranges I'm really scared about the idea that we're using heavy
weight libraries that have to be quote unquote interpreted by the compiler
to do, potentially very simple transformations
15:52:08 like we're talking about the data oriented stuff.
15:52:11 I have as yet unfounded. But deep seated fear that reflection is
going to end up being too costly, have a mechanism to use for some of the
things that people are saying to use it for like the data oriented approach
in time to share your concerns.
15:52:32 Great Marco
15:52:36 about the layout, I think that is be 1112 still on the table.
15:52:42 So I don't know if you want to have a look at it is that has to
seven.
15:52:49 Okay.
15:52:51 We have eight minutes before we before the meeting expires.
15:52:58 So I'm going to return to the minutes, unless anybody wants to
make any more points about any of these papers.
15:53:08 No.
15:53:12 I was gonna say, looking at beyond spade wrong exceptions, this
looks to me like a 2530 minute readings. And I think I want to commend you
all to give it a moment.
15:53:25 If you would send to these minutes you'll see where we do it,
that's the that's the spreadsheet that we've been ever since this is, you
can get it from the agenda today.
15:53:37 Let's tattoo the rest of these segments specific discussions,
jazz, well, this is what we're doing today.
15:53:44 Next, next time it's going to be embedded programming is it
Michael.
15:53:49 Yes, it is. Okay.
15:53:56 So these are always the second Tuesday. Second Wednesday, so that
will be tonight. And I'm going to ask one of the embedded chairs to to
chair and that might be the time to talk about the deterministic.
15:54:09 The low cost you two minutes exception for embedded systems that
James right and in fact I'll try to invite James Renwick to come on and
talk about that.
15:54:18 Come on. Last year in April. So, and we parked it for the whole
year so it's probably time to get him to come on again.
15:54:26 Yeah.
15:54:27 Okay, um, other proposals, no future face to face meetings we are
still
15:54:35 obviously all suspended according to our parent organizations,
Portland, Oregon, I believe is our next tentative meeting, or is it New
York, I think, is it important to New York.
15:54:54 Portland. It is Portland. Yeah.
15:54:54 Yeah.
15:54:56 So upcoming meetings Well, Yes, for New York right any other
business.
15:55:06 I don't understand why these are here, Michael, could you these
stale.
15:55:13 Those are all GitHub links. I remember, so don't worry about those
those are just places where people have put code.
15:55:20 So maybe you're right I should probably remove them, but that's
okay.
15:55:24 We can probably just close the meeting and but thank you very much
to guy Davidson for chairing a masterful job. That was very, very, it's
what it was fun, and it was really informative to.
15:55:36 And I hope I've been watching the translation. They are actually
particularly good, they haven't been, it actually goes back and change the
words. Once it understands what you were saying, so I'm pretty impressed
with it I hope, I hope we were allowed
15:55:51 to keep using this. Yeah, so so that's. This isn't a list of
actions, I will. I'll contact her sequel Africa clarification. Yeah.
15:55:59 But yes, this is a great improvement.
On Fri, May 14, 2021 at 10:01 AM Michael Wong <fraggamuffin_at_[hidden]>
wrote:
> HI all, if anyone saved any notes from Wednesday's call from the
> transcript, would you please forward it to me? I am trying to evaluate the
> quality. Thank you.
>
> On Wed, May 12, 2021 at 9:41 AM Michael Wong <fraggamuffin_at_[hidden]>
> wrote:
>
>> HI all, today's SG14 session will be chaired by Guy Davidson. Unless
>> there are specific papers, Guy will lead a discussion into what Games needs
>> from C++ , as we did last month on Low Latency.
>>
>> Thanks Guy.
>>
>> On Tue, May 11, 2021 at 10:48 AM Michael Wong <fraggamuffin_at_[hidden]>
>> wrote:
>>
>>> Topic: SG14 Low Latency Monthly
>>>
>>> This meeting is focused on Games.
>>>
>>> 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 1900 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
>>>
>> from Zoom report
>
>> 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 14, 2020 02:00 PM ET/1900 UTC: Finance focus on low latency
>>>
>>> May 12, 2021 02:00 PM ET/1900UTC: Games
>>> June 9, 2021 02:00 PM ET/1900 UTC: Embedded
>>>
>>> 2.2 Paper reviews
>>>
>>> Compound assignment review
>>>
>>> Low Latency topic brainstorm
>>>
>>> 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
>>>
>>>
>>> June 9, 2021 02:00 PM 1900 UTC
>>>
>>> Kind Rgds
>>>
>>
Sophia Poirier {she}
Michael Wong
connor horman
16175122142
Billy Baker
Jeffrey Olkin
René Ferdinand Rivera Morell
Derek Haines
Ronan Keryell
Brett Searles
Matthew Butler
Izzy Muerte
Staffan Tjernström
Daniel Papke
Sean Middleditch
Lee Mracek
Andrew Lumsdaine
Damon McDougall
Sophia Poirier {she} (Sophia)
Henry Miller
Guy Davidson
Ronen Friedman
Piotr Grygorczuk
Kim Nilsson
John McFarlane
Paul M. Bendixen
Matheus Izvekov
Inbal Levi
Marco Foco
Tristan Sizemore
John Law
Lucas
And the notes which are partial as I had a machine crash in the middle:
15:14:12 Yep. So, what I'm trying to say is that, if anyone wants to like
make sure that these will reach the library, etc. So please, you know,
contact us and tell us this one's important currently there's sort of in
the end of the queue, because no one's like
15:14:12 insistent on them.
15:14:15 Right.
15:14:17 Yeah, I think.
15:14:18 Su Su six is quite relaxed. This approach to getting players into
the library. Yeah, absolutely fine.
15:14:29 Football pornos is a new idea. We don't even have a paper here,
and meals not hearing me.
15:14:34 Okay.
15:14:35 Jon Jon's away improving debug builds.
15:14:40 Is this maybe I mean it kind of gets
15:14:46 brought brought up in relation to the slow builds as well. I think
can be some fundraising it also relate to anything that has a lot of
enlightening.
15:14:57 A lot of deep Call, call trees.
15:14:59 Yeah, now it's just one thing that I tried floating in.
15:15:08 the then sweep didn't proceed with it from there. There was some
work to try and prototype some of this in clang briefly.
15:15:17 But I sort of didn't, I didn't chase up with that.
15:15:20 But, I mean, we were looking at different features, things that we
can get in but then we also some of the things we're talking about our sort
of broader topics and I error handling bill times and stuff like that.
15:15:34 I wonder if we want to have a list of, you know, broad topics,
alongside a list of individual features and and papers that we have,
because you know like shoulder, shoulder some mentioning earlier, take a
lot of people will have still put off by slow
15:15:51 template code.
15:15:54 No. Read people are finding ranges, is another good example of
something that just makes compiles slow, the, you know, and exhaust some
memory as well.
15:16:21 Yes, I'm very sad about ranges looks great but I can't offending
you're doing better with the language between the library features Sure.
15:16:17 Yeah that's hard to re mentioned I mentioned the paper earlier
cargo regard to debugging but I think there's also an effect here author
and chat it's p 1221 the parametric expressions proposal by Jason rice.
15:16:33 He has a demo of it on DOD bolt and I think a client branch, I
don't know that here else has ever done like a deep performance analysis to
see how much this type of approach would actually help things like debug
bills and iterations.
15:16:48 Like, conceptually in my head, it sounds like a good help but
obviously that needs to be tested verified.
15:16:53 So I just wanted to like pass it out there and say, hey thing to
consider putting the putting it in chat, but I just want to mention it.
15:17:01 Okay, yeah, that didn't occur to me that that that work might have
a benefit there. So that's good to know. Thanks.
15:17:10 Yeah, I mean, it sounds, it sounds like, I mean, this is the
topics that are raising a feeler.
15:17:17 Yeah, definitely not just mean they're a pain point for game
developers, in particular, perhaps, but I think just generally for the, for
the health of the language.
15:17:29 We can't just keep sort of leading hit more and more every on
enlightening.
15:17:35 I mean I maybe want to see how how things are affected by modules,
because you know I think everybody's in a holding pattern to see how they
affect build times.
15:17:47 Nobody sounds particularly optimistic that you get anything other
than that, you know, you know, why having a bell times that kind of thing.
15:18:04 But yeah, I mean ranges that the linear algebra, the and the, the
proposals that I put forward, which, you know, required rapping types and
types and types know a lot of angle brackets there when I when I took any
of that to committee and say, and was
15:18:17 you know tentative tentatively saying you know is this too complex
is this, I mean that it makes you It makes your eyes, boggle the, the, the
amount of nesting going on there.
15:18:27 And I was getting, you know, encouragement to just go full steam
ahead and, you know, increase that
15:18:35 without really any concern for you know Bill times, or complexity.
15:18:40 So, yeah, I just wonder if there's going to be a general solution.
Anything library specific I feel.
15:18:49 Okay. Izzy.
15:18:51 I just wanted to comment that both the SIG and rust have adopted.
15:18:59 You know, an intermediate format to classical to more easily get
metadata, and to bug, but would have been enlightened on like a per
function basis like the Bitcoin support isn't entirely there because they
do have to interact with c++, you know based
15:19:18 tools like GDP lol to be.
15:19:21 But there are now two buggers being written in rust that support,
talking to Mary, for instance, directly, which is the, the interpreter for
the intermediate format that Russ uses.
15:19:39 Whereas like right now, you know, lol VM, and clang have a byte
code interpreter for constant mountain concepts for stuff but there's no
way to debug that.
15:19:49 And I think that anything that like could be checked at compile
time should also be the bubble right now that's not really an option.
15:19:59 Yeah, I just wanted to comment on them.
15:20:04 Right. Well, the other direction stuff that we, we might want to
debug but can't, which is another thing that causes difficulty.
15:20:15 Yeah.
15:20:18 Okay, we have Ben's pledges next on Exception Handling size and
speed.
15:20:25 With any luck hubs papers will
15:20:31 render these interesting historical artifacts, rather than
critical point is to the pain of using exceptions.
15:20:40 Statistical functions I'm actually on this one myself.
15:20:45 I don't know that it's necessarily an sg 14 related paper, but it
is a it is a 19 but does it have. Yeah, he was usage.
15:20:56 It is a test in 19 but does it have us usage. So it does is, it,
it, it now enables things like means, median, mode variance and deviation
and ketosis. Yes, I'm sure.
15:21:09 Yes, certainly, we use. Well, certainly the meeting.
15:21:13 Meeting men mean mode and medium, all the time.
15:21:22 Yes, it's not, it's nice to have an establishment, because then we
don't end up writing our own incorrectly, which is what many people do with
love and mid points.
15:21:28 I've noticed job.
15:21:31 Yes, guess what I'm going to talk about.
15:21:34 So, so this is this is the example I didn't actually mention it,
but this was what I was thinking about earlier.
15:21:41 When I said a lot of some of these some functions, they will take
two ranges, a little bit like for examples to transform can.
15:21:50 And if, if the ranges don't match in certain ways. Exceptions are
thrown.
15:21:55 Yeah, I think somebody has actually, possibly even written a
paper, sort of question this was certainly got got in touch with the the
authors to say Do you really want to be thrown sections for something that
usually if you're using this right this simply
15:22:12 isn't going to happen.
15:22:14 And if it does, if it does happen then then presumably it's a bug,
it's not the sort of thing that might happen and then you want to catch it
and continue the best an energy
15:22:28 correcting each of these things on a per paper basis, basically
following some advice from I think it's chapter three of the sections paper.
15:22:40 I mean it just seems a bit wasteful for, for people to have to
repeat themselves, so often.
15:22:51 I,
15:22:51 Michael.
15:22:57 What was I gonna say okay yeah you're right there. That is that
that objection has been raised and we're going to address that in
tomorrow's meeting at this exact same time in SG 19, but thank you.
15:23:07 Yeah.
15:23:09 Yeah. I'll be as to 19 tomorrow as well.
15:23:15 differentiable programming that's also SG 19.
15:23:29 we can skip these if they don't, we don't think they're valuable
This is essentially giving people a way of doing different differentiation.
Oh Michaels here goes there. Yeah, Monica.
15:23:33 Please take the floor. No, no, oh yeah it's automatic
differentiation paper. The first one, the second one we abandoned the idea,
because we don't have the time to follow that that numeric differentiation
part.
15:23:44 So if someone wants to pick it up. Yeah. You're welcome. But for
me, kid. Right. Okay.
15:23:52 And for the financial world programming, so we we changed one of
the others because now we have two implementations. So, one is at higher
level, and one is at a higher level.
15:24:06 So that's called transformational level, it's quite interesting
but I don't know if it's related to see 14 now so it's back to what I had
on other things because I wanted to ask a question.
15:24:21 I don't think it wasn't bad festering Prague, we had a
presentation of someone I don't remember who doing presenting a faster way
of doing exceptions.
15:24:33 But I couldn't see anything here. It was not a p Baker that's why
I kind of find it.
15:24:42 Michael, you 21. Yes.
15:24:46 Yes. So that was a paper by a student, a PhD student who now works
at on.
15:24:53 And it what there was no p paper and I still have to ask him to
submit it as a piece of paper, but it was called.
15:25:00 It's called them determine is the exception for embedded devices,
and it's built on work from hopes paper but extends it in a way that I
think could work better for this community, it's still on my to do list.
15:25:16 And sorry I haven't done it but that is potentially another thing
that we, we need to do for us to 14, and I was going to do that in the next
call because the next call is embedded.
15:25:25 So I'm just going to get James, what's it was, I can't remember
his last name. Yeah. But now I've got it right yeah it's a guy from arm, I
don't know if you remember his name but yeah, I will do that.
15:25:39 No, I can't remember.
15:25:42 Okay.
15:25:44 If you can send me his name I can get in touch with him because
I'm also interested in that.
15:25:48 Yeah, quite a few people were interested in. Okay, because he has
a good help of this proposal and.
15:25:57 And he was hoping to get people to help them experiment with it.
So I think that's, I know it's been over a year but that's what the
pandemic busy. Yeah, exactly.
15:26:07 Sorry about that.
15:26:11 Thank you. Okay, thank you. But James Randi okay yeah someone like
Michael I presume that's an old hand.
15:26:22 Michael I presume that's an old hand. But I was going to say for
the next one also SG 19, but gradually lung stain i think is on and he
might be able to say something about it.
15:26:30 Yes.
15:26:37 He has under is no longer in the meeting with us, I think, is
supposed to be to gain coin.
15:26:43 And I'll say something about it. It's essentially a paper to do to
build a standardized graph data structure would have Jason see nodes and
vertices.
15:26:54 And that way, it can give you a path towards graph execution,
which is something we've been talking about
15:27:03 building call graph executions.
15:27:05 It's, it's, it's a very nice piece of work I think and I think we
should be able to leverage off of that, for people who are deeply involved
or interested in building grass grass, it builds off the boost graph
library, which you guys all know from BTL,
15:27:21 but now Andrew has like the fifth iteration of that bill and it's
much improved, and he's been working with people from SAS, who are also
involved as you know in them in machine learning, that's just everything
there is it's all about graphs, it's about
15:27:37 convolution grass. So, as a result, it's a very very useful piece
of work, but it's got more than most of the night, people are looking at it
to use it for things like call graph building a called Building a car
graph, like what we talked about.
15:27:55 Splendid.
15:27:59 Yeah, Yeah.
15:28:01 The comments show I'm saying 90% of my job is rising graph so you
can be quite useful. Yep. Graph crop up a lot reverberations are assuming
it's one game programming, whether it's a messenger application or logic.
15:28:14 Sounds great to me as a hobbyist Yeah, I'm looking forward to this
paper and looking forward to this proposal.
15:28:17 So anyone wants to discuss it. Su 19 calls tomorrow.
15:28:22 And you can find out from the VSG 19 reflector of the call in
number, same same same time as this one.
15:28:29 I like to get both both things done within one week. Yeah, I would
command the su 90 meetings in general, I've been to a few now, and I'm
finally quite stimulating exhilarating and refreshing, they appeal to
different ways the SDR team meetings.
15:28:46 Right physical units British
15:28:51 six and 16.
15:28:57 Does anybody want to speak to this paper.
15:28:59 It's quite a simple paper simply as propose it proposing
15:29:04 unit three on two seconds, Michael, please save me. okay yeah sure
so I'll talk about it.
15:29:11 I've had contact with Matusow about this and his paper is good,
it's proposing something I've been talking about since I helped create user
defined liberals, and the idea.
15:29:22 The idea of using some kind of user defined literal to create a
first class citizen for unit physical unit programming, so that you can
mess up units and cause like the Mars lander incident.
15:29:36 The Air Canada game league lie to incident so many incidents in
the past, it's great for security and safety of course. And I think the
newspaper is stalled because he's been asked to survey every buddy else's
techniques which are like template techniques
15:29:52 runtime techniques.
15:29:54 And he's just kind of getting stuck. So, the directions good
actually talked a little bit about this too because we kind of really want
this, and we wanted to progress, but he, but it's, but he matures, it is
getting overwhelmed by by people asking him
15:30:08 to to get a state of the art so
15:30:15 I wonder if he just needs more.
15:30:18 If he needs more bodies. I think he should just ignore the request
for the state of the art survey and just get down to designing his paper I
entire paper, and I couldn't figure out what he was proposing even though I
knew exactly what he was proposing,
15:30:33 so they can tell from the paperwork this joint, because he had 20
pages, talking about other people's proposals, which was we've already
decided we're not going to do units as a template.
15:30:43 Because that's too hard to read. Right.
15:30:57 Do it as a runtime quantity, because that's really hard to detect
trap at compile time, we already know the problem of all these other
techniques now. Yeah, just in literature literature review the same
unnecessary certainly. He's some his implementation
15:31:04 i think is maybe where he's putting some effort, and he certainly
getting some help there as well.
15:31:11 There may be a bit a little bit of a bubble there in terms of
designing it might be worth him you know coming with something preliminary,
just to sort of test the water in the committee again but yeah.
15:31:24 Well, we can always invite him to present.
15:31:28 Right. I mean he wouldn't have been able to present to present.
15:31:32 He probably needs. I mean, it was more of a let's let's do units
was that paper. He probably now needs to adhere my units, paper, I think,
maybe that would be breaking the rule of separating the design rationale
but that that paper.
15:31:51 I don't think it seen any any activity for purity now.
15:31:55 Okay.
15:31:58 Michael, would you like to give them a nudge.
15:32:03 Oh, yeah.
15:32:09 talking about flights.
15:32:06 Sorry, Michael.
15:32:09 Yeah, but if you give me too much and see if he wants to see if
there's any help that we can offer or if, see what see what the state of
the art is sorry the stage of the paper is on the side to the other side of
town is Kim.
15:32:26 Hello, can you hear me. Yeah.
15:32:28 All right. Just a quick comment on that, I think, whatever
implementation he goes for it has to be faster compile. Otherwise, I don't
think, at least, the things I've seen won't be using it.
15:32:42 The, the class of bugs that catches is not that big.
15:32:45 And if it explodes or compile times it's really going down the
drain.
15:32:50 Yeah.
15:32:51 Yes, I'm already composing a tweets for Twitter after this.
15:32:56 I'll be sending out after this meeting about compile times because
I think it's still overlooked by large swathes of the committee.
15:33:03 So, if, if this some library was just doing the checking just
constraining what was done with the, the calculations, you could you could
type it all out for instance floats.
15:33:16 You know, for general development.
15:33:19 If these things were women to operate exactly like the the
fundamental types that they were wrapping that that's something that that I
was thinking we should aim for if we have ever safe type of traps overflow.
15:33:35 Just be able to swap that out for a for a regular integer type,
and then you get really fast builds but with no checking. And then you sort
of maybe change the change the type def one of these super expensive
steadily checked unit types.
15:33:51 And then suddenly you have just a slow build it says oh no
overhead, you've made. You've gotta go to your units and interest.
15:33:58 Yeah. That's one of his design considerations.
15:34:01 Okay.
15:34:02 It's interesting.
15:34:07 Um, okay. So Michael, oh no, sorry not Michael beyond has a paper
on c++ exceptions alternatives. I haven't read this paper.
15:34:18 It's yeah it's actually, it's an old paper. I right, it's, it's
really him justify why exceptions still exists.
15:34:29 And it's worth a read, it's not really a proposal because he and I
was talking in the direction group and we're kind of tired of the fact that
there's all this proposal for, you know, there are many proposals will
alternate exceptions like error and I'm
15:34:46 not blaming anybody but we are now. And the question the thing
that he was trying to say was, people have potentially have forgotten why
we needed exceptions.
15:34:57 And that's because you can't throw an error code in a constructor.
15:35:03 You can't throw an error code in an assignment, operate at low any
operators.
15:35:08 Right.
15:35:10 And so, and there are other reasons why and it explains the in
depth back history of why he designed exceptions. He's trying to say that
he's seen all of these other techniques and methods before and he discussed
them with Bell Labs.
15:35:27 And we're just rediscovering all the same reasons, and he's trying
to point out that exception is really only useful when you have, I think,
You talked about this.
15:35:39 So, correct me my numbers are he says it's like is it that if you
have 1010 levels or is that 100 levels of a function call.
15:35:49 Sorry, sorry, the frequency of it coming up. Yeah, I think inbound
will will be able to correct me on this one is a 10 or 100 frequencies will
do you remember which one it is.
15:36:02 No, sorry.
15:36:03 Yeah. So you try to say that you were supposed to use exceptions.
If you Eric and Eric happens like less than 10 times.
15:36:11 Right, right. Yeah, something like that you know I'm trying to say
right and but, yeah, yeah, yeah. You shouldn't. It's really related to what
are we saying not to use exceptions for, you know, things that are.
15:36:23 Yeah.
15:36:25 Sorry.
15:36:27 Yeah, cuz he did the the mechanism would overwhelm your error.
Right.
15:36:32 Yeah.
15:36:33 So, so he was just mostly complaining, not complaining but trying
to re inject into the world what people forgotten about why exception was
an important design.
15:36:45 And I really should put in James some paper now as well to his
paper on deterministic exception for embedded systems. If people who are
looking for it you can just Google that paint that name.
15:36:58 c++ deterministic exception for embedded systems, and you'll find
James's paper, and I'm going to put that on this list as soon as I get off
the phone right now.
15:37:10 Right. Thank you, Michael.
15:37:15 A lot of assumptions tonight isn't here.
15:37:20 I have no idea what this one's about. No, I'm not sure why this is
my related to us.
15:37:28 Right. This yes so sorry for that.
15:37:33 That's a pre WG 21 kind of contracts related thing there.
15:37:39 This would you be able to inject assumptions into the code that
can maybe help you optimize it produce faster code.
15:37:49 And that's probably why it's with us. Right, right.
15:37:52 Thank you.
15:37:55 Mr.
15:37:57 Thank you. I just wanted to add a small thing regarding the
exceptions and error mechanisms, just that, as Michael said that it's true
that are like, few different error handling mechanisms which are, which,
which, at least to my opinion is good, we might
15:38:14 want to address the multiple ways of handling errors or, if we
want multiple ways in which ways of handling error in the library so that
would be an interesting topic to explore, regardless of adding the
mechanism so so like JS proposal is moving forward.
15:38:34 First is expected, etc.
15:38:37 You might want to address that. Regardless of the of the
mechanisms that exist. So if anyone wants to know, I'd love to corporate
and that as well.
15:38:50 Okay.
15:38:51 I'm sure next.
15:38:54 Sure. Next, I just wanted to add for the portable assumptions,
like john said I mean, once we have contracts that removes like 9095 99% of
the uses for these like what you currently use the built in assume or
assume macros for or up.
15:39:09 Yeah, intrinsic sport.
15:39:22 There's still a handful of cases you might use them in the middle
of a function that I don't know contracts would be the right fit for that
at all.
15:39:22 Sorry, sorry to interrupt you, but assumptions and assumptions.
15:39:26 I think there's
15:39:28 another paper by have actually saying that that assertion search
should not be assumptions.
15:39:36 And so that's kind of like a hot topic again in, in the contract
study group.
15:39:43 Yeah, I guess I was like I was like I think a lot of the uses for
for assume would would be very related to contracts, but I think there's
independent of that discussion I think there's still some corner cases
where it can be independently useful but
15:39:58 I would assume that if we have contracts and if they do have that
having all that conversation goes I guess it's one another assumptions that
would really, really decrease the pressure on meeting portable assumptions
and think.
15:40:10 Right. Yes, and I'd really like to see. Contrast be assumed report.
15:40:15 But I think there's there's a lot of fear around, you know, time
travel up,
15:40:21 type, type concerns people that you bring up.
15:40:27 People get instantly quite concerned that lots of terrible things
are going to happen to their programs and so it's quite difficult to get a,
like a calm stream of thought into some of those conversations.
15:40:53 We have 20 minutes left, and there are still other things to do
after this I'm going to rattle through these may return value coffee,
religion,
15:41:01 No patriots but obviously that sounds magical math word from the
lovely yes thunder, Sean little bit absolutely need to
15:41:13 threats constructor attributes,
15:41:17 can be changed our creation is a stack size. Do you have anyone
here, Billy, you're on this one.
15:41:24 Oh, but he's left.
15:41:27 Okay,
15:41:34 high
15:41:38 priority inheritance.
15:41:41 And we have no paper for this.
15:41:48 Another new idea. Right now we have artist. Yes, it's a question,
raise your data structures.
15:42:01 And
15:42:01 I don't know about these I think we start I think we're going on
to more recent papers now I can easily excited here let's.
15:42:12 Okay.
15:42:15 Yes, not strictly game or related but I can definitely see its
application in our low latency projects we have stumbled upon this problem
where we want to take a ratio, but the performance is way, way too large.
15:42:29 So if we could have some sort of fixed time that we pass by
copying instead of by application or something like that. That wouldn't be
very nice.
15:42:38 Yeah. Okay,
15:42:43 new random number generator.
15:42:44 That's just, that is the God, the random number generation is not
portable across platforms.
15:42:55 Ah, involves something in the chats to find a coach when a simple
performance test to go and levels deep into a call sequence and then it was
an error.
15:43:04 If the air is rare say one 2001 to 10,000 and the cornerstone is
deep say 100 or 1000 exception handling is much faster than explicit tests.
15:43:15 Yeah.
15:43:18 Izzy.
15:43:20 I would just like to point out that in languages like rust. The
compiler is actually able to signal bubbling up between the two locations,
if necessary, of like where, you know, the error state of a result is first
try and found, and it will automatically
15:43:39 propagate up.
15:43:42 And using relocation it does not actually have to do any checks in
between that, it may, you know, have to unwind or, you know, I'm sorry,
drop lifetimes of objects and whatnot but in terms of speed it is as fast
if not faster than an exception in the
15:44:03 same case that was stated by that statement.
15:44:07 Because you're not having to do a test at every level inside of
every function, because every single crate is compiled against each other,
and one Craig is one translation unit so even if you have 300 files with
1000 calls deep, that's all one translation
15:44:24 unit, the compiler can see that.
15:44:26 Right.
15:44:28 I've had learning rust near the top of most do this for about five
years now.
15:44:32 Every time I hear something about get more interesting.
15:44:35 Maybe one day I'll be tipped over the edge.
15:44:39 I must points verification explicit so now even to chocolate yes
that is nice. Yes, please.
15:44:45 Okay.
15:44:47 Rodney random number generator I don't know anything about this
time.
15:44:51 Can anybody lightness.
15:44:54 We certainly need the random number generators that affordable
15:45:00 is a whole bunch of proposed.
15:45:04 Sorry john is he was first sorry No I put the hand up from
earlier, thank you john.
15:45:11 Yeah, I mean I can pick up a number of some.
15:45:18 I don't know if they were generators or not but yeah there was a
paper proposing things. Some generators that maybe had appealing
performance characteristics.
15:45:30 Yeah.
15:45:31 Okay.
15:45:33 to. to st six.
15:45:35 The year before last.
15:45:37 Right.
15:45:39 Sure.
15:45:45 Just since there's no details here I was just wondering if they
would do or to just plant the seed, like it might be useful to have noise
generation, rather than just r&g in a standard release generation.
15:45:53 Yes.
15:45:55 Yeah.
15:45:57 Speaking mostly Nice, nice segue into audio. So this is my paper.
15:46:02 So, myself.
15:46:16 We just don't have the time to finish it, and the problem has
become larger, more complex and more subtle than me than we ever realized.
15:46:27 So, unless somebody else wants to take us out. We are moving on to
other projects.
15:46:33 Was this is disappointing.
15:46:35 It's, It's clearly just too much for us. And there are too many.
15:46:40 I think the problem possibly these businesses, specifying better.
15:46:44 As I say what all three of us are too busy to take this on into
our other word.
15:46:50 There was, we're so busy that the paper that we were planning to
rise to explain why we're not doing this is not 15 months overdue.
15:46:59 So, it's.
15:47:02 Many apologies.
15:47:04 Execute executor moving forward is moving toward pipeline channels
off.
15:47:16 CMOS points elastic numbers
15:47:21 like Mathias I'm so deep in the.
15:47:26 I'm, and also I think you said there with their matrices as well.
I'm now going to come to terms with the c++ 20 Well, having to rethink an
awful lot of the decisions that I came up with.
15:47:37 Yes, yes it was 20 really has got very big stone into a very
large, very large pool.
15:47:45 And this is generally paper so that takes us to our list, and we
have 13 minutes.
15:47:51 Yeah, that's the paper that people asked about, which is the one
that we lost reviewed in StG 14 in in Prague.
15:47:59 So yeah, thank you for going through all this I've been making
notes along the way and and updating it, so we needed that. So I'm afraid
so maybe in the last five minutes we can now talk about, you know, what we
what people want that they don't see on
15:48:13 this list.
15:48:15 Renee your hand.
15:48:18 Right, so I promised something earlier on about something that not
on this list.
15:48:24 So I actually got this one from Twitter since I asked publicly
says if anyone had any ideas, and the one thing that came up with a better
support for that oriented structures.
15:48:36 You know, goes along with the layout stuff but repacking that a
structure so that they, you know, but the one of the other some other
languages repacking the data structure so that the members are individually
members are in segment that buffers as opposed
15:48:50 to, you know, each object on next to each other.
15:48:56 Yeah.
15:48:59 Okay john. So well just in response to that that any mentioned
that usually is created by reflection will so fat or two,
15:49:13 which makes sense.
15:49:21 Well, we're hoping that reflection, you know, addresses that but
we won't really know. Because, I mean how far along is the generative side
of reflection going.
15:49:27 Well, I mean, yeah, I don't know what the progress is, I think,
but stately described things being things are being prototype, the moment.
Yes.
15:49:39 You know this stuff in compilers that you can play around with.
But, as well as the, the data oriented thing.
15:49:48 Just reflection in, in game engines generally serialization and
tools to allow game designers to manipulate game objects that kind of thing
is traditionally somewhere where reflection solutions have been reinvented
many times by different game companies,
15:50:08 often using macros.
15:50:12 And again reflection is the hope would be that reflection caters
for those needs.
15:50:20 I can see how it might, but I wouldn't like to lay money on
guaranteeing that it will.
15:50:27 Well, you really ought to. I mean, yeah, it's it's reflection I
mean it's pretty. I think even the same word is used it, we want to, we
want to know about different types, but in a, in a general way so that we
can, we can present that information sterilize
15:50:43 it decentralize it expose it and graphical editors, the missing
thing you need to be able to do that is to be able to talk about the shape
of types.
15:50:57 Yes.
15:50:57 Yes, about that.
15:51:08 I'm sure.
15:51:02 Yes, your next couple different things about what is that I, I
love the idea of reflection like exactly like john said like we implement
all this from scratch and almost every game engine as I'm sure you're aware.
15:51:26 We actually do a code generation approach on the current project
I'm working on and part of that is managing reflection will handle which is
that we want to Koh Gen language bindings for some of these data structures
similar to like when you're generating
15:51:29 Protocol Buffers or something like that, like we want a single
definition of a single source of truth. That's going to spit out the c++
code all of the metadata that we use for like the editor and all that, and
spit out you know bindings to other languages
15:51:42 so there's.
15:51:45 I'm a little concerned that reflections not going to solve, as
many of the things as some people think it will, especially for studios
that care about multi language interoperability.
15:51:54 But the other part that I wanted to note about reflection is that
just like ranges I'm really scared about the idea that we're using heavy
weight libraries that have to be quote unquote interpreted by the compiler
to do, potentially very simple transformations
15:52:08 like we're talking about the data oriented stuff.
15:52:11 I have as yet unfounded. But deep seated fear that reflection is
going to end up being too costly, have a mechanism to use for some of the
things that people are saying to use it for like the data oriented approach
in time to share your concerns.
15:52:32 Great Marco
15:52:36 about the layout, I think that is be 1112 still on the table.
15:52:42 So I don't know if you want to have a look at it is that has to
seven.
15:52:49 Okay.
15:52:51 We have eight minutes before we before the meeting expires.
15:52:58 So I'm going to return to the minutes, unless anybody wants to
make any more points about any of these papers.
15:53:08 No.
15:53:12 I was gonna say, looking at beyond spade wrong exceptions, this
looks to me like a 2530 minute readings. And I think I want to commend you
all to give it a moment.
15:53:25 If you would send to these minutes you'll see where we do it,
that's the that's the spreadsheet that we've been ever since this is, you
can get it from the agenda today.
15:53:37 Let's tattoo the rest of these segments specific discussions,
jazz, well, this is what we're doing today.
15:53:44 Next, next time it's going to be embedded programming is it
Michael.
15:53:49 Yes, it is. Okay.
15:53:56 So these are always the second Tuesday. Second Wednesday, so that
will be tonight. And I'm going to ask one of the embedded chairs to to
chair and that might be the time to talk about the deterministic.
15:54:09 The low cost you two minutes exception for embedded systems that
James right and in fact I'll try to invite James Renwick to come on and
talk about that.
15:54:18 Come on. Last year in April. So, and we parked it for the whole
year so it's probably time to get him to come on again.
15:54:26 Yeah.
15:54:27 Okay, um, other proposals, no future face to face meetings we are
still
15:54:35 obviously all suspended according to our parent organizations,
Portland, Oregon, I believe is our next tentative meeting, or is it New
York, I think, is it important to New York.
15:54:54 Portland. It is Portland. Yeah.
15:54:54 Yeah.
15:54:56 So upcoming meetings Well, Yes, for New York right any other
business.
15:55:06 I don't understand why these are here, Michael, could you these
stale.
15:55:13 Those are all GitHub links. I remember, so don't worry about those
those are just places where people have put code.
15:55:20 So maybe you're right I should probably remove them, but that's
okay.
15:55:24 We can probably just close the meeting and but thank you very much
to guy Davidson for chairing a masterful job. That was very, very, it's
what it was fun, and it was really informative to.
15:55:36 And I hope I've been watching the translation. They are actually
particularly good, they haven't been, it actually goes back and change the
words. Once it understands what you were saying, so I'm pretty impressed
with it I hope, I hope we were allowed
15:55:51 to keep using this. Yeah, so so that's. This isn't a list of
actions, I will. I'll contact her sequel Africa clarification. Yeah.
15:55:59 But yes, this is a great improvement.
On Fri, May 14, 2021 at 10:01 AM Michael Wong <fraggamuffin_at_[hidden]>
wrote:
> HI all, if anyone saved any notes from Wednesday's call from the
> transcript, would you please forward it to me? I am trying to evaluate the
> quality. Thank you.
>
> On Wed, May 12, 2021 at 9:41 AM Michael Wong <fraggamuffin_at_[hidden]>
> wrote:
>
>> HI all, today's SG14 session will be chaired by Guy Davidson. Unless
>> there are specific papers, Guy will lead a discussion into what Games needs
>> from C++ , as we did last month on Low Latency.
>>
>> Thanks Guy.
>>
>> On Tue, May 11, 2021 at 10:48 AM Michael Wong <fraggamuffin_at_[hidden]>
>> wrote:
>>
>>> Topic: SG14 Low Latency Monthly
>>>
>>> This meeting is focused on Games.
>>>
>>> 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 1900 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
>>>
>> from Zoom report
>
>> 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 14, 2020 02:00 PM ET/1900 UTC: Finance focus on low latency
>>>
>>> May 12, 2021 02:00 PM ET/1900UTC: Games
>>> June 9, 2021 02:00 PM ET/1900 UTC: Embedded
>>>
>>> 2.2 Paper reviews
>>>
>>> Compound assignment review
>>>
>>> Low Latency topic brainstorm
>>>
>>> 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
>>>
>>>
>>> June 9, 2021 02:00 PM 1900 UTC
>>>
>>> Kind Rgds
>>>
>>
Received on 2021-05-24 08:13:47