Add a meeting Rate this page

A

um So from the top regarding the crates, great visibility and exclusive various buttons, there have been no developments except for exclusive range patterns. I've talked to ask among young music. You might want to know, but make it go faster.

A

Yep.

A

So see you join.

B

Us tired.

A

Me rough day, rough working, so millions, the Koran, spinning, write me once meaning move on to see the movement here. The question is: who has the time than with the else to do it?

A

One Nico and I might try to take that.

C

On but I have to be careful, I can actually do 20 that out to have two days a week at least do some initial investigation. If I recall, we had talked about trying to model something.

A

One thing you could do in college before let modeling the thing in or like in color with mumbling it in chocolate beat suit, like I make the PRS of the music, which runs. You know.

A

Me.

C

I will take an action room.

A

To either do it or mentor yeah and like.

A

Forces both your mics or someone alright.

C

So I may skip over that. No unwind attribute logic because you don't have hoping.

A

That Joshua.

A

Hey steady would ya that's why.

C

So case next would be this man I'm.

C

So glad PR to convert new lines from backslash backslash n backslash in the Influenster back well.

A

This breaking change, though,.

C

It would be new behavior.

C

It's like we have to convert to Jason. We.

D

Do I just turned on my phone to see if I could get it to work, it doesn't.

C

I don't know the question is: what were you here? I think we either say yes, say no or say make an RC.

A

Or say, run or something that you think of me in common that we might find out quicker if they're on Invicta, just by just landing the viewer and see if anyone who thinks because the crater cue is like super super long and the info team has refused to.

A

And stuff I.

C

I mean it seems like this change makes sense to me. I feel like this is where a lot of languages have done. I don't know. I mostly did speaking the Python, but I feel like they look similar normalization, but I sort.

D

Of get away it works for include stir, but why would you do this for include bytes.

A

There's.

C

No club, like.

A

Vice I think I'm yeah, it's actually not doing it. Oh.

D

It isn't: okay, I guess, yeah I, misunderstood that never mind all right. I'm objection, withheld I, still kind.

C

Of feel like this, it's me, but that's I, guess the question I would like some feedback from windows people. It would feel better if I don't know. Okay, that's funny we're saying you.

E

Could get an answer from Ryan or someone like that I bet, yeah I would.

C

Think so so maybe we can see.

A

Let's see see Peter.

C

That's all start by seasoning.

F

Open those people I.

E

Bet I can get some windows, people's opinions.

C

Yeah, it.

D

Is.

C

Obviously, change behavior I feel like it. I'm still kind of probably have an aura see, but it's a very small change. I know. I would like to see you like a little thing that says here are some other languages that did some other things. Yeah the small change in terms of lines of code.

E

Is pretty clearly a potentially breaking change that feels like, even though the code a little bit of having a doc and stuff yeah.

C

My motivation, yes.

C

They could write that would be. The alternative would be to deprecating food stir.

A

I.

C

Do.

A

Need to I mean I, don't know yeah.

C

Okay, that's kind of where I would yeah.

A

I think that seems reasonable to.

A

To do an are so young, we do crater. Meanwhile,.

C

All right, so, let's talk about the wait temporary lifetime around a week, GOG once it out right, Colin's yeah already come in not live. Yes, I already wrote it down for myself and just do as a personal to do, but I'll do it for the team.

C

So it's been pointed out that the temporary lifetime surrounder wait are a little bit surprising or at least they're different from the synchronous code. So in synchronous code you have this example. The this creates a temporary vector that lives sort of until the next semicolon, in other words the third duration of this statement. So the code compiles in async code because of the D sugaring, it does not it's Aaron, so I think.

A

We should change that first money, but.

A

Which? Which longest provided that one yeah.

C

There's some this came up because it interferes with like builder patterns and things like this yeah. Basically, existing ergonomics are impacted by this. If you try to move from synchronous, asynchronous you wind up having to introduce let bindings there was a proposed fix, which I haven't really thought about, of making a match.

C

I'm, not sure that has quite the expected lifetime, but you get this.

A

So it varies will live on so the end I.

C

Guess it does because it right now it the lifetime of a temporaries in here becomes a sort of determined by the context in which this entire expression appears, which so.

A

See you are extending it back.

C

To these minutes, I think the main argument against it would be it makes more things live across the wings, so.

A

Good that, like makes things that's performance.

C

You could I mean if there are things that wouldn't have needed to then they're going to get there's going to be an extra slot and the free will happen later so your peak resource larger, like I, I, think, though, that one question would be what's a good example where it creates a temporary, but you didn't want it to move longer. I guess it can certainly happen. I.

F

Have.

D

Lots of those examples.

A

To the issue I.

D

Mean there are only useful to the issue if I am going to attempt to argue that we should keep the current behavior, which I am NOT going to do, I mean it's interesting to know.

A

It's also worth.

C

Yeah.

D

I guess.

A

Yeah.

A

We're doing that yeah all right so.

C

That's fine I, don't feel the need to have the examples, but if you're not going to with this.

D

They're, mostly the form like create a temporary that gets passed to another function and then the output of that attain to to get you to turn into a future.

A

Business phone company will this have any impact to them like Darren, like sizes, yeah.

D

It's bb-big yeah, but I mean yeah they'll, be bigger right.

C

All right exponential waves, yeah.

A

And if you don't want that, behavior just introduce it. Finally, but people will do often in any case, so no introducing a let binding who wouldn't help that you could put some.

C

You could do some explicit blocks or if we improved our logic, you could do some drops. No.

A

Wait let.

D

Binding would help because the temporary is in the statement. Eleven yes, but.

C

Not always some of the bindings.

D

Where you move, you move the expression that you're about to await out into a less so that it matches more closely to what the old D sugaring was right.

A

Yes, but we know is later basically to let equals not equals future, don't always, but they need to do lets future equals the future, especially them done to pay.

D

Yeah, so I feel like the most dangerous thing here right is that we run the risk of introducing a bunch of weird idioms for, like you know, like c++, has a bunch of these right, where, if you want the most efficient code possible, you.

G

Have to.

D

Use this particular weird style for like right, like only use our values in these places and like anytime, like this up here, move it into a new statement and, like I don't want us to start introducing those sorts of conventions, and so it would be an unfortunate thing if the the size increased being caused here was something that led people to start recommending this sorts of weird hacks. I think.

C

What you would do is you would move the arguments. I would.

D

Not do that well, I guess I would move the whole future expression into a let binding and then say: phew daughter, wait.

A

That's.

D

What I would do as moving that moving the arguments into let bindings could cause all the arguments to be held across they're gonna. Take it back that might help, but it may not.

C

Doesn't know think we should do it, but I agree that yeah.

D

I know.

A

About.

D

This but I'm not like I, feel, like the oh I made my code async and others. This weird difference is surprising enough. Yes, yes, I.

C

Also wonder if we can it's all the things we said are true to a lesser extent, in synchronous code. I wonder, then it pushed forward for like it's much lesser, but you know it's still. If we could, there is some future where we are allowed to drop things earlier and so on. After certain conditions, they could health here and just not building which everywhere yeah.

D

I mean I, don't think like I, don't think people are usually worried about, like the size of their stacks lot, the way that they're worried about the size of their journey futures right because they don't usually have like there's one stack and you're, either blowing it or you're, not right. It's not like yes, III! Think about the.

A

Select size and functions approximately never right.

C

It's more about like I.

B

Guess kana people do yeah, you guess yes, kind of people do care about their successes, but.

D

That's also their thing somewhere. What it's like I mean.

B

They don't have a big stack and that we don't want to blow it because then the OS goes down, which kind of sucks.

D

Said: cargo people what no.

F

No.

B

The kernel incarnate- yes, dude.

D

Yes, they do you're correct. Yes,.

C

Already.

D

Yes, for people writing like shared libraries that are used by go code or something like that. Yeah yeah.

C

I.

A

Want to call the question.

A

Okay, so somebody will write a conclusion.

C

It's memorizes I mean if.

D

Thing is really the proper fix to this. This PR is also like pretty trivial, too right, so yeah, it's basic. It's like one hour.

A

Who can maybe so quite something.

D

Yeah I can leave a comment. Thank you.

C

So the next thing, I guess, might as well talk a little bit about generators.

C

There's nothing I already in this list or do we want to bump down to and so things course I'm holding it off because they predict sorry.

D

Talk about generators.

C

What about generators.

D

So.

C

The list here of the nominate additions there weren't any that like jumped out a super high priority. I, don't think there was even anything to say about this. One first day kept an update that we found that the behavior didn't match what we expected the RS needed. There are see fence.

C

There is there unsound interaction of self-referential generators. There's some smaller decisions. Maybe we should push. These did did.

D

You all talk about the the RFC's that are blocked on like NRC and boats. Yeah, that's on the list. You I was gonna jump down to it, because those are kind of those things.

A

We might want to jump down to this, so maybe let's go through the thicker ones like okay yeah. We can so wait.

C

Do this one? Somebody pointed out that, during a reform that this is sort of, we offer an error here. They were suggesting we could automate limbs to fix it, but central pointed out. We could also just accept it. It's kind of inconsistent you might expect. You didn't say this. You might expect this, you know, and this would be equivalent, but it's not.

E

Like it works.

C

Yes, the question would be: if patrician gov implemented it would we, they know what a fine. What.

D

What I mean this is sort of in the minutiae, but what happens when you super a crate? Are you back in the root namespace I. Did wonder that myself, you, as you were, bringing up super.

A

Super super citizen yeah, like you, are moving out of the.

D

Mirror near orbit what you found out there.

H

Don't.

D

I was the old near flag. Right was like Z orbit Mir, something not.

C

Allowed inside a.

D

Bracelet, so this really only pertains.

D

Similarly like why right? Well, because why not I.

C

Mean.

D

Really, why would super hoppy.

C

Would it be yeah exactly why would and because it allows you to have non canonical otherwise, right now you have to worry about. Normalizing connects like stood super states yeah just, but how.

D

Is that more non canonical than adding like tacking self, on an arbitrary number of times, because.

B

That does nothing.

C

You're considering okay, okay.

B

It's kind of an easy analyzation to the Vegas.

C

They're both non canonical, we could only allow so yeah yeah.

D

I think I think I would hold that position because having.

B

Like.

A

So if it makes the tires simpler.

A

It.

C

Looks like consumers.

A

Yeah but no one is going right.

D

I think I'm on team keeps us an error, but truly cuz. It's like it's. It's always gonna, be not what you want right right like lucky. We would at least want to have a warning. Oh.

C

Yeah, okay well generate it sometimes, but today they'll just generate.

A

With Grayson, so thank you so so it seems like when they like come back and forth yeah. We didn't have.

C

A clear so we just said we definitely don't want non-canonical pads like straight super good or straight, so so, whatever with something. Instead, news base collections, sternum.

E

Super butter.

B

Super safe.

C

I.

A

Think.

A

Because.

D

Then you also wind up with people trying to write things like like, rather than like use crate. You do like use super super right, yeah.

C

I, don't actually.

B

Only works at the root of a path yeah.

C

But do it more than once I forget.

D

Super super I think that.

B

The game's playground.

E

You.

B

Just you just broke my model of modeled.

A

Modules again, I guess folks, like comments on this right up right up, Aria are ambiguous.

C

Yeah, that's.

A

More like individual.

C

Opinions I think the interests it's not worth the trouble. It's not a clear win. Yeah.

B

You can actually do double supers in the beginning. What the.

A

So strange 5:05.

A

And not use certain signed, it so I think within.

A

All right attributes for malfunction: parents, room physicians,.

A

So this this this feature allows you to add attributes like function, parameters and stuff, and it has baked awhile in nightly, and the question is to be sterilized. It I've heard people wanting this in various occasions and there is a report which is done on the tests. Look good, I, think I've, read them deaf, trinket, I, believe them and.

A

Matthew have done.

A

So does anyone object to moving along with this since they love it? I.

C

Do it they can objective I.

C

Know.

C

Let's go past non-exhaustive me being talk about these like NRC's concern to start pretty sure NRC would tell you I'm not on the team anymore.

C

Yeah under this RFC.

G

Was.

C

Some kind of urgent detection thing I forget the details. I share with the current state is in. We talked a little bit yeah there's some new discussion, I mean I, I could certainly ping in our scene.

C

Does anybody want to that? Well, I. Think just put this into a sleepy, so I guess the question would be. Is there anything in this room eating contrary that anyone has a chance to go.

A

Read them I haven't read all this.

A

Before, in any case,.

C

Okay, I'll just suggest.

C

The raw reference RFC, so it's currently blocked on that he's concerned, he's not here so he's going to suggest I've seen you.

C

Basically, basically,.

B

Doesn't like editing your son talks when he thinks we should just make it the cost thing. Yeah.

D

I mean Nico Nico, you and I. Also both responded to Eddie and I. Don't think they ever responded back to our responses.

D

Which is.

G

I.

D

Was basically just that we can in church the syntax and then, if it winds up being that we don't need it doesn't.

D

Matter it.

H

Will then be in the grandma forever? That's.

B

Fine, if it gets stabilized yeah, it doesn't get say less. It doesn't help like code. So.

C

Yes also true well outside. Let's see where is Eddie mentioned wanting to do some specific.

A

Shouldn't.

D

Decide that we want to force this syntax on people before we know that it's not gonna break too much existing code right, but even if we decide to start introducing this syntax and say that this is an allowable way to write the code like we don't necessarily have to have that either the allowable way to write the code like we could still do the coercion thing. If it turns out that not doing it is going to request much code.

D

But right now we have no choice in the matter and we're gonna as we toast the ball down the road. We're gonna force ourselves into the talk to us.

C

Anyway, I'm gonna pressure, ID to is all very concerned, or else agreed to a meeting where we discussed.

C

Yeah.

C

So you add all.

D

Types one we did not stabilize the arbitrary ourselves types RFC was allowing people to define their own arbitrary self types which isn't something that we wanted right. Yet.

C

Okay, we did so we allowed the extended cell cell types. One could do. We didn't the particularly extended pin right.

D

But we did not do the thing or if she is suggesting okay, so.

C

Then we should merge, it. Was there some RFC, or did we just do that as part of the future work? So let's see this.

A

Is kind of a general.

D

It.

A

Was.

D

There was a previous RFC that already allowed custom cell types if I remember correctly, mm-hmm.

A

But so what was between? What's? What is they blend this one? No.

D

This this nerf see also changed over time, so I'm I.

C

Don't think we want to merge.

D

It unless.

C

Me one like I'd rather be not merge it. If we're not don't want to do all the work in.

C

Reading.

D

This are a yeah. It's still doing this, based on, like the coerce, sun-sized bound, just not like the thing that makes this work so then.

A

It probably has a bunch of opinions about.

A

We could do the more limited thing so right now pin is the only one which love or first.

D

Doesn't it's not none of them? Wee-Wee I would like to stabilize that so that we could have a bunch of functions that they used to allow it and then right at the last minute, when we went to stabilize this, we went oh well. We could hold off on stabilizing this part, and so we didn't stabilize it, but I was gonna, write up the proposal to go ahead and stabilize it anyway. Well, this needs action off recursive types with arbitrary self, the self ampersand box self rate as a type.

D

Rather than myself ba self, it's a recursive.

B

About that it's.

D

Not recursive isn't the right word: just net nesting of self type receivers like uh rules of indirect.

H

Oh okay, okay, okay, I get it okay,.

A

That's the word job. That seems like a more limited thing that we could do I. Think.

C

I'm gonna move to this RC I.

D

Mean I feel like my proposal is primarily because it was implemented and it was nice and then it got taken away for what seems like no reason that anyone has been able to justify have to defect. I.

C

Think.

D

Yep I will.

A

Give examples alright, maybe yeah, maybe just make it an issue for now and make yeah.

C

So Josh you're not yeah.

G

Sorry that I could make it for the first after the meeting.

C

Over there's no unwind logic. Okay, should we jump back to that yeah.

G

Central and Ralph and I spoke about this this morning. Yes,.

B

Morning also be confused was like oh yeah morning: okay, yes,.

G

Hours ago so yeah.

C

Summary.

G

Of this sure, so we've talked about this in a couple previous meetings, but right now we have an optimization where we mark all all X turn C functions either called or called by a thrust called from or called into rust, as no unlined in lob em. That's a useful, optimization, it's caught and if you then unwind from a function that's marked and no online, do you create an undefined behavior? There was an effort. Minnie taught many many versions ago to try to introduce a on abort.

G

If you try to unwind it past a no unwind function, meaning an extern C function that ended up breaking some people who were doing calls from rust to C to rust where the C library is really broken. Okay,.

C

I didn't mean necessary.

G

To go this far that all right I can skip ahead a bit. So the point is we reverted that change to do the abort temporarily? That means we are now currently miss compiling certain pieces of code, we'd like to fix that there was a proposal to fix that by just deleting the know, unwind attribute from LLVM, but that will break a lot of useful optimizations if we have to do that, we should in order to fix the undefined behavior.

G

But what we asked for months and months ago that doesn't seem to us have happened is for somebody to write up a proposal for an unwind attribute.

G

That just says: allow unwinding through this function and we just wrote up a couple of hours ago, a spy, a descriptive spec, canonical RFC, for what that attribute should do, which means somebody just needs to turn that into an RFC and Shepherd that through the process and if we can nail that down and stabilize that whose sole function is stop tagging this function know unwind in LLVM, then we should be able to continue to do. The optimization keep the aborts that we had before and just tell people they need to tag functions like this.

C

Okay, yes, I, remember we made this the.

B

Unfortunate situation is that, like we have this code that could catch some UV whenever we enable it, some people complain, but the same people do not seem to be willing to actually push through an RFC that puts their own code on stable for them. So.

G

Somebody started working on an RFC and, unfortunately other people in the community, distracted them and got them under the impression that they had to completely and totally specify all aspects of cross language unwinding and panic run times before they could do anything and I've tried several times to get this RFC back on the rails and say no really. We just need something that turns off the LLVM, no unlined attribute that doesn't seem to have been successful. Previously. It may have caught this time, I hope so.

A

Did did you chance to talk to the person to the author in.

A

Person but I talked to Brandon.

G

I.

A

Mean the synchronously I talked.

G

To them on discord a couple of times and I thought I had the impression that they were going to go down this road, but that I think they still were not completely clear on what needed doing alright.

A

So.

G

I think someone needs to mentor them a little on this.

A

Should we have like a full meeting on this? We really.

D

Have a particularly strongly like reason off the top of their head: they can think why they wouldn't want this to work. The way Josh described I have like a couple of small things, but.

B

The problem is that, right now we just finally landed in nightly the thing that we backported like six times, that turns off a board shrim. Indeed, yeah I mean okay, it was kind of embarrassing to keep back boarding it, but now it's an IP and it's still embarrassing because we still have them the one one attribute josh has been saying. These are important. Optimizations I've been asking for like examples or stuff, so they could benchmark and like, and these Russ perk shows they're like basically no measurable regressions when you travel.

G

By the mind,.

G

For the record, I have no objection to temporarily dropping be no unwind attribute. My concern is given how many times this has been around and around and around it. Is that actually going to be temporary and will we start leading people to think? Oh I, guess I don't have this at all I guess I, don't have to be to my functions. If we don't tell we're gonna start affording again- and you have to put an attribute on your functions.

B

I think that concern but I think it's not I, don't think it's a good thing to then that tell these people that, like okay, we're not going to do the abort, what you sleep, what I miss optimize your code? That's a sneaky thing to do of you! Well.

A

I defend that I guess it's.

C

Like if it does seem fairly straightforward to create an RFC and do the right do the behavior that we want in the interim.

B

Also these ago, I know.

C

I'm saying Camille I actually do it. Maybe we shouldn't mentor doubt maybe we should say keep working on that if you like, but.

G

He wants to write the obvious one page, RFC wrapped around the two paragraph text that I posted earlier today, and somebody.

C

Would.

G

Be used but.

G

Weeks from now it can be me, don't.

C

You know, I do have a question: no Ralph. You said the thing that we backward backward it if that's not the abort like there's. Also the change in this PR ensign. This dear here, is to remove the unwind attribute. The other option towards that obviously makes code not work anymore right. So.

B

The unwanted was kept all the time that he kept back porting one half of allowing that pattern, but not the other half yes. So if I could work, but it was UB and it wasn't just rust, WB its LVM level UB and if you do the right moves. I will miss optimize that code sure but I like it I feel.

A

It shouldn't be late. This is dangerous stuff. Don't do it like if you're out code that relies on this, we will try to fix it soon, but don't please around more code.

B

Sure all I'm saying is: we should have consistent messaging like either we abort or we avoid the UB unless there's a significant cost to avoiding the UB, which so far hasn't been demonstrated.

D

I'm.

A

Sorry.

D

Prof is your: is your contention that, like no unwind like as an attribute generally, isn't useful well, I'm sure it's I'm sure it's.

B

Useful that case is useful, I'm sure it's just like I think. If we tell people that okay, you have to stow it backwards, compatibility blah blah blah, be not going to break it, and so we have a like something you can port to. Then we should also not have that attribute, because we are still breaking it. Just less. Obviously so and I mean like if the benchmark comes around with there's no on what is really important. Okay, then I guess that's.

B

That makes it more important to get this get this R of T through, but so far there hasn't been a response to that in the unlikely.

C

In the you have to be invoking the extern C function, tour from real rust code right or or like with some LTO style optimization. In order to see the benefits.

C

Yeah.

B

Yes,.

D

And binary size matters a lot I mean so, for example, so I don't know how, like. Obviously, this is only gonna like be an issue if you're actually calling lots of C functions from rust right like if you only have a few spots where you go back and forth between languages, this just well. It's just can't have that much impact unless.

E

Here, Loup and it won't vet your eyes because of the unwind path that had to get at it and now there's two exits from the loop and now the loop optimizer gets confused.

C

And.

E

There's stuff, like that's assuming you're, throwing an extra.

C

C function I mean we all agree on the endpoint. We want right. The only question here is the staging. Oh, no,.

D

So I'm actually clear.

C

Like we.

D

Do agree on the endpoint that we want, because it sounded like Ralph was saying that we might just never want no unwind. Although.

B

I I'm totally on board the end point being that like. If you have no attribute on that function, we do both at the abortion and at the no I'm gonna attribute I just want to be consistent either we both abort and have no unwind, or we do neither completing.

D

On it,.

B

Got.

D

It I understand that thank you for clarifying so.

G

Are you thinking that your preferred approach would be to go ahead and revert? The no instead chain apply this fix and stop applying the no unwind attribute and then separately, reintroduce that attribute and the aborts and the unlike the new unwind attribute at the same time, is that your preferred alternative, I.

B

Would be totally happy with that? Okay.

G

And you and your feeling is that that would be doable, whereas trying to just get the unwind attribute in ASAP is not likely to be sufficiently quick to make that reasonable. I.

B

Don't know I, don't know it's.

D

Not right.

B

It's so far, experience about this issue shows it's not gonna happen.

D

So empirically it's not, but also that wasn't our policy before, like our policy before was that we were going to real and the affording right our policy.

B

Before was.

D

We stated I would I would be.

B

Fine with saying they're, gonna real and they're boarding and push it through to state at this time, and they.

F

Hope the no unwind I would and.

B

Then like and then, if Kennedy RFC doesn't materialize in time, then we break stuff for one release, but then some people will be very unhappy. Can.

E

We add, as that flag for the no unwind and say look this. Is you B, there's a said flag on nightly to not do this there's.

G

Already a nightly attribute you can use unwind allow. The issue is any to be stabilized.

E

Okay,.

B

So.

E

This.

B

Right.

E

And the people who have this problem in their code can't use nightly.

B

For.

A

Some reason these.

B

Are widely used rates from what I understand like and what's JPEG and I, don't know what else? Okay.

A

But they haven't like given any feedback of it, which is.

G

Feedback saying yes, this sounds good. Please do it.

A

Why.

C

Don't I just write the RFC, that's good I really feel like we should do that. I mean I I, don't know what I think about whether to do that, nor online contributor, really in the important but I feel like. We should be able to get this RFC done in the next few weeks and make it kind of a moot discussion so I'm, sorry, both the next.

C

We have options 122 or in any notes two or three, but the only thing I would say is if we take Route option one path, we now have put the motivation to write the RFC on the people who want the optimization instead of on the people who want the correctness, maybe they're.

A

More.

C

Motivated but.

A

I kind of.

C

Feel like that, a lot of work to avoid.

A

Any.

C

Better proceed: we should just write it move to stabilize and say, there's been plenty of discussion. We don't really need more I mean back the.

B

Prf option one is written already.

B

I.

C

Would be happy to Linda and I still think we should do the RFC? Yes,.

B

O the morning sense would stay up. It's going to stay on that you'll, be this, and everything.

A

You know, but it's it's not actually you being where it's.

B

Not a warning sign, it.

A

Working, that's.

B

The thing like that's just not being nice to them, there's.

C

Plenty of things that we say are you bewitched currently do not necessarily miss compliance. Yes, it's.

B

Very hard, it's very hard to actually explode it. All you be I mean.

C

So I guess the I keep saying we should just get it done, but then we.

E

Have about a month before the beta thing, it's totally plausible, to follow the process and make it happen in that time if it gets really I.

D

Did have one one question about the RC, though, which is the the the unwind attribute? Presumably, that would still apply just the same, even in panic equals abort, because you're also trying to allow people to do like set jump, long jump and, like C++ exceptions, propagating through question mark.

G

Say.

D

That again, Kramer I didn't catch that well. So one thing that you could imagine is that the the unwind attribute is in would be a no op on panicky panic equals abort right, but which, which would be helpful for for rest code right. But if part of the intention of the unwind attribute is not just to allow rust panics to like to flow through correctly, but to also allow C++ exceptions and other kinds of you know.

B

Spoke because, currently with panicking with the board I think we compile all rust functions. There's no one mind, so you literally are not allowed to have anything bubble through us code right.

E

That's.

B

A separate thing: yes,.

F

So.

D

That was, that was what I was saying, is okay cool, so it sounds like we you you. You also would expect that that the unwind attribute would do nothing in panic, pools, abort mode. Yes,.

B

Petty equals abort compiler us there, a mode we are what unwinding ABI is unwinding, doesn't happen. So thank.

D

You close.

B

In the closing I, will you be that says: you cannot call a function with an incompatible unwinding ABI, and that case just says: you cannot call if I'm late as any kind of unwinding. So what effect does does the.

A

Attributes to allow on external functions.

B

Next most functions: unwind allow has no effect.

G

Because external rest should already be no one will be not using no annoyed right.

B

Yes, that actually back there, only external external rust imports are actually marked no online unless.

D

I music equals abort on.

B

This using kind of youth aboard right.

A

So so we might like one throughout unwind abort or something which would be a function.

B

Unwind, the board is a thing that is implemented and it works very.

A

Like another.

B

Bucket, currently doesn't do anything for ya.

A

Like maybe expose it in stable fashion, some other time, no also worth.

C

Pointing out that, if we use no unwind all the time, that's we can forward compatibly alter that.

G

Okay, I meant that I'm about to post to that issue. That basically says we should go ahead and land this PR somebody needs to write the RFC specifying no unwind, sorry specifying online as soon as possible and pick a person so.

A

I have somebody so someone. One thing I would like to say: is that so, like everyone agrees that the defaults should be like we're not going to change our minds on sudden and like keep them equal to two, we need an online right, so.

B

So far, nobody has proposed that the default is the default on the return. Seeing export like definitions not just.

A

Right, I, just don't want to find out later that someone changed their mind and now we can't change it, but.

B

So far, even the office of these crates didn't complain about that. I mean I'm, not sure what they are arrest, many of the version policies, but I guess we found out yes but I'm. Anything here.

A

But that seems to be a case.

B

Yesterday,.

B

Because from what I recall, that's why I was like summoned in quotes to the.

A

Many other states summoned I, like this run.

D

Because it seemed like we needed to get to the bottom of this: does anybody want to volunteer to rate this RFC.

A

Didn't you have like people in the apply working group, gosh names like employees in tow.

G

For that to happen real soon now in the meantime, if you want me to write it, I would be happy to write it a few weeks from now. If you need it to happen in the next four weeks, then Josh.

D

Can you spend like an hour to this week and see if you can find someone and if not all read it just ping me and I'll? Do it I.

G

Think for now you're going to need to assume that you're writing it. I do not have time this week. Maybe next week, okay.

D

I'm reading it.

G

Thank you very much. I appreciate it I'm trying to be.

A

Realistic.

A

All right, seven minutes all right bud, that's in life should be Ralph. Do you like give us a summary? It's something I get to make a decision, but you cannot escape.

C

The.

B

Next, five weeks.

C

All.

A

Right.

C

Yeah.

C

Widgets barbecue birds say it's more urgent, Ralph, yes, perimeter incorrectly decorated with no alias no.

B

If anything, the async, because the rest thing is, is like that's been there, but since 1.0. So whatever.

B

Not that not that this is gonna be listing. The block icing stabilization, yeah.

A

I, don't think it is.

B

Well, basically, the the problem is that if you have a a generator generally, they say if a furnish instruct you have aliasing, because there's like there's a pointer in that struck that points to the field, and then we have a point or somewhere that points to the entire struct.

B

We are thinking of pointers as pointing to a span of memory where the base address is given by the pointer address and the size is given by the type and the spans of memory of like the pointer to the entire self, a fresher struct and the pointer stood in that struck that points to a field of the struct. They overlap contain that field. So.

C

If, if the contents of the generator were in an unsafe so say it.

B

Makes no difference because I talked about mutable references, so if.

C

You have a mutable reference to a struct that has an unsafe so to a cell, for example. Well,.

B

Yeah, the unsafe cell makes zero difference when you're talking about mutable references, it's a shared reference. The only thing it.

C

Seems like it should so to back up. It seems like no.

E

Because I'll say rely on cell elsewhere, no.

C

No, not so, and so exactly but generators that like well. What we're probably going to want to do is to say, if you have a mutable reference to a generator. The contents that are interior to the generator have to have some way of some understanding of what that means right, that there may be internal aliases, something which probably.

B

Means you poison the pointer to that generator field is a bog-standard mutable reference and it can be passed to other. Like so there's nothing. We can't. We can't remove the no alias from that thing, without basically removing it everywhere, because it's just an ampersand B C for any T and no alias does it it matters what you do with the nouriel's reference. Well, I mean that's in the LLVM model. We have no idea what the rust model is, but infra-red for old cure.

B

So, let's me know.

C

Let's assume because I think I think if that means we can't use, elegans existed no alias from that's what it means, but, and we have to lobby for an improvement. But yes, I'm curious about the rust I. Have things like the first concern to me and the second concern is well, we may have doing through the abilities.

B

Baros is to be mostly compatible with no alias, except for basically the points when no alias is not self consistent, because it's not it's not like no alias, isn't understood concept. It has a spec or anything like that.

C

Right so I may be changing the goal, but if no ace is not compatible with with futures, then we give up no alias. That doesn't seem hard to me. That's linking maybe I.

B

Mean right now, if we don't have this debug implementation for futures, then basically removing no alias from pin ampersand with teeth would I think fix the LVM levels on this issue.

C

We don't have no immunity right now. Oh we.

B

Do because, okay before yes but I'm, operating an earlier, something that we want that to be sound and we have a turned off only because of LVM bugs. I think.

C

That's right I mean we would like that, but at the moment it's not that we're giving up performance that we have.

B

This is about correctness right.

C

The actual default is that no release is not there at the moment, and there.

B

The problem is not that this kids- actually we don't currently I mean the problem- is that this basically makes mutable references not be unique anymore, and that, like kills all of our plans with respect to that.

G

Right yeah, there were some we have said if we stabilize it in this form that it would be fixable.

B

Well, so the the I think the offending a be eyes are already stabilized, because the problem is more pinning wants to support safer, fresh districts and the problem isn't that generators exploit a feature that we want pinning to have. The problem is that pinning doesn't actually support them.

B

Most of this could make like, and specifically, we basically want, pin a percentage t to not be no alias and also generally be a lot less like a mutable reference and more like a row pointer which, if we still have the old API, where pin mute, was a separate type. That would be fairly easy to do. For most of the thing we could just internally make it a rope on her like a normal instead of an ampersand. Would.

D

That matter, what.

B

Like.

D

You imagine us just like making pin a person mutti fancy well.

B

It could be good to hacks and the compiler and then the most we could. We would probably have to do hacks for all of the pin operations, but most of them only have deal with mutable references internally. The interesting ones are the ones that exposed them like map, unchecked mute or whatever. The permutation of things await.

C

Ralph whenever question, if this, if, if we take the you're saying the pin, is the pointer to the generator right and you're saying if the pointer to the generator were a wrong pointer, it would be fun if.

B

It would be a pointer and if it wouldn't actually be used to ever access the offending field or create a reference to the offending field. So lady.

B

No clone no, nothing like that right.

C

So we could say, for example, if we said that all amps and mutes that point to types that have generators do not have no alias and hence compile like the only difference between a raw pointer or an end, mute from the other ones. Point of view is: there's no real ace, annotation right.

C

So if you said, if I have an in you to a generator its compiled without no Elias changes, why is that not work.

B

That could, in principle, work if you I mean to trans anything to like rust-eze and terminology, if it doesn't ampersand that an amp mute to a generator is basically like a rope on terms of aliasing. So it's a shared, read or write in terms of stack Burroughs. First.

G

Trying.

B

To sort of yes, that I think would work. That's what I meant earlier when I said like we could just stop a meeting. No Elias up in amperes I mean I, think we fixed the elevator bucks or there's enough pieces moving here. That I'm not sure at that point. However, like some people want that debug input for futures.

C

Because I've been assuming we're gonna make kidnappers named Yuki and I still don't fully understand the debugging problem store because when you activate the generator you load, what happens? Basically? Is you match conceptually on some? You know and pull out the state.

D

Which the bunch of references I'm I'm getting kicked out of my room, so I'm gonna have to go but I'm happy to follow up offline about this. We can try to unzip or something yeah I'll turn the rate up. This.

B

Yeah I won't have much more time because I'm I need to start packing for my vacation tomorrow. Okay,.

C

But let me ask this question: it's confusing to me. So when you activate the generator, basically imagining and taking the data out and using it, and then you that's what happens right all right and when you do a debugging poll, while you're not doing the exact same thing. What's.

B

The difference between you have to use, so the problem is that let's say you have a field F and then you have a reference. Are that points to field F? Those are fields of that struct when you, so you create your generator and you have field F, it gets some value and all your create a reference to feed F installed in are those reference. It's a mutable reference. It not expects to be the only one that messes with that field field, and so.

C

Any generator, sorry, what is the field s? What's? It's.

B

A look of it's a look, a variable in the generator, so it's the feed of the generator F is one feet and R is not a feet because.

C

The generator is actually like a union yeah.

B

Yeah yeah I don't mean um but I'm thinking it imagine it only has one state I mean it doesn't matter States. It doesn't really matter.

C

Okay, I get I, get that there's a field and there's a Western story, but I don't get.

B

Yeah, that's two fields. That's.

C

Two feet.

B

In time, I thought it I want to September Sam. You do I thought you. Yes,.

C

That makes sense, and what I don't get is when you activate the debugging pool, you can observe what state you're in and thus ignore the field. Only if.

B

You manage to do that. That would be okay. The I mean the constraint that I lay down was the thing that the mutable reference points to must not be used by another pointer and used in at least. Currently we are doing, we are being maximally aggressive, it's like Burroughs, you can't even create a reference to it all right.

H

So you could imagine my.

B

Sake not allow like McArdle or reading from that's all other question. If your long reading from it optimal.

C

Yes, absolutely so I think that makes sense, but imagine that we had something where, when you do in a weight you right now, we package up all of the sort of lives, variables right and and we you could imagine that you can get your bison. What's that you.

B

Said he a grantee buddy Evan, ignore on different life fields. The board feed his life yeah.

C

I'm aware of that, but we also like we know in the compiler that it's borrowed so we're trying to say so. You could imagine that we also store some state about what local variables should be part of the debug in full, and we use that to guide the excess season there. There conform the Dre and Doc that wouldn't create. It seems like that, couldn't create any new problems, because that's the same thing, it's gonna happen when you resume execution more or less.

B

Yes, there's no problem accessing fields that don't have outstanding loans, I mean we basically the raw reference RFC to create references to them, but I'm, assuming and anyway, sooner level. So we can just use internal operations right. Yes,.

B

Okay,.

C

So that means the.

C

Meaning has no.

C

Understood rules.

C

And.

C

I.

B

Like.

A

You mentioned that we had to like remove some lessons in right.

B

So the problem is that, like currently, if you look at the pin and press M mute API, it has it set the cupboard, they are mutable references in it. Like you have a pristine, mute I mean I, guess I haven't thought about like automatically I said of starting this from the pin. Nick was to starting it from the other end from the generator propagating all the words that this guy that never has no areas.

B

I I haven't thought about what they put due to the pinning API or if it would even be a problem or anything like that. The reason.

C

I thought most probably.

B

Wanted to expose that to users, because users are gonna want to write their own self referential struts. They already do in fact like the same saltness. Park occurs in owning girlfriend, probably in rental, agree.

C

That's exactly why I was wanting to start I mean well how we exposed to you is I, don't know, but that's exactly why I was thinking the pin is not necessarily the high-order like the right place to approach this. It's more about a mutable reference to a thing that we know is self referential is different, but.

B

The funny thing is, the only graphic isn't actually safer for n sure.

B

It's it, but I mean it's box as aliases. It stores us it's the the pointer that points into the box is stored. Next to the box. It's not in the box, it doesn't really. The surf refresher process of the problem is just we have a mutable reference and it's aliased like sometimes we want that. It seems. It's really.

C

I think maybe I forget.

A

I had this related to like pointers, I.

C

Was.

A

Thinking, if you had.

C

Relative or some other means where you could, like you can imagine, extensions in the future would wouldn't involve Ken but still allow so forth.

B

Yes, I mean this gets into other tricky questions like I'm on your once, once a container of macro to go from the address of a feel to the address of the entire struct that doesn't work. I'd always take four most commonly either, because if you have a pointer to a field, I'm allowed to use it outside of it, it's better at span, I'm, not sure. If that interacts with relative with relative hunters, it seems like it might. I don't know, respond to another field. Sure.

C

When you said exposed to users I guess you were vaguely imagining one like a rapper or some other kind of attribute on instructors. Yeah.

B

Yeah hash hash, alias mutable or a hash staff inferential, or something like that yeah. You could imagine it if at.

C

Least, an enormous.

B

Stereotype marker table concept so.

A

So one more generalization I would like to make that maybe not everyone agrees with is that perhaps we have been like, too afraid to introduce new new like basic reference types, and maybe we should be less afraid of that, like maybe, if we're trading convexity in in the in type system versus the abstract machine, maybe we should go for more convexity in type system and stuff. It's that I.

B

Mean I don't see how having a press having a marker on mutable references that opts out of the that's our.

G

Facility.

B

Is any simpler or hard I see any more complicate in the abstract machine than having a person? Pin you to do a similar thing, so I meant like.

A

If n was.

A

I'm sorry mumbling like if.

B

Make the abstract machine simpler, like it's still, it's still a reference, that's that allows aliasing it's something between a row pointer and a bit of a reference. Maybe it's just a row harder. Maybe it's more like to face balls which currently insect like rock wanders, because I've not yet found a better way to model them.

B

I, don't I, don't think that would make the abstract machine actually simpler, like.

A

In terms of when things are activated and wound inches,.

B

Yeah I mean like in terms of specifying stack, borrows one thing: that's annoying about these marker types is I mean unsafe, so the more thing that's annoying or unsafe. Still it did a shared reference, at least currently stack forms, try very hard and have just changed it to try a bit less hard because it was awful if you have a reference to a big thing and there's small unsafe says in there, it'll only treat those small purchases accessible.

B

That's quite awful that makes my friend heist life was proving these things in Kaku really really hard.

B

So if you have a, if you have a reference to a share reference to a big thing and there's some small unsafe cells in there, like a big struck by only one field, is a wrestle or something mm-hmm like we're all striving hard, and this is after a conversation I had a while ago with uni steak, Burroughs tries very hard to say well, a product of like a bunch of unsafe zones and a bunch of not unsafe cells should really be the same as having all of those references separately. We'll just to say.

B

The parts which are all sort of the unsafe cell are still subject to the full freeze, guarantee of shared references. They don't allow mutation, yeah.

C

Which.

B

Means that's that process to find those unsafe zone, and until yesterday it did so even in enums, which required actually reading the current in indiscriminant, while doing like stack powers, administrative worked, which was a read from memory which is subject to stack Burroughs rules, and then my head really hurts because it means what stack Burroughs does like recursive least trigger stack, Burroughs things and and I was just going crazy, trying to prove anything about that in Cocke, and so we decided that we're gonna at least make it static so that the unsafe serves are entirely like.

B

We go below straps, because then we don't need to access memory. But when there's an enum, if there's an ancestor anyway in the you know, you're just gonna be like okay, I guess. This entire thing is like can't change and that helps that helps with proving in Cocke that helps with not being like I was completely hopeless, like no not hopeless. I was I was thinking of inner layer optimizations, where we have logically disjoint fields, namely the discriminant of an enum and the values stored in there.

B

That overlap in memory and my head was just hurting, so all of that is gone now, so we only.

C

Do it for.

B

Structs, which is still complicated but less complicated, I mean.

C

And that's obviously.

B

Analogous scenario only for shared references right exactly exactly this is why having a marker type might be more complicated than having a bit in different general reference type, because it I was I mean for some of the extensions first egg rolls I have in mind to move it more towards trees and support like a less aggressive.

B

If you just create a mutable reference, but never use it, it'll be, it would be really nice if a reference would have the same action on everything at points to and share references currently, don't because they do, they act different inside unsafe stands and outside this.

C

Make-Believe.

B

Going so basically, currently I can't it's it's nonsense to speak about the permission of a reference. You can only speak about the commission that a reference has for some location in memory and it would make all the bookkeeping so much simpler if permissions were associated with references and not with references cross.

B

Not really not for mutable rhythms like no, no alias the way. We omit it. If there's any unsafe start anywhere. No any us gets emitted, so we cook totally in stock Poirot, say: if there's any ancestor anywhere, you can there's no freezing and would be completely legitimate. You just didn't like it when I add the idea like a year ago.

C

Okay, because you lose some illusion on.

B

That's fair, so we should relax. Maybe but.

C

It does seem like the treatment of like resto and generators, would I would expect them to be the same right solely to the extent that you can track. That's.

B

Nothing supposed to think about refs I, don't know why rush that comes up. Sorry.

C

I just mean stuff on say-so I, just don't like talking Roman citizen people, often Millington I mean basically I. Obviously would not expect that like same way that unsafe so is infections across nuanced or another or is approximated at the enum boundary. Similarly, generators would be, and maybe if it's convenient it's at all, much easier to push it all the way up push it all the way up.

B

Yeah, that's basically, the main concern was doing a type based is that, but of course, if we did it reference level based, we would never even have that right. So it's not like we're losing precision compared to doing a reference pace. It's just like you might not get the extra position that it looks like we could get nicely. That's a good point! Yeah. If you had an tan, you would've lost it all. Yeah.

C

Enables optimizations that are.

B

Well, the optimizations are probably great but reasoning about still getting your code right is a pain and and no no actually, it's defining the model which, of course, that makes any kind of reasoning, I, think great, because once I'm, goodness almost into a tree, uh I I, don't really I, really don't want to have a tree for every location. That seems like such a big mess.

B

So.

C

Here's the question who will try to write this up? I have to do it. Maybe I'll try to write my url for actually well.

B

I mean I'm gonna pack, my stuff tomorrow and then disappear for two weeks.

B

I can.

C

Run it by you into that and then I'd be back for every day's a.

C

Minimum I don't feel too panicked.

C

No.

B

I think we can make something work, it puts more constraints onto the model, but great the model is ultimately there to serve like to make programs work, and these are programs we want so.

C

Any other question I, probably shouldn't be raising now and whilst waiting for five weeks, but what I would like to just throw out there is. You know this hints that the increasing importance of integrating guidelines work into the rest of the work, we're doing doing a better job of that um that's kind of obvious, but also true.

C

All right cool thanks for staying over anything else. We go sure.

B

I mean the the ref thing I guess we can talk about him back or something it's I am actually and I find that funny, because I started getting these Maria failures about I get I, got them actually, first with neck back tech eater, or something like that. It has a similar problem as well and- and my conclusion was Mira Mira is too aggressive, so we actually have this in the paper we submitted like okay yeah. We had these like. We had this some of those failures that we didn't fix.

B

We didn't change the same library to account for those because it seemed like. Maybe the NS is just too oppressive and you have to find a more relaxed analysis and actually we moved it from Erie, because I wanted to get those like with all those failures I make it make. Favor seem very more likely to be true positives, and then it turns out that they were actually real things and I should go back to the paper and figure out what else we say there I mean.

C

I.

H

See what's.

G

Happening.

C

Here it seems very spiritually.

C

Well, it's a similar issue. You have a pointer to the outside a pointer to the inside. You drop it releasing the lock. Now you can get any in you'd.

B

You, but this the POTUS. This is just a problem of the scope of no alias like this. Guy is no alias when it gets in it's not like the generators.

C

The problem.

B

Is that it stops being not know Elias Midway, yes, so so we can. We can do fully unique everything in instead borrows the one thing we can't do. Is this barrier or protector mechanism that I added? That makes sure the scope of this thing is at least the current function call because it isn't so. This is not the same as mutable references. The aliasing is intact. It's just broken earlier than we tell LLVM. It is.

A

Yes,.

C

And I guess I mean we can't do it.

C

Possibly you could do it for you Newt or something like that: the need for those barriers assai. They enabled us to do stuff as.

B

I recall and I mean without the like no Elias like they are need to justify, adding no alias because.

A

No alias function level, periscope, it's non terminating things, yes, I.

B

Mean the barriers are pretty awesome, we haven't done the proof yet, but I have proof sketch and I hope we have the proof in two weeks, but this means you can move. You can do something pretty crazy where you can move right up across or down I forgot, which f1, which of them across an unknown function. Call you end up.

B

Usually when you're proving compiler correctness, you have to make sure that, like when you call a known code, everything is the same on on be optimized and unoptimized code, because the code, the an on-court, could look at all the state. So all the state must be the same.

B

Mutable like data behind a mutable reference, it has a barrier, can be different in the source and target machine. If, even though that the pointer is not a pointer, we control. This is not local state. This is shared state, but we add this barrier to it and then we can prove- and we have that principle basically proving we just haven't exploited any code- that the value can be different between source and target and you still and the other code just can't observe and what.

C

You're saying is: we can't keep the barriers in certain cases? Yes,.

B

No, the whole concept is fine. It's just currently they're currently very aggressively, also adding that to to structs wrapping references, yeah and in many cases I guess we want that because we want new types: do not do zero cost but ref and refute, and our there are new types, technically speaking, the only like the reference and as est, but we don't actually want that semantics.

B

So either we have to not use references or we have to like I, don't know, maybe only add noelia, that's very transparent and to make those guys were transparent or something like that. Yes,.

C

So task really kind of a dumb question. I realize.

B

Sometime.

C

Well, this is breath, that's the parameter here where we have the know, alias we don't launch right, that's correct, but ref is a shared reference. So what I guess the question is, what type is what Russ type is inside address? It's not.

G

Defense.

C

I thought it I see. So, oh of course we can put the note. The no alias in this case means it's me. It's immutable, so nobody's missing useful. You can consider it or not. I mean.

B

Even without see no alias, that's the immutable, no idea.

C

Right right right now, I get it no. No. This all makes sense, but you were here.

B

From protect, if you're just mutating a pointer that we should not supposed to be mutating, all right and I mean I. It's also nice, because I think, like two years ago, was something I opened that issue on the memory the old owed you CG, repository about like ref and revenue are weird.

G

Back.

B

Then I think only ref was weird for me and I was fine with revenue and then I.

C

Also went.

B

Back and forth about it being weird or not, and now we definitely know it's weird I was.

C

Connecting to that I was thinking about that, like that was the whole point of them that this lifetime is actually an over approximation of the permission period. That's exactly the problem here.

B

And it turns out the referent refereed or not the only case that we do that, but the the iterator for Vick Tech is not a new type. It has some other fields. So I guess we don't add a no alias there.

C

Because it's not just the reference destructor stuff, presumably we need some sort of rule. That's so unfortunate. It's going to be kind of animated.

C

This says you know if you're wrapped inside a struct with the destructor is no.

B

I don't like connecting to these structures and stuff: that's I, don't like it either, but I would I would I would.

C

Yeah or something you can work like if you're instructed on.

B

In a non repre, transparent structure or something like that, yeah, but maybe better transparent, also affect other things. So it's kind of weird to try to call a bi concerns.

C

Or.

B

Maybe just use reporters, unfortunately, is making your random story.

A

That seems like.

B

Yeah, the question isn't taught to fix it in live STD I could I could write up a PR. The question is what we expect people to do when they write stuff like that themselves and are they even gonna realize they're breaking a rule, probably not like, oh and like like, even if they ride a Mary? It's not easy to come up with the test case that makes this Erin Erin Mary.

B

So even if they have a good test, suite I, don't think the refs a test suite we have would catch. This bug like even the refs, I or I, wrote some pretty aggressive, ref scientists and it and they didn't catch this bug. It was only after I realized that it's the same as this Vick tech eater thing that I was able to write a test case that caught the bug. Yeah.

C

It all comes back to I mean one of the core questions. We've been asking the whole time is sort of. Do you have to keep her represent to your lives.

C

Yes,.

B

Access by smothers you space, yeah and every little bit we move away from access based is awful. Okay, but also useful.

C

All right cool Thanks: let's do it.

B

All Right see you see you in Boston ago.

C

Trying to make soon.
youtube image
From YouTube: Lang Team Triage Meeting 2019.08.29

Description

Topics discussed in depth:

- nounwind attribute logic
- unsound interaction between self-referential generators (incl. async fn) and noalias
- Ref parameter incorrectly decorated with `noalias` attribute

Dropbox paper link:

https://paper.dropbox.com/doc/T-Lang-Meeting-2019.08.29--AjzRGzHqD9HET5PNCoAomh4sAg-ydagQSwNNH0iSwUy225pZ